[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[p2-dev] p2 publication queries

I posted an inquiry [1] on the p2 forum yesterday to no avail, so I'm repeating it here:

I would be grateful for a sanity check of how we are thinking of using p2 while building the Eclipse Virgo<http://eclipse.org/virgo/> [2] project.

Virgo is split into a number of components<http://wiki.eclipse.org/Virgo/Source> [3] each of which has a git repository and a Hudson build. The components depend on each other, with the dependencies forming a DAG.

When we successfully build a snapshot of a component, we want to make the bundles of the snapshot available for builds of other components to consume. We have been advised<https://bugs.eclipse.org/bugs/show_bug.cgi?id=311697#c1> [4] to use p2.

So we are thinking of making each snapshot build construct a p2 repository of built bundles in the build's workspace and, if the build is successful, to promote the contents of the workspace p2 repository to a common Virgo p2 repository in the Virgo downloads area.

The benefit of publishing to a common repository is that component builds need only specify the location of the common repository rather than having to construct some kind of search sequence of all the repositories of components containing dependencies.

Thoughts?

In addition, we are wanting to use the p2 ant tasks and we can't get them going (most nested stack trace from v3.5.2 below, v3.6RC4 fails and gives the impression an OSGi environment needs to be set up in advance). Is it necessary to set up some kind of OSGi environment prior to using these ant tasks? Are there examples of the use of these ant tasks, preferably in live Eclipse projects?

Many thanks,
Glyn

[1] http://www.eclipse.org/forums/index.php?t=msg&th=169631&start=0
[2] http://eclipse.org/virgo/
[3] http://wiki.eclipse.org/Virgo/Source
[4] https://bugs.eclipse.org/bugs/show_bug.cgi?id=311697#c1

java.lang.NullPointerException
        at org.eclipse.equinox.p2.publisher.Publisher.loadArtifactRepository(Publisher.java:142)
        at org.eclipse.equinox.p2.publisher.Publisher.createArtifactRepository(Publisher.java:104)
        at org.eclipse.equinox.internal.p2.publisher.ant.AbstractPublishTask.initializeRepositories(AbstractPublishTask.java:93)
        at org.eclipse.equinox.internal.p2.publisher.ant.FeaturesAndBundlesPublisherTask.execute(FeaturesAndBundlesPublisherTask.java:29)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        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.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
        at org.apache.tools.ant.taskdefs.SubAnt.execute(SubAnt.java:289)
        at org.apache.tools.ant.taskdefs.SubAnt.execute(SubAnt.java:208)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        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.taskdefs.Sequential.execute(Sequential.java:62)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        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.taskdefs.MacroInstance.execute(MacroInstance.java:394)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        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.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)