Hi,

Thanks for the reply ! See my comments below:

"AFAIK we do not ship an application that just publishes the JRE IU."
This is not my intention too. :) We want to publish a full-bloodied OSGi 
product to be installable from a p2 repository. Some of the bundles, included 
in the product, require specific versions of the jdk packages. The versions are 
described in a java profile file which is loaded through a startup parameter by 
the OSGi framework.

"You are free to create your own profile to represent a JRE that you do know 
about and then publish using that info."
Well, the problem is that I don't know how to pass that info to the publisher.

In fact, I suspect that the publisher can't read an external profile at all, 
even though the functionality to use such a profile is there. I judge by the 
experience I had while debugging the publisher code. I encountered a few 
interesting moments in the code which I'd like to comment with you.

To get a little bit more technical:
1) the JREAction class has two constructors to accept external profiles. 
However, in productive code, both constructors are called with null parameters 
(some marked with TODO comments) which make the publisher to resort to a 
hardcoded profile from a hardcoded location.
2) Even if there are versions specified in the profile, publisher silently 
ignores them by passing null for a package version to the MetadataFactory in 
JREAction.generateJRECapability(String id, Version version).

My experience is based on the bundles shipped with Eclipse 3.7M4.
Can we fix this behavior ? Or am I simply running the product publisher the 
wrong way ?

Thanks and regards,
Shenol Yousouf
SAP Labs Bulgaria

From: [email protected] [mailto:[email protected]] On Behalf 
Of Jeff McAffer
Sent: Thursday, January 13, 2011 8:33 PM
To: P2 developer discussions
Subject: Re: [p2-dev] How can the product publisher use java profiles ?

AFAIK we do not ship an application that just publishes the JRE IU.  It is done 
as a by-product of product publishing.  Users can write their own apps that 
combine the various actions to best suit their needs to you may need to put 
something together if you want to run just the JRE action from the command line.

As for the content of the JRE IU and version numbers, in general we don't have 
version numbers for the packages in the JRE. The publisher just uses the 
content to the .profile file copied from the OSGi bundle.  If we knew what 
versions packages were included in the various JREs we'd include that info in 
the .profile file. Unfortunately, this info is not generally/reliably 
available.  You are free to create your own profile to represent a JRE that you 
do know about and then publish using that info.  If you find a way of getting 
definitive package version information for JRE packages, please open a bug 
against Equinox/Framework. It would be interesting to have that info in the 
main framework profiles.

Jeff




On 2011-01-13, at 12:09 PM, Yousouf, Shenol wrote:


Hi all,

As you know, during product publishing a JRE configuration unit is generated to 
export a standard set of java packages which installable units may require. 
However, the default JRE unit exports all the packages with version '0.0.0' 
which does not suit me.  I want to publish a product along with a java profile 
file which specifies the exact versions I need.

Judging by the code, publishing has support to load such a profile from a 
specified location (see JREAction class for reference) but I cannot find any 
entry point from the product publisher application (in the current case, I need 
to run the application, not call the publisher API programmatically) or from 
the product definition file to pass such a profile. Can you tell me if there is 
a common way to do that ?

Thanks and regards,
Shenol Yousouf
SAP Labs Bulgaria

_______________________________________________
p2-dev mailing list
[email protected]<mailto:[email protected]>
https://dev.eclipse.org/mailman/listinfo/p2-dev

_______________________________________________
p2-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/p2-dev

Reply via email to