private BundleJavaManager createBundleJavaManager(PrintWriter writer, Summary summary,
			List<String> options) throws IOException, GhidraBundleException {

		ResourceFileJavaFileManager resourceFileJavaManager = new ResourceFileJavaFileManager(
			Collections.singletonList(getSourceDirectory()), buildErrors.keySet());
		BundleJavaManager bundleJavaManager = new MyBundleJavaManager(bundleHost.getHostFramework(),
			resourceFileJavaManager, options);

		// The phidias BundleJavaManager is for compiling from within a bundle -- it makes the
		// bundle dependencies available to the compiler classpath.  Here, we are compiling in an 
		// as-yet non-existing bundle, so we forge the wiring based on @importpackage metadata.

		// get wires for currently active bundles to satisfy all requirements
		List<BundleRequirement> requirements = getAllRequirements();
		List<BundleWiring> bundleWirings = bundleHost.resolve(requirements);
		if (!resolveInternally(requirements)) {
			writeErrorUnresolved(writer, summary, requirements);
		}

		// send the capabilities to phidias
		bundleWirings.forEach(bundleJavaManager::addBundleWiring);
		return bundleJavaManager;
	}
visit discrepancies between java source and corresponding class files.

<pre>
walk resources to find:
 - source files that are newer than their corresponding binary
		reports (source file, list of corresponding binaries)
	- source files with no corresponding binary
		reports (source file, empty list)
 - binary files with no corresponding source
 	reports (null, list of binary files)
 
  for a source file source_root/com/blah/Blah.java
  
  all of the following binaries would correspond:
  	binary_root/com/blah/Blah.class
  	binary_root/com/blah/Blah$Inner.class
  	binary_root/com/blah/Blah$12.class
  	binary_root/com/blah/Blah$12.class
  	binary_root/com/blah/Blah$Inner$Innerer.class
  	...
</pre>
@param discrepancy the discrepancy callback
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/osgi/GhidraSourceBundle.java