[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [p2-dev] Avoiding JRE IUs and Generator Mode?

Thanks, Ian - but following the directions I can't make it work.  I tried the first format and I get empty metadata and artifacts in my repository, with a .log file dumped into my Eclipse configuration directory with the following contents:
!SESSION 2009-05-12 10:50:27.551 -----------------------------------------------
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_CA
Framework arguments:  -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file:C:/Temp/p2/testing_publisher/repository -artifactRepository file:C:/Temp/p2/testing_publisher/repository -source file:C:/Temp/p2/testing_publisher/update-site -append -publishArtifacts
Command-line arguments:  -os win32 -ws win32 -arch x86 -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file:C:/Temp/p2/testing_publisher/repository -artifactRepository file:C:/Temp/p2/testing_publisher/repository -source file:C:/Temp/p2/testing_publisher/update-site -append -publishArtifacts
!ENTRY org.eclipse.equinox.p2.repository 4 0 2009-05-12 10:50:28.504
!MESSAGE ProvisioningEventBus could not be obtained. Metadata caches may not be cleaned up properly.

From: p2-dev-bounces@xxxxxxxxxxx [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Ian Bull
Sent: May 11, 2009 5:43 PM
To: P2 developer discussions
Subject: Re: [p2-dev] Avoiding JRE IUs and Generator Mode?

I'm starting the publisher docs here:

There is still long way to go, but it's a start.

This brings up a good question.  Andrew, should I include the PDE Build publishing related tasks (the ones contributed by build) in this documentation?


On Mon, May 11, 2009 at 2:26 PM, Andrew Niefer <aniefer@xxxxxxxxxx> wrote:

There are these:

Contributed by org.eclipse.pde.build:
eclipse.gatherFeature : publish a feature from source (ie feature has build.properties), also does the root properties.  implemented by GatherFeatureTask.
eclipse.gatherBundle : publish a bundle from source (.class files have been compiled), implemented by GatherBundleTask
eclipse.publish.featuresAndBundles : publishes binary features/bundles.  Also does categories. implemented by FeaturesAndBundlesTask
eclipse.brand.p2.artifacts : brands launcher artifacts for a product (normally provided by org.eclipse.equinox.executable), changes launcher name/icon, etc.  Republishes them under a new IU matching the product.

The two eclipse.gather* tasks are used by pde.build to create the jars from source during a publish.bin.parts target in the generated build.xml, this replaces the gather.bin.parts from before.

Contributed by org.eclipse.equinox.p2.publisher:
p2.publish.featuresAndBundles : just like eclipse.publish.featuresAndBundles above, but doesn't do categories.  implemented by FeaturesAndBundlesPublisherTask
p2.publish.product : publish a .product file assuming required things are already in the repo, implemented by ProductPublisherTask.  This will publish a JRE IU, which will be required if your product includes bundles that import packages that are provided by the system.
p2.publisher : I don't know about this one, might not be tested.  probably a replacement of p2.generator, implemented by PublisherTask

Contributed by org.eclipse.equinox.p2.repository.tools
p2.repo2runnable : transform repositories into "runnable" form which can be compiled against., Repo2RunnableTask
p2.mirror : mirroring for artifacts and metadata, with slicing and filters.  MirrorTask
p2.process.artifacts : optionally sign/condition/pack jars using the jarprocessor task.  Also update the artifact repo with new descriptors for pack200 and update the MD5 sums to match the artifacts. ProcessRepoTask
p2.composite.repository: create composite repositories.  CompositeRepositoryTask

Both the build and publisher tasks above support the p2.inf file.  For bundles and features, the difference is the pde.build gather tasks publish directly from source at build time.  For these tasks, you don't actually need to include the p2.inf in your binary bundles (although you can), it just needs to be there with the source.  The publisher featuresAndBundles task publishes from binary jars, so you do need to included the p2.inf in the jar if you are using it.

(Note, in all of the above, when I say source, I mean your project checked out from CVS, not a generated source bundle org.foo.source.)


05/11/2009 02:48 PM

Please respond to
P2 developer discussions <p2-dev@xxxxxxxxxxx>

"P2 developer discussions" <p2-dev@xxxxxxxxxxx>
RE: [p2-dev] Avoiding JRE IUs and Generator Mode?

Aha - well I didn't realize that was an old task.  So, the tasks I can use that are not documented - where are they located source-wise?  I'm fine digging through source.  I have found that the PDE call to "eclipse.gatherFeature" seems to work without the JRE cruft as well.
However, the "p2.publish.featuresAndBundles" task seems to be what I need.  Does this handle p2.inf when it is called?  I'm a little confused as to when this file is needed.  Is it just a "publish-time" thing, or is it needed at build time as well.  I guess what I am asking is - should I just build my features and plugins the way I always did, but include the p2.inf file in my JAR, then later use it as part of a publish or metadata generation step?

From: p2-dev-bounces@xxxxxxxxxxx [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Andrew Niefer
May 11, 2009 1:26 PM
P2 developer discussions
Re: [p2-dev] Avoiding JRE IUs and Generator Mode?


I don't see any way to turn off the generation of this IU using that task.

The incremental mode keeps the results of the generation around in memory so that the next invocation of the task will add to them.  Mode "final" will then clear those accumulated results and also generate a parent container IU if a .product file is used or root id is provided.

Note that this "p2.generator" task is the 3.4 based metadata generator.  3.5 has a new publisher which supports more customization (through the p2.inf file) that the generator didn't.  There are publisher tasks that could be used to avoid the jre IU if you were only doing features, unfortunately they aren't yet documented.

The "p2.publish.featuresAndBundles" task will publish built feature and plugin jars.  It supports a  "source" attribute specifying a directory containing features and plugins subfolders.  It also supports nested <features> and <bundles> elements which are ant Filesets specifying features and bundles to publish.  It also has the following attributes that should correspond to the same thing on the p2.generator task: artifactRepository, metadataRepository, artifactRepositoryName, metadataRepositoryName, append, compress, publishArtifacts.  Using this task won't create jre IUs.


"Mark Melvin" <Mark.Melvin@xxxxxxxxxx>
Sent by: p2-dev-bounces@xxxxxxxxxxx

05/11/2009 11:50 AM

Please respond to
P2 developer discussions <p2-dev@xxxxxxxxxxx>

"P2 developer discussions" <p2-dev@xxxxxxxxxxx>
[p2-dev] Avoiding JRE IUs and Generator Mode?

Hi There,

I am trying to integrate the P2 stuff into my build and I am getting
entries in my metadata for individual features like this:

<unit id='config.a.jre' version='1.6.0' singleton='false'>

<unit id='a.jre' version='1.6.0' singleton='false'>
<provides size='159'>
    <provided namespace='org.eclipse.equinox.p2.iu' name='a.jre'

I am calling the "p2.generator" Ant task with noDefaultIUs set to "true"
(which avoids generating a whole pile of cruft), but the JRE stuff still
gets in there.  Is there any way to avoid the JRE stuff?  I plan on
merging all of my metadata at the end when I combine all of my features
into one large repository.

Also, what is the difference between "incremental" mode and "final"
mode?  I build my features individually using a custom set of scripts
and I think I want mode="final", but I'd like to know that the
difference is between the two.

p2-dev mailing list

p2-dev mailing list

p2-dev mailing list

R. Ian Bull | EclipseSource Victoria | +1 250 477 7484
http://eclipsesource.com | http://twitter.com/eclipsesource