opensource.luminis.net
 

OSGi testing framework

Automatically test equinox nightly build

Details

  • Type: New Feature New Feature
  • Status: Resolved Resolved
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None

Activity

Hide
Walter Treur added a comment - 07/Dec/09 3:11 PM

Moved to sprint #6

Show
Walter Treur added a comment - 07/Dec/09 3:11 PM Moved to sprint #6
Walter Treur made changes - 07/Dec/09 3:11 PM
Field Original Value New Value
Fix Version/s Sprint #5 [ 10021 ]
Fix Version/s Sprint #6 [ 10022 ]
Hide
Walter Treur added a comment - 15/Dec/09 12:15 PM

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

Show
Walter Treur added a comment - 15/Dec/09 12:15 PM 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
Hide
Walter Treur added a comment - 18/Dec/09 2:58 PM

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.

Show
Walter Treur added a comment - 18/Dec/09 2:58 PM 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.
Walter Treur made changes - 18/Dec/09 2:58 PM
Fix Version/s Sprint #6 [ 10022 ]
Hide
Walter Treur added a comment - 05/Jan/10 1:31 PM

Moved to Sprint #8

Show
Walter Treur added a comment - 05/Jan/10 1:31 PM Moved to Sprint #8
Walter Treur made changes - 05/Jan/10 1:31 PM
Fix Version/s Sprint #8 [ 10031 ]
Hide
Walter Treur added a comment - 18/Jan/10 9:29 AM

Moved backlog

Show
Walter Treur added a comment - 18/Jan/10 9:29 AM Moved backlog
Walter Treur made changes - 18/Jan/10 9:29 AM
Fix Version/s Sprint #8 [ 10031 ]
Hide
Walter Treur added a comment - 20/Jan/10 2:29 PM

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)
--------------------------------------------------------------------------------------------------------------------------------------

Show
Walter Treur added a comment - 20/Jan/10 2:29 PM 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) --------------------------------------------------------------------------------------------------------------------------------------
Hide
Walter Treur added a comment - 22/Jan/10 1:35 PM

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.

Show
Walter Treur added a comment - 22/Jan/10 1:35 PM 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.
Hide
Walter Treur added a comment - 03/May/10 9:04 AM

This issue was resolved a while ago

Show
Walter Treur added a comment - 03/May/10 9:04 AM This issue was resolved a while ago
Walter Treur made changes - 03/May/10 9:04 AM
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]

People

Dates

  • Created:
    23/Nov/09 10:32 AM
    Updated:
    03/May/10 9:04 AM
    Resolved:
    03/May/10 9:04 AM