Details
-
Type:
New Feature
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
Activity
Added a post on http://www.eclipse.org/forums/index.php?t=msg&goto=501643&S=1c814a9fba21ff6dcb1d7e7e1890a7f8#msg_501643 about a persistent link to the latest equinox nightly build. No response so far.
Added a post on the mailing equinox-dev mailing list about this issue with a more elaborate description about the problem: http://dev.eclipse.org/mhonarc/lists/equinox-dev/msg06002.html
Successfully downloaded the equinox nightly from a P2 mirror with a p2.mirror ant task. However, this requires a (complete) installation of Eclipse and it for now unknown which parts are needed.
I managed to strip the Eclipse installation down to run the antRunner application without dependency errors. However, this resulted in another error:
org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: No repository found at http://download.eclipse.org/eclipse/updates/3.6-N-builds.
This is strange, because the repository is found with the full installation of Eclipse.
I posted a new message on the mailinglist:
Hello all,
I succesfully used the p2.mirror ant task from console with the following command:
$ java -jar org.eclipse.equinox.launcher.jar -console -consoleLog -application org.eclipse.ant.core.antRunner -buildfile build.xml get-equinox
Since I want to execute this task from another ant task running on our build-server I have to embed Eclipse in my project. I figured I should be able to strip it down so it won't has more jars than absolutely necessary to run antRunner. The normal Eclipse installation is around 100mb-200mb and to large to put in my project trunk.
With some digging through the manifest files of the jars in the plugin/ dir I successfully came down with the following list of osgi bundles to run inside Equinox.
org.eclipse.equinox.common.jar
org.eclipse.core.jobs.jar
org.eclipse.equinox.registry.jar
org.eclipse.equinox.preferences.jar
org.eclipse.core.contenttype.jar
org.eclipse.equinox.app.jar
org.eclipse.core.runtime.jar
org.eclipse.core.variables.jar
org.eclipse.osgi.services.jar
org.eclipse.ecf.identity.jar
org.eclipse.ecf.jar
org.eclipse.ecf.filetransfer.jar
org.eclipse.equinox.p2.core.jar
org.eclipse.equinox.p2.jarprocessor.jar
org.eclipse.equinox.p2.metadata.jar
org.eclipse.equinox.security.jar
org.eclipse.equinox.p2.repository.jar
org.eclipse.equinox.p2.artifact.repository.jar
org.sat4j.core.jar
org.sat4j.pb.jar
org.eclipse.equinox.simpleconfigurator.jar
org.eclipse.equinox.p2.metadata.repository.jar
org.eclipse.equinox.p2.engine.jar
org.eclipse.equinox.p2.director.jar
org.eclipse.equinox.p2.garbagecollector.jar
org.eclipse.equinox.p2.exemplarysetup.jar
org.eclipse.equinox.p2.repository.tools.jar
org.apache.ant.jar
org.eclipse.ant.core.jar
With these bundles I was able to run the antRunner task from the commandline, but I retrieved the the error:
org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: No repository found at http://download.eclipse.org/eclipse/updates/3.6-N-builds.
I guess it has something to do with a wrong/missing OSGi service, because accessing this repository worked with the full Eclipse installation and with the stripped setup all the bundles are successfully resolved according to Equinox.
Does anyone know what the specific dependencies are to run a standalone antRunner without a full Eclipse installation?
I used the following configration to launch equinox:
--------------------------------------------------------------------------------------------------------------------------------------
osgi.framework=file\:org.eclipse.osgi.jar
osgi.bundles=reference\:file\:org.eclipse.equinox.common.jar@4,reference\:file\:org.eclipse.core.jobs.jar@4,reference\:file\:org.eclipse.equinox.registry.jar@4,reference\:file\:org.eclipse.equinox.preferences.jar@4,reference\:file\:org.eclipse.core.contenttype.jar@4,reference\:file\:org.eclipse.equinox.app.jar@4,reference\:file\:org.eclipse.core.runtime.jar@4\:start,reference\:file\:org.eclipse.core.variables.jar@4,reference\:file\:org.eclipse.osgi.services.jar@4,reference\:file\:org.eclipse.ecf.identity.jar@4,reference\:file\:org.eclipse.ecf.jar@4,reference\:file\:org.eclipse.ecf.filetransfer.jar@4,reference\:file\:org.eclipse.equinox.p2.core.jar@4,reference\:file\:org.eclipse.equinox.p2.jarprocessor.jar@4,reference\:file\:org.eclipse.equinox.p2.metadata.jar@4,reference\:file\:org.eclipse.equinox.security.jar@4,reference\:file\:org.eclipse.equinox.p2.repository.jar@4,reference\:file\:org.eclipse.equinox.p2.artifact.repository.jar@4,reference\:file\:org.sat4j.core.jar@4,reference\:file\:org.sat4j.pb.jar@4,reference\:file\:org.eclipse.equinox.simpleconfigurator.jar@4,reference\:file\:org.eclipse.equinox.p2.metadata.repository.jar@4,reference\:file\:org.eclipse.equinox.p2.engine.jar@4,reference\:file\:org.eclipse.equinox.p2.director.jar@4,reference\:file\:org.eclipse.equinox.p2.garbagecollector.jar@4,reference\:file\:org.eclipse.equinox.p2.exemplarysetup.jar@4,reference\:file\:org.eclipse.equinox.p2.repository.tools.jar,reference\:file\:org.apache.ant.jar@4,reference\:file\:org.eclipse.ant.core.jar@4
osgi.bundles.defaultStartLevel=4
osgi.noShutdown=true
eclipse.buildId=M20090917-0800
eclipse.p2.data.area=@config.dir/../p2/
eclipse.p2.profile=epp.package.java
--------------------------------------------------------------------------------------------------------------------------------------
The complete stacktrace of the ProvisionException is:
--------------------------------------------------------------------------------------------------------------------------------------
BUILD FAILED
org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: No repository found at http://download.eclipse.org/eclipse/updates/3.6-N-builds.
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.fail(AbstractRepositoryManager.java:380)
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:641)
at org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.loadRepository(ArtifactRepositoryManager.java:93)
at org.eclipse.equinox.p2.internal.repository.tools.AbstractApplication.addRepository(AbstractApplication.java:96)
at org.eclipse.equinox.p2.internal.repository.tools.AbstractApplication.initializeRepos(AbstractApplication.java:67)
at org.eclipse.equinox.p2.internal.repository.tools.tasks.MirrorTask.execute(MirrorTask.java:53)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:622)
at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:494)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:513)
at org.eclipse.ant.core.AntRunner.start(AntRunner.java:600)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
--------------------------------------------------------------------------------------------------------------------------------------
Response from Andrew Niefer on the mailing-list:
--------------------------------------------------------------------------------------------------------------------------------------
Using 3.5.1, I had to add the following to your list to get it to work:
org.eclipse.ecf.provider.filetransfer
org.eclipse.ecf.provider.filetransfer.httpclient
org.apache.commons.httpclient
org.apache.commons.logging
org.apache.commons.codec
This list will change in 3.6. For reference you can look at the org.eclipse.releng.basebuilder project in cvs (dev.eclipse.org/cvsroot/eclipse). This is the set of bundles used to run the releng builds. It is good to check out this project based on a tag.
--------------------------------------------------------------------------------------------------------------------------------------
Added this bundles did the job so equinox nightly can be added to the nightly build project.

Moved to sprint #6