]> git.argeo.org Git - cc0/argeo-build.git/blobdiff - src/org/argeo/build/Make.java
Do not override singleton when it is unnecessary.
[cc0/argeo-build.git] / src / org / argeo / build / Make.java
index 6f8434434a8b82d7436b0da1592a4a934ffb36e7..9593e0df00d01b38126b387e377e7a23bf1e6127 100644 (file)
@@ -31,6 +31,7 @@ import java.util.concurrent.CompletableFuture;
 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;
 
@@ -275,6 +276,7 @@ public class Make {
                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
@@ -310,10 +312,24 @@ public class Make {
                                }
                        });
 
+                       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 {
@@ -323,6 +339,7 @@ public class Make {
                                        return FileVisitResult.CONTINUE;
                                }
                        });
+
                }
        }