import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
+import java.util.zip.Deflater;
import org.eclipse.jdt.core.compiler.CompilationProgress;
}
// Normalise
- properties.put("Bundle-SymbolicName", bundleSymbolicName);
+ if (!properties.containsKey("Bundle-SymbolicName"))
+ properties.put("Bundle-SymbolicName", bundleSymbolicName);
// Calculate MANIFEST
Path binP = compiled.resolve("bin");
Files.createDirectories(jarP.getParent());
try (JarOutputStream jarOut = new JarOutputStream(Files.newOutputStream(jarP), manifest)) {
+ jarOut.setLevel(Deflater.DEFAULT_COMPRESSION);
// add all classes first
Files.walkFileTree(binP, new SimpleFileVisitor<Path>() {
@Override
}
});
+ Path srcP = source.resolve("src");
+ // Add all resources from src/
+ Files.walkFileTree(srcP, new SimpleFileVisitor<Path>() {
+ @Override
+ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+ if (file.getFileName().toString().endsWith(".java")
+ || file.getFileName().toString().endsWith(".class"))
+ return FileVisitResult.CONTINUE;
+ jarOut.putNextEntry(new JarEntry(srcP.relativize(file).toString()));
+ if (!Files.isDirectory(file))
+ Files.copy(file, jarOut);
+ return FileVisitResult.CONTINUE;
+ }
+ });
+
// add sources
// TODO add effective BND, Eclipse project file, etc., in order to be able to
// repackage
- Path srcP = source.resolve("src");
Files.walkFileTree(srcP, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
return FileVisitResult.CONTINUE;
}
});
+
}
}