Fix copy of legal files at bundle level
authorMathieu Baudier <mbaudier@argeo.org>
Tue, 21 Mar 2023 10:48:54 +0000 (11:48 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Tue, 21 Mar 2023 10:48:54 +0000 (11:48 +0100)
src/org/argeo/build/Make.java

index 5a5fd64d424639ae4036b5205a9d895c6e53df1d..be3764c29dda69abaab8e2868bdab0e3cce50bec 100644 (file)
@@ -476,21 +476,15 @@ public class Make {
                        for (Path p : sdkSrcLegal)
                                toInclude.put(p.getFileName().toString(), p);
                }
-               DirectoryStream<Path> bundleLegal = Files.newDirectoryStream(bundleBase, (p) -> {
-                       String fileName = p.getFileName().toString();
-                       return switch (fileName) {
-                       case "NOTICE":
-                       case "LICENSE":
-                       case "COPYING":
-                       case "COPYING.LESSER":
-                               yield true;
-                       default:
-                               yield false;
-                       };
-               });
-               // bundle can override
-               for (Path p : bundleLegal)
-                       toInclude.put(p.getFileName().toString(), p);
+               for(Iterator<Map.Entry<String, Path>> entries=toInclude.entrySet().iterator();entries.hasNext();) {
+                       Map.Entry<String, Path> entry= entries.next();
+                       Path inBundle = bundleBase.resolve(entry.getValue().getFileName());
+                       // remove file if it is also defined at bundle level
+                       // since it has already been copied
+                       // and has priority
+                       if(Files.exists(inBundle)) 
+                               entries.remove();
+               }               
                return toInclude;
        }