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

Glyn,

FWIW. Our project builds directly from ant, and though there aren't ant tasks we can use (because they'd need to be run from within Eclipse) we do utilize the publisher to generate p2 repositories. All you really need is paths to the launcher and publisher jars, and can invoke them using the "java" task. It isn't as pretty, but it does work. I'll post the target we use below. I hope it helps you out in the meantime.

-Eric

<property name="p2.publisher.jar" value="org.eclipse.equinox.p2.publisher_*.jar"/>
<property name="p2.launcher.jar" value="org.eclipse.equinox.launcher_*.jar"/>


<target name="publish-p2-child" if="do.composite">
<echo message="java.home ='${java.home}'"/>
<echo message="p2.SDK.plugin.dir='${p2.SDK.plugin.dir}'"/>
<echo message="p2.launcher.jar ='${p2.launcher.jar}'"/>
<echo message="p2.publisher.jar ='${p2.publisher.jar}'"/>
<echo message="-----"/>
<echo message="p2.repos.dir ='${p2.repos.dir}'"/>
<echo message="p2.repos.url ='${p2.repos.url}'"/>
<!-- Metadata generator apparently doesn't rebuild the artifact and content xml files if they already exist -->
<mkdir dir="${p2.repos.dir}"/>
<delete failonerror="false">
<fileset dir="${p2.repos.dir}" includes="artifact*.*, content*.*"/>
</delete>
<java classname="org.eclipse.equinox.launcher.Main" fork="true" timeout="10800000" taskname="p2"
jvm="${java.home}/bin/java" failonerror="false" maxmemory="256m">
<classpath>
<fileset dir="${p2.SDK.plugin.dir}"
includes="${p2.launcher.jar},
${p2.publisher.jar}"/>
<pathelement location="${p2.SDK.plugin.dir}" />
</classpath>
<arg line=" -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher" />
<arg line=" -metadataRepository ${p2.repos.url}" />
<arg line=" -artifactRepository ${p2.repos.url}" />
<arg line=" -source ${p2.repos.dir}" />
<arg line=" -compress -publishArtifacts -configs all" />
</java>
</target>



Glyn Normington wrote:
We are most interested in the p2.publish.featuresAndBundles task. Later we may also need a way to resolve dependencies from p2, but that is lower priority.

Glyn
On 11 Jun 2010, at 02:49, Pascal Rapicault wrote:

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?
	The Eclipse SDK itself uses some / most of these tasks. They are unfortunately bound to Ant and OSGi because p2 is written using OSGi and we never really had a request / need to decouple them from OSGi.  I'm not quite sure how tight is our coupling with OSGi but I think it is not too bad especially since we stopped using OSGi services everywhere.
	Which tasks are you interested in?

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)
_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev
_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev

_______________________________________________ p2-dev mailing list p2-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/p2-dev


-- -Eric

Oracle <http://www.oracle.com>
Eric Gwin | Senior Software Developer
Phone: +613 288 4622 <tel:+613%20288%204622> | | Fax: +613 2382818 <fax:+613%202382818> | | Mobile: +613 8582347 <tel:+613%208582347>
Oracle Java Server Technologies
ORACLE Canada | 45 O'Connor St., Ottawa, Ontario | K1P 6L2
Green Oracle <http://www.oracle.com/commitment> Oracle is committed to developing practices and products that help protect the environment