Repository navigation
P2AntRunner.runUsingPDE doesn't work for modern versions of eclipse #127
Description
Activity
- changed the title
[-]P2AntRunner.runUsingPDE doesn't work[/-][+]P2AntRunner.runUsingPDE doesn't work for modern versions of eclipse[/+]on Aug 10, 2020 I think this is related to #69, which details similar (the same?) problems with
org.eclipse.equinox.ds.However:
- I use goomph every day to launch a
4.16ide with theidetask, and it works - I recently updated the example to Gradle 6 and Eclipse
4.15, and it works
I don't doubt the error in #69, nor the error you are reporting here. But we don't experience this error at DiffPlug, and finding a way to reproduce and then fix it is not a priority for us. Happy to merge a PR to fix it.
If the PR drops support for older versions of eclipse, that would be okay with me. Goomph 3.x could work for Eclipse before hard-coded
equinox.ds, and Goomph 4.x could work for Eclipse after hard-codedequinox.ds. Even better would be if it worked for both.- I use goomph every day to launch a
Thank you for the fast response.
To be more precise and to reproduce the error: Given the following build.gradlebuildscript { repositories { mavenCentral() } dependencies { classpath 'com.diffplug.gradle:goomph:3.24.0' } } task resolveTarget { def runner = com.diffplug.gradle.p2.P2AntRunner.create('pde.provisionTargetDefinition', { it.attributes().targetFile = "my.target" it.attributes().destinationDirectory = "$buildDir/base" it.attributes().clearDestination = false }) doLast { runner.runUsingPDE(com.diffplug.gradle.pde.EclipseRelease.latestOfficial()) } }and running the task
gradlew resolveTargetfails trying to install PDE with the following log:!SESSION 2020-08-10 20:49:48.346 ----------------------------------------------- eclipse.buildId=unknown java.version=11.0.6 java.vendor=Amazon.com Inc. BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE Framework arguments: -application org.eclipse.equinox.p2.director -repository https://download.eclipse.org/eclipse/updates/4.16/R-4.16-202006040540/ -installIU org.eclipse.platform.ide,org.eclipse.jdt.feature.group,org.eclipse.pde.feature.group -profile goomph-pde-bootstrap-4.16.0 -destination file:///C:\Users\alr\.goomph\pde-bootstrap\4.16.0 -bundlepool C:\Users\alr\.goomph\shared-bundles -p2.os win32 -p2.ws win32 -p2.arch x86_64 Command-line arguments: -application org.eclipse.equinox.p2.director -clean -consolelog -repository https://download.eclipse.org/eclipse/updates/4.16/R-4.16-202006040540/ -installIU org.eclipse.platform.ide,org.eclipse.jdt.feature.group,org.eclipse.pde.feature.group -profile goomph-pde-bootstrap-4.16.0 -destination file:///C:\Users\alr\.goomph\pde-bootstrap\4.16.0 -bundlepool C:\Users\alr\.goomph\shared-bundles -p2.os win32 -p2.ws win32 -p2.arch x86_64 !ENTRY org.eclipse.osgi 4 0 2020-08-10 20:49:48.369 !MESSAGE FrameworkEvent ERROR !STACK 0 org.osgi.framework.BundleException: Cannot support framework extension bundles without a public addURL(URL) method on the framework class loader: org.eclipse.osgi.compatibility.state_1.1.0.v20170516-1513 [55] at org.eclipse.osgi.storage.FrameworkExtensionInstaller.addExtensionContent0(FrameworkExtensionInstaller.java:104) at org.eclipse.osgi.storage.FrameworkExtensionInstaller.addExtensionContent(FrameworkExtensionInstaller.java:79) at org.eclipse.osgi.internal.loader.SystemBundleLoader$SystemModuleClassLoader.loadFragments(SystemBundleLoader.java:129) at org.eclipse.osgi.internal.loader.SystemBundleLoader.loadClassLoaderFragments(SystemBundleLoader.java:111) at org.eclipse.osgi.internal.loader.BundleLoader.loadFragments(BundleLoader.java:282) at org.eclipse.osgi.container.ModuleWiring.loadFragments(ModuleWiring.java:273) at org.eclipse.osgi.container.ModuleContainer.applyDelta(ModuleContainer.java:710) at org.eclipse.osgi.container.ModuleContainer.resolveAndApply(ModuleContainer.java:511) at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:457) at org.eclipse.osgi.container.ModuleContainer.refresh(ModuleContainer.java:1001) at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1382) at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.eclipse.ecf.provider.filetransfer.httpclient4.SNIAwareHttpClient$1 (file:/C:/Users/alr/.goomph/p2-bootstrap/4.7.2/plugins/org.eclipse.ecf.provider.filetransfer.httpclient4_1.1.200.v20170314-0133.jar) to method sun.security.ssl.SSLSocketImpl.setHost(java.lang.String) WARNING: Please consider reporting this to the maintainers of org.eclipse.ecf.provider.filetransfer.httpclient4.SNIAwareHttpClient$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Installing org.eclipse.platform.ide 4.16.0.I20200604-0540. Installing org.eclipse.jdt.feature.group 3.18.400.v20200604-0540. Installing org.eclipse.pde.feature.group 3.14.400.v20200604-0540. Installation failed. An error occurred while installing the items session context was:(profile=goomph-pde-bootstrap-4.16.0, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.ibm.icu 64.2.0.v20190507-1337, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction). Could not acquire the framework manipulator service. Caused by: Application failed, log file location: C:\Users\alr\.goomph\p2-bootstrap\4.7.2\configuration\1597085387845.log !ENTRY org.eclipse.equinox.p2.engine 4 4 2020-08-10 20:49:53.715 !MESSAGE An error occurred while installing the items !SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2020-08-10 20:49:53.715 !MESSAGE session context was:(profile=goomph-pde-bootstrap-4.16.0, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.ibm.icu 64.2.0.v20190507-1337, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction). !SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2020-08-10 20:49:53.715 !MESSAGE Could not acquire the framework manipulator service. !STACK 0 java.lang.IllegalStateException: Could not acquire the framework manipulator service. at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.loadDelegate(LazyManipulator.java:45) at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.getConfigData(LazyManipulator.java:108) at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.installBundle(InstallBundleAction.java:75) at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.execute(InstallBundleAction.java:32) at org.eclipse.equinox.internal.p2.engine.ParameterizedProvisioningAction.execute(ParameterizedProvisioningAction.java:39) at org.eclipse.equinox.internal.p2.engine.Phase.mainPerform(Phase.java:184) at org.eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:96) at org.eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:47) at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:77) at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:45) at org.eclipse.equinox.internal.provisional.p2.director.PlanExecutionHelper.executePlan(PlanExecutionHelper.java:42) at org.eclipse.equinox.internal.provisional.p2.director.PlanExecutionHelper.executePlan(PlanExecutionHelper.java:24) at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.executePlan(DirectorApplication.java:813) at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.planAndExecute(DirectorApplication.java:806) at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.performProvisioningActions(DirectorApplication.java:793) at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.run(DirectorApplication.java:1111) at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.start(DirectorApplication.java:1293) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) at com.diffplug.gradle.eclipserunner.EquinoxLauncher$Running.run(EquinoxLauncher.java:190) at com.diffplug.gradle.eclipserunner.EquinoxLauncher$Running.access$100(EquinoxLauncher.java:172) at com.diffplug.gradle.eclipserunner.EquinoxLauncher.run(EquinoxLauncher.java:163) at com.diffplug.gradle.eclipserunner.JarFolderRunner.run(JarFolderRunner.java:37) at com.diffplug.gradle.eclipserunner.JarFolderRunnerExternalJvm$RunOutside.run(JarFolderRunnerExternalJvm.java:126) at com.diffplug.gradle.JavaExecable.main(JavaExecable.java:134)Reacted by Ned TwiggLooks like you're on Java 11, also related to #99.
3.28.0fixes some Java 11 issues. I'm closing this issue for now, but if it's still broken post info here and I'll reopen.
P2AntRunner.runUsingPDE uses P2 bootstrap to install PDE. This doesn't work, because the P2 bootstrap is 4.7.2 and cannot install a recent (4.16.0) Eclipse.
I manually created a new P2 bootstrap based on 4.16.0 (with the help of P2BootstrapInstallationCreate), but EquinoxLauncher doesn't work with this bootstrap because it requires (hard-coded) org.eclipse.equinox.ds, which doesn't exist anymore (already for a long time replaced by org.apache.felix.ds).
Please provide a way to run Eclipse Ant tasks with a recent bootstrap and/or a recent PDE.