Beta User
Jun 29th, 2008, 06:40 AM
Hello everybody
I have some questions and thoughts about the .par file concept.
As far as I understood, the par file gives me - among others - the possibility to
- deploy many jar files as one (similar to a war file with jars in lib subfolder)
- introduce some kind of a "group" scope in the OSGi world (references between bundles in the par are tried to be satisfied internally primarly)
- choose where I have depending bundles: in my par or already installed as separate bundle in the OSGi environment
Is that correct?
Assuming it is correct, the following questions came up in my mind:
1) Is it possible to deploy the same par file multiple times in the same OSGi environment? I assume yes, as long as they have differing versions
2) Can "pure OSGi bundles" (not packaged in a par) have dependencies to bundles within a par? (That is: Are bundles contained in a par publicly visible?) I assume no.
3) What happens, if I want to update one bundle which is part of a deployed par file?
3.1) Will I have to re-deploy (and thus re-package) the full par file (including all modules) again?
3.2) If I don't have to re-deploy the par, how can I decide - having two times the same par or even various par's all using the same bundle - for which par I update the bundle? Is this some kind of "all or nothing" update (meaning: If I can't decide, will all pars referring to that bundle and assuming their Import-Bundle:version string permits it automatically start using it?)
4) What happens to a pure OSGi bundle in an environment where the same bundle is contained in pars already? Will it just "never be used"? I assume yes (never used)
Correct me if I'm wrong, but currently I think 3.1 is the case. Which somehow is a pitty, because one of the reasons I'd like to start using OSGi is, because everything is modular and I can "quickly deploy fixes for modules" independently of each other. Forcing me to build the full par again is tricky in an automatted build environment (usual setups would probably re-compile all modules and thus produce a par where not only the failing module is updated, but all other modules as well - which is not necessarily what I want).
Concerning 4) I think this can be quite error prone for the "poor deployer". He thinks he updated bundles in pars, but in fact he did not, instead the bundle "is just there" doing nothing.
Somehow I wish, the par concept would be supported on a lower level - that is: Directly in the OSGi spec. That may partly be the case already (with your extensions to equinox). However, I'd prefer, if the whole spec supported "group scopes", where I could
- deploy modules / updates "into an existing group scope"
- getting the status about grouped bundles directly in the OSGi console
- start / stop the whole group on OSGi console level
etc.
I hope, I'm not completely off-track here, but I'm sure you gonna tell me, if I am ;-)
Thanks for any thoughts and answers.
Regards
Kay
I have some questions and thoughts about the .par file concept.
As far as I understood, the par file gives me - among others - the possibility to
- deploy many jar files as one (similar to a war file with jars in lib subfolder)
- introduce some kind of a "group" scope in the OSGi world (references between bundles in the par are tried to be satisfied internally primarly)
- choose where I have depending bundles: in my par or already installed as separate bundle in the OSGi environment
Is that correct?
Assuming it is correct, the following questions came up in my mind:
1) Is it possible to deploy the same par file multiple times in the same OSGi environment? I assume yes, as long as they have differing versions
2) Can "pure OSGi bundles" (not packaged in a par) have dependencies to bundles within a par? (That is: Are bundles contained in a par publicly visible?) I assume no.
3) What happens, if I want to update one bundle which is part of a deployed par file?
3.1) Will I have to re-deploy (and thus re-package) the full par file (including all modules) again?
3.2) If I don't have to re-deploy the par, how can I decide - having two times the same par or even various par's all using the same bundle - for which par I update the bundle? Is this some kind of "all or nothing" update (meaning: If I can't decide, will all pars referring to that bundle and assuming their Import-Bundle:version string permits it automatically start using it?)
4) What happens to a pure OSGi bundle in an environment where the same bundle is contained in pars already? Will it just "never be used"? I assume yes (never used)
Correct me if I'm wrong, but currently I think 3.1 is the case. Which somehow is a pitty, because one of the reasons I'd like to start using OSGi is, because everything is modular and I can "quickly deploy fixes for modules" independently of each other. Forcing me to build the full par again is tricky in an automatted build environment (usual setups would probably re-compile all modules and thus produce a par where not only the failing module is updated, but all other modules as well - which is not necessarily what I want).
Concerning 4) I think this can be quite error prone for the "poor deployer". He thinks he updated bundles in pars, but in fact he did not, instead the bundle "is just there" doing nothing.
Somehow I wish, the par concept would be supported on a lower level - that is: Directly in the OSGi spec. That may partly be the case already (with your extensions to equinox). However, I'd prefer, if the whole spec supported "group scopes", where I could
- deploy modules / updates "into an existing group scope"
- getting the status about grouped bundles directly in the OSGi console
- start / stop the whole group on OSGi console level
etc.
I hope, I'm not completely off-track here, but I'm sure you gonna tell me, if I am ;-)
Thanks for any thoughts and answers.
Regards
Kay