final Path buildBase;
/** The base of the a2 output for all layers. */
final Path a2Output;
+ /** The base of the a2 sources when packages separately. */
+ final Path a2srcOutput;
/** Whether sources should be packaged separately */
final boolean sourceBundles;
})).toAbsolutePath();
buildBase = sdkBuildBase.resolve(sdkSrcBase.getFileName());
a2Output = sdkBuildBase.resolve("a2");
+ a2srcOutput = sdkBuildBase.resolve("a2.src");
}
/*
// TODO add effective BND, Eclipse project file, etc., in order to be able to
// repackage
if (sourceBundles) {
- Path srcJarP = a2JarDirectory.resolve(compiled.getFileName() + "." + major + "." + minor + ".src.jar");
+ Path a2srcJarDirectory = bundleParent != null ? a2srcOutput.resolve(bundleParent).resolve(category)
+ : a2srcOutput.resolve(category);
+ Files.createDirectories(a2srcJarDirectory);
+ Path srcJarP = a2srcJarDirectory
+ .resolve(compiled.getFileName() + "." + major + "." + minor + ".src.jar");
Manifest srcManifest = new Manifest();
srcManifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0");
srcManifest.getMainAttributes().putValue("Bundle-SymbolicName", bundleSymbolicName + ".src");
deleteDirectory(bundleDir);
if (sourceBundles) {
- Path sourceDir = bundleDir.getParent().resolve(bundleDir.toString() + ".src");
+ Path bundleCategoryDir = bundleDir.getParent();
+ Path sourceDir = bundleCategoryDir.resolve(bundleDir.toString() + ".src");
if (!Files.exists(sourceDir)) {
logger.log(WARNING, sourceDir + " does not exist, skipping...");
return jarPath;
+
}
- Path srcJarP = sourceDir.getParent().resolve(sourceDir.getFileName() + ".jar");
+ Path guessedA2Base = bundleCategoryDir.getParent();
+ Path srcA2Base = guessedA2Base.getParent().resolve(guessedA2Base.getFileName() + ".src");
+ Path srcJarP = srcA2Base.resolve(bundleCategoryDir.getFileName()).resolve(sourceDir.getFileName() + ".jar");
+
String bundleSymbolicName = manifest.getMainAttributes().getValue("Bundle-SymbolicName").toString();
// in case there are additional directives
bundleSymbolicName = bundleSymbolicName.split(";")[0];