diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f31f0adc..3ebf1b74 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -107,8 +107,8 @@ jobs: tar xf cef.tar.bz2 $VERSION/LICENSE.txt $VERSION/Resources --strip-components 1 tar xf cef.tar.bz2 $VERSION/Release/libcef.lib --strip-components 2 tar xf cef.tar.bz2 --wildcards $VERSION/Release/*.dll --wildcards $VERSION/Release/*.bin --strip-components 2 - cp -r *.dll *.bin Resources/* LICENSE.txt ../../java/org.eclipse.set.browser.cef.win32/res/cef - ls -avl ../../java/org.eclipse.set.browser.cef.win32/res/cef + cp -r *.dll *.bin Resources/* LICENSE.txt ../../java/org.eclipse.set.browser.lib/res + ls -avl ../../java/org.eclipse.set.browser.lib/res working-directory: cef/Release - name: Fetch Rust binaries @@ -116,6 +116,10 @@ jobs: with: name: chromium-swt-libs path: java/org.eclipse.set.browser.lib/res/ + + - name: Copy CEF + run: | + cp -a java/org.eclipse.set.browser.cef.win32/res/cef/. java/org.eclipse.set.browser.lib/res/ - name: Build working-directory: java diff --git a/java/org.eclipse.set.browser.cef.win32/.classpath b/java/org.eclipse.set.browser.cef.win32/.classpath deleted file mode 100644 index 3dcb47a4..00000000 --- a/java/org.eclipse.set.browser.cef.win32/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/java/org.eclipse.set.browser.cef.win32/.gitignore b/java/org.eclipse.set.browser.cef.win32/.gitignore deleted file mode 100644 index b238c3de..00000000 --- a/java/org.eclipse.set.browser.cef.win32/.gitignore +++ /dev/null @@ -1 +0,0 @@ -res/cef \ No newline at end of file diff --git a/java/org.eclipse.set.browser.cef.win32/.project b/java/org.eclipse.set.browser.cef.win32/.project deleted file mode 100644 index a102d691..00000000 --- a/java/org.eclipse.set.browser.cef.win32/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.set.browser.cef.win32 - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/java/org.eclipse.set.browser.cef.win32/.settings/org.eclipse.core.resources.prefs b/java/org.eclipse.set.browser.cef.win32/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c02..00000000 --- a/java/org.eclipse.set.browser.cef.win32/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/java/org.eclipse.set.browser.cef.win32/.settings/org.eclipse.jdt.core.prefs b/java/org.eclipse.set.browser.cef.win32/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 0d006fe4..00000000 --- a/java/org.eclipse.set.browser.cef.win32/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,104 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.problem.APILeak=warning -org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.autoboxing=warning -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore -org.eclipse.jdt.core.compiler.problem.emptyStatement=warning -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=enabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled -org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning diff --git a/java/org.eclipse.set.browser.cef.win32/META-INF/MANIFEST.MF b/java/org.eclipse.set.browser.cef.win32/META-INF/MANIFEST.MF deleted file mode 100644 index 337ae7b3..00000000 --- a/java/org.eclipse.set.browser.cef.win32/META-INF/MANIFEST.MF +++ /dev/null @@ -1,16 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Chromium Binaries -Bundle-SymbolicName: org.eclipse.set.browser.cef.win32;singleton:=true -Bundle-Version: 2.8.0.qualifier -Automatic-Module-Name: org.eclipse.set.browser.win32 -Bundle-RequiredExecutionEnvironment: JavaSE-21 -Require-Bundle: org.eclipse.core.runtime, - org.eclipse.swt -Import-Package: - org.eclipse.swt.internal, - org.osgi.framework -Bundle-ClassPath: . -Bundle-Vendor: Eclipse Signalling Engineering Toolbox -Export-Package: org.eclipse.set.browser.cef.win32 -Eclipse-BundleShape: dir diff --git a/java/org.eclipse.set.browser.cef.win32/build.properties b/java/org.eclipse.set.browser.cef.win32/build.properties deleted file mode 100644 index 13156e27..00000000 --- a/java/org.eclipse.set.browser.cef.win32/build.properties +++ /dev/null @@ -1,4 +0,0 @@ -source.. = src/, res/ -output.. = bin/ -bin.includes = META-INF/,\ - . diff --git a/java/org.eclipse.set.browser.cef.win32/res/.gitkeep b/java/org.eclipse.set.browser.cef.win32/res/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/java/org.eclipse.set.browser.lib/META-INF/MANIFEST.MF b/java/org.eclipse.set.browser.lib/META-INF/MANIFEST.MF index f2483357..56a94d09 100644 --- a/java/org.eclipse.set.browser.lib/META-INF/MANIFEST.MF +++ b/java/org.eclipse.set.browser.lib/META-INF/MANIFEST.MF @@ -6,13 +6,14 @@ Bundle-Version: 2.8.0.qualifier Automatic-Module-Name: org.eclipse.set.browser.bin Bundle-RequiredExecutionEnvironment: JavaSE-21 Require-Bundle: org.eclipse.core.runtime, - org.eclipse.swt, - org.eclipse.set.browser.cef.win32 + org.eclipse.swt Import-Package: org.apache.commons.io, org.eclipse.swt.internal, org.osgi.framework -Export-Package: org.eclipse.set.browser.lib +Export-Package: org.eclipse.set.browser.cef.win32, + org.eclipse.set.browser.lib Bundle-ClassPath: res/, . Bundle-Vendor: Eclipse Signalling Engineering Toolbox +Eclipse-BundleShape: dir diff --git a/java/org.eclipse.set.browser.cef.win32/src/org/eclipse/set/browser/cef/win32/CEFResource.java b/java/org.eclipse.set.browser.lib/src/org/eclipse/set/browser/cef/win32/CEFResource.java similarity index 61% rename from java/org.eclipse.set.browser.cef.win32/src/org/eclipse/set/browser/cef/win32/CEFResource.java rename to java/org.eclipse.set.browser.lib/src/org/eclipse/set/browser/cef/win32/CEFResource.java index bd633efe..98718a8a 100644 --- a/java/org.eclipse.set.browser.cef.win32/src/org/eclipse/set/browser/cef/win32/CEFResource.java +++ b/java/org.eclipse.set.browser.lib/src/org/eclipse/set/browser/cef/win32/CEFResource.java @@ -31,61 +31,78 @@ public class CEFResource { private static boolean hasBeenExtracted = false; - private static Path getTempPathForExtraction() { - return Paths.get(System.getenv("APPDATA"), "Eclipse SET", "cef", "dev", "extracted").toAbsolutePath(); - } - /** * @return the path to the extracted CEF files */ public static Path getPath() { - final Bundle bundle = FrameworkUtil.getBundle(CEFResource.class.getClassLoader()).orElseThrow(); - Path bundleLocation = FileLocator.getBundleFileLocation(bundle).orElseThrow().toPath().toAbsolutePath(); - if (Files.isDirectory(bundleLocation)) - return bundleLocation.resolve("cef"); + final Bundle bundle = FrameworkUtil + .getBundle(CEFResource.class.getClassLoader()) + .orElseThrow(); + final Path bundleLocation = FileLocator.getBundleFileLocation(bundle) + .orElseThrow() + .toPath() + .toAbsolutePath(); + if (Files.isDirectory(bundleLocation)) { + return bundleLocation.resolve("res"); + } - // Due to a M2E limitation, Eclipse-BundleShape is not respected when working - // with a maven dependency from within Eclipse (Tycho handles this correctly for - // production builds). For development, instead extract the jar to a temporary + // Due to a M2E limitation, Eclipse-BundleShape is not respected when + // working + // with a maven dependency from within Eclipse (Tycho handles this + // correctly for + // production builds). For development, instead extract the jar to a + // temporary // path, once per execution - Path tempPath = getTempPathForExtraction(); + final Path tempPath = getTempPathForExtraction(); if (hasBeenExtracted) { - return tempPath.resolve("cef"); + return tempPath.resolve("res"); } hasBeenExtracted = true; try (Stream files = Files.walk(tempPath)) { - files.sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete); - } catch (IOException e) { + files.sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } catch (final IOException e) { // ignore } try (JarFile jar = new JarFile(bundleLocation.toString())) { // Create directories Enumeration entries = jar.entries(); while (entries.hasMoreElements()) { - JarEntry entry = entries.nextElement(); + final JarEntry entry = entries.nextElement(); if (entry.isDirectory()) { - new File(tempPath.resolve(entry.getName()).toString()).mkdirs(); + new File(tempPath.resolve(entry.getName()).toString()) + .mkdirs(); } } // Write files entries = jar.entries(); while (entries.hasMoreElements()) { - JarEntry entry = entries.nextElement(); + final JarEntry entry = entries.nextElement(); if (!entry.isDirectory()) { - File file = new File(tempPath.resolve(entry.getName()).toString()); - try (InputStream is = jar.getInputStream(entry); FileOutputStream os = new FileOutputStream(file)) { + final File file = new File( + tempPath.resolve(entry.getName()).toString()); + try (InputStream is = jar.getInputStream(entry); + FileOutputStream os = new FileOutputStream(file)) { is.transferTo(os); } } } - return tempPath.resolve("cef"); - } catch (IOException e) { + return tempPath.resolve("res"); + } catch (final IOException e) { // ignore } return null; } + + private static Path getTempPathForExtraction() { + return Paths + .get(System.getenv("APPDATA"), "Eclipse SET", "cef", "dev", + "extracted") + .toAbsolutePath(); + } } diff --git a/java/org.eclipse.set.browser/META-INF/MANIFEST.MF b/java/org.eclipse.set.browser/META-INF/MANIFEST.MF index 7f56c5f9..5caf6391 100644 --- a/java/org.eclipse.set.browser/META-INF/MANIFEST.MF +++ b/java/org.eclipse.set.browser/META-INF/MANIFEST.MF @@ -6,8 +6,7 @@ Bundle-Version: 2.8.0.qualifier Automatic-Module-Name: org.eclipse.set.browser Bundle-RequiredExecutionEnvironment: JavaSE-21 Require-Bundle: org.eclipse.swt, - org.eclipse.set.browser.lib, - org.eclipse.set.browser.cef.win32 + org.eclipse.set.browser.lib Bundle-ClassPath: . Export-Package: org.eclipse.set.browser, org.eclipse.set.browser.cef, diff --git a/java/pom.xml b/java/pom.xml index a46cb47d..4228e034 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -17,7 +17,6 @@ org.eclipse.set.browser org.eclipse.set.browser.lib - org.eclipse.set.browser.cef.win32 org.eclipse.set.browser.releng.target