private void updateRequirementsFromMetadata() throws GhidraBundleException {
		sourceFileToRequirements.clear();
		requirementToSourceFileMap.clear();
		importPackageValues.clear();

		for (ResourceFile rootSourceFile : getSourceDirectory().listFiles()) {
			if (!rootSourceFile.getName().endsWith(".java")) {
				continue;
			}

			// Without GhidraScriptComponentProvider.updateAvailableScriptFilesForDirectory, or 
			// GhidraScriptComponentProvider.newScript this might be the earliest need for
			// ScriptInfo, so allow construction.

			// NB: ScriptInfo will update field values if lastModified has changed since last time 
			// they were computed
			String importPackage = parseImportPackageMetadata(rootSourceFile);
			if (importPackage == null || importPackage.isEmpty()) {
				continue;
			}

			List<String> parts = ManifestParser.parseDelimitedString(importPackage.strip(), ",");
			importPackageValues.addAll(parts);
			List<BundleRequirement> requirements;
			try {
				requirements = OSGiUtils.parseImportPackage(importPackage);
			}
			catch (BundleException e) {
				throw new GhidraBundleException(getLocationIdentifier(),
					"@importpackage error", e);
			}
			sourceFileToRequirements.put(rootSourceFile, requirements);
			for (BundleRequirement requirement : requirements) {
				requirementToSourceFileMap
						.computeIfAbsent(requirement.toString(), x -> new ArrayList<>())
						.add(rootSourceFile);
			}
		}
	}
Update build requirements based on {@code @importpackage} tag in java files in the 
default (unnamed) package.

@throws GhidraBundleException on failure to parse the {@code @importpackage} tag
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/osgi/GhidraSourceBundle.java