[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] Multiple targets

Hi Warren,
The answer to this question is that it depends on a couple of things:
- you can install and manage into one profile at a time
- one profile is equivalent to one runtime
- when you install into your profile you can have custom touchpoints that can execute your actions (in 3.5 it is easier to write a custom action). These actions can do whatever they need to do to get something installed "someplace else".

Separate installs (i.e. provisioning operations) must be performed if your system requires installation into more than one profile; the case if say both your client and server are osgi based. 
There is one advantage if you can have them in the same profile as the configuration across client/server can be maintained with p2 - if you install into two separate profiles the profiles can be independently updated, and there is currently no functionality in p2 to handle constraints between profiles.

To answer your questions more directly:
would it be possible to provision everything through the p2 agent of the osgi instance?
Any p2 agent that have your touchpoint/actions installed can be used. Work is being performed in 3.5 to allow for (at least) touchpoint actions to be dynamically installed as part of the provisioning, but if you want to try things right now - you need to make sure that your actions are installed before you start your custom install.
Would I need a separate agent on the database?

If the database is an osgi based database and a separate runtime you will probably have it in a separate profile. The same agent can still be used but you need to run it against the two different profiles. If the database is not OSGi based - then your custom actions will have to deal with install and uninstall - but then you don' require more than one profile.

Hope that helped...

On Jan 16, 2009, at 7:15 PM, Warren_Paul@xxxxxxx wrote:

Hi Folks,
Suppose that I have different types of bundles; osgi bundles, database bundles (that contain an OSGi manifest, table defs, views, etc).  OSGi bundles live in an OSGi container.  Database bundles would live in a database. 
My application would obviosuly comprise both database bundles (persistence) and traditional osgi bundles (behavior). 
The potential advantage of this approach is that everyting can be a bundle and I can leverage all the nice version dependency stuff; my osgi bundles can be version matched to my database models, etc.
As these bundles are all logically related and assuming the osgi instance becomes the orchestrator for all this - would it be possible to provision everything through the p2 agent of the osgi instance?  Perhaps by associating my database bundle IUs with a new touchpoint type/actions that can provisioned straight to the database (which would probably also need to be described in the profile's metadata).
Would I need a separate agent on the database?
Or are both equally valid (or invalid)?
Many thanks
p2-dev mailing list