Hi Paul and all,

In my POC I'm creating 2 Profiles (ProfileA, ProfileB) and as Paul
indicated I'm now using -destination parameter to give the target location
separately based on the Profile id.
(I'm not using -shared param to define the p2-location because it then gets
hard-coded in the config.ini file for p2.data.area.)

So I'm only changing the destination based on the Profile ID
eg:
-destination {path}/target/components/ProfileA -profile ProfileA
-destination {path}/target/components/ProfileB -profile ProfileB

Now my target product's directory structure should look like below;

*target
|-plugins
|-features
|-components*
  |--ProfileA
  |    |-p2
  |       /org.eclipse.equinox.p2.engine/profileRegistry/ProfileA.profile
  |    |-configuration
  |       /config.ini
  |       /org.eclipse.equinox.simpleconfigurator/bundles.info
  |--ProfileB
  |    |-p2
  |        /org.eclipse.equinox.p2.engine/profileRegistry/ProfileB.profile
  |    |-configuration
  |       /config.ini
  |       /org.eclipse.equinox.simpleconfigurator/bundles.info

To materialize ProfileA I first parse & materialize a .product
configuration (A.product) and then install features onto it using
p2-director.
So in the first cycle of p2-director execution ProfileA should be created
with the config.ini, bundles.info and the base set of features installed.
The config.ini generated for Profile A has below entries;

*eclipse.p2.profile=ProfileA
osgi.framework=file\:plugins/org.eclipse.osgi_3.7.0.v20110613.jar
equinox.use.ds=true
osgi.bundles=reference\:file\:org.eclipse.equinox.simpleconfigurator_1.0.200.v20110502-1955.jar@1
\:start
org.eclipse.equinox.simpleconfigurator.useReference=true
org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/
bundles.info
eclipse.product=A.product
osgi.framework.extensions=
osgi.bundles.defaultStartLevel=4
[email protected]/../p2/
eclipse.application=A.application*

ProfileB should contain (base set of Features in profileA + some new set of
features).
So I assumed without using a separate .product configuration to materialize
ProfileB I can re-use the same bundle.info and config.ini file generated
for ProfileA above by moving them inside ProfileB/configuration and execute
p2-director (with -destination {path}/target/components/ProfileB -profile
ProfileB)to install the new set of features to ProfileB.
(Here I manually change the config.ini value : *eclipse.p2.profile=ProfileB*).


Although the features get installed to the /ProfileB.profile, the
bundles.info file in ProfileB doesn't get updated with the new bundles.
Any idea what I'm doing wrong here?
Do I need a separate .product file to be used to materialize ProfileB? I'm
using a maven-based-plugin (which uses tycho under-the hood) to create this
product structure.

Perhaps I'm going way-off from achieving a multiple-profile build in my
target application. Please share your ideas, suggestions to get back on
correct track. :)

Thanks,
Dileepa

On Mon, Feb 11, 2013 at 2:32 AM, Dileepa Jayakody <[email protected]> wrote:

> Thanks a lot Paul for your insight on this. I get a clear picture on how
> P2 director works now with your examples :)
>
> Regards,
> Dileepa
>
> On Fri, Feb 8, 2013 at 7:41 PM, Paul Webster <[email protected]
> > wrote:
>
>> On Fri, Feb 8, 2013 at 5:31 AM, Dileepa Jayakody <[email protected]>wrote:
>>
>>> Hi All,
>>>
>>> Can someone give some help on this please?
>>> I  would like to know how P2-Director finds the bundles.info file to
>>> update during a feature installation.
>>>
>>
>> The bundles.info is in the simpleconfigurator config data location, and
>> I don't see how the director can update it unless it is updating its own
>> install.  If anything, it would be tied to the -destination argument, not
>> the -profile one.
>>
>> I don't believe you can have multiple profiles within one configuration
>> area, as you need one configuration area to completely launch one eclipse
>> application.
>>
>> You could, however, create a shared bundle pool and multiple contained
>> target areas:
>>
>>
>> $ECLIPSE372 -application org.eclipse.equinox.p2.director \
>> -noSplash -bundlepool /opt/local/eclipse/dirExp/eclipse \
>> -shared /opt/local/eclipse/dirExp/eclipse/p2 \
>>
>> -destination /opt/local/eclipse/dirExp/eclipse/win32_win32_x86 \
>> -profile SDKProfile_win32_win32_x86 \
>> -profileProperties org.eclipse.update.install.features=true \
>> -p2.os win32 -p2.ws win32 -p2.arch x86 -roaming \
>>
>>
>> -repository file:///opt/local/eclipse/dirExp/eclipseRepo \
>> -installIUs org.eclipse.sdk.ide
>>
>> $ECLIPSE372 -application org.eclipse.equinox.p2.director \
>> -noSplash -bundlepool /opt/local/eclipse/dirExp/eclipse \
>> -shared /opt/local/eclipse/dirExp/eclipse/p2 -destination \
>> /opt/local/eclipse/dirExp/eclipse/linux_gtk_x86_64 \
>>
>>
>> -profile SDKProfile_linux_gtk_x86_64 \
>> -profileProperties org.eclipse.update.install.features=true \
>> -p2.os linux -p2.ws gtk -p2.arch x86_64 -roaming \
>> -repository file:///opt/local/eclipse/dirExp/eclipseRepo \
>>
>>
>> -installIUs org.eclipse.sdk.ide
>>
>>
>>
>> --
>> Paul Webster
>> Hi floor.  Make me a sammich! - GIR
>> _______________________________________________
>> p2-dev mailing list
>> [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