From b7595f1e0d855237502f5b9953139b618f29424a Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 10 Jul 2022 12:15:00 +0200 Subject: [PATCH] Put DLLs in sub directories (required by SWT WebKit extensions) --- .../src/org/argeo/slc/factory/A2Factory.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/org.argeo.slc.factory/src/org/argeo/slc/factory/A2Factory.java b/org.argeo.slc.factory/src/org/argeo/slc/factory/A2Factory.java index b0bfefac6..985eae020 100644 --- a/org.argeo.slc.factory/src/org/argeo/slc/factory/A2Factory.java +++ b/org.argeo.slc.factory/src/org/argeo/slc/factory/A2Factory.java @@ -648,7 +648,8 @@ public class A2Factory { } }); - DirectoryStream dirs = Files.newDirectoryStream(targetCategoryBase, (p) -> Files.isDirectory(p)); + DirectoryStream dirs = Files.newDirectoryStream(targetCategoryBase, + (p) -> Files.isDirectory(p) && p.getFileName().toString().indexOf('.') >= 0); for (Path dir : dirs) { createJar(dir); } @@ -785,7 +786,7 @@ public class A2Factory { if (entry.getName().startsWith("META-INF/versions/")) // skip multi-version continue entries; // skip file system providers as they cause issues with native image - if (entry.getName().startsWith("META-INF/services/java.nio.file.spi.FileSystemProvider")) + if (entry.getName().startsWith("META-INF/services/java.nio.file.spi.FileSystemProvider")) continue entries; if (entry.getName().startsWith("OSGI-OPT/src/")) // skip embedded sources continue entries; @@ -801,7 +802,7 @@ public class A2Factory { // String arch = segments[segments.length - 1]; // String os = segments[segments.length - 2]; boolean copyDll = false; - Path targetDll = categoryDir.resolve(target.getFileName()); + Path targetDll = categoryDir.resolve(targetBundleDir.relativize(target)); if (nameVersion.getName().equals("com.sun.jna")) { if (arch.equals("x86_64")) arch = "x86-64"; @@ -810,10 +811,12 @@ public class A2Factory { if (target.getParent().getFileName().toString().equals(os + "-" + arch)) { copyDll = true; } + targetDll = categoryDir.resolve(target.getFileName()); } else { copyDll = true; } if (copyDll) { + Files.createDirectories(targetDll.getParent()); if (Files.exists(targetDll)) Files.delete(targetDll); Files.copy(target, targetDll); @@ -1019,11 +1022,11 @@ public class A2Factory { // factory.processCategory(descriptorsBase.resolve("org.argeo.tp.osgi")); // factory.processCategory(descriptorsBase.resolve("org.argeo.tp.eclipse.rcp")); // factory.processCategory(descriptorsBase.resolve("org.argeo.tp")); - factory.processCategory(descriptorsBase.resolve("org.argeo.tp.apache")); +// factory.processCategory(descriptorsBase.resolve("org.argeo.tp.apache")); // factory.processCategory(descriptorsBase.resolve("org.argeo.tp.sdk")); // factory.processCategory(descriptorsBase.resolve("org.argeo.tp.formats")); // factory.processCategory(descriptorsBase.resolve("org.argeo.tp.gis")); - System.exit(1); +// System.exit(1); // SDK factory.processCategory(Paths.get("org.argeo.tp.sdk")); @@ -1044,6 +1047,8 @@ public class A2Factory { factory.processEclipseArchive(Paths.get("lib/win32/x86_64/swt/rcp/org.argeo.tp.swt", "eclipse-rcp")); factory.processEclipseArchive(Paths.get("lib/macosx/x86_64/swt/rcp/org.argeo.tp.swt", "eclipse-rcp")); + System.exit(1); + factory.processEclipseArchive(Paths.get("swt/rcp/org.argeo.tp.swt", "eclipse-nebula")); // factory.processEclipseArchive(Paths.get("swt/rcp/org.argeo.tp.swt", // "eclipse-equinox")); -- 2.30.2