Thanks Richard,

You can, although you can also use OBR to deploy from a local repository
> too. Regarding location, it isn't too important. For example, OBR just
> generates one based on the symbolic name and a timestamp. The main issue is
> that the location is used as a key to uniquely identify a bundle, so if you
> use a different location for the same bundle, the framework will treat it
> different than if you use the same location.
>

Sounds like OBR is generally the way to go. I'll take a more in depth look.
Other than
https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+OSGi+Bundle+Repository#ApacheFelixOSGiBundleRepository-OBRRepositoryFile
are
there any other resources or examples you happen to know of?


> Yeah, you don't need to do that. You can package the initial bundles with
> the install package. Of course, once you update the installed bundles, you
> may want another mechanism to save the updates overtop of the bundles in
> the install package (i.e., outside the framework) so if the user ever
> restarts from scratch (i.e., deletes their framework cache) they will start
> with the latest bundles. Of course, this is not completely necessary, since
> you could just deploy the old bundles and update them again, but it's
> something to think about.


Yeah, already thought about that, I wasn't going to overwrite the
initially-installed bundles for now. There are security implications for
Windows Vista+ platforms (write access to Program Files/**) technical
issues with the Mac (updating a DMG image possibly beyond its size) and
finally in many ways it may be a nice feature being able to roll back to
the original version just by removing felix-cache.


> You don't need to write your own AutoProcessor, just your own launcher
> that massages the auto-deploy directory bundles to be what you want, then
> the existing AutoProcessor would install, update, and delete as appropriate.


I guess I don't understand this... Considering possibly already installed
bundles in felix-cache I still have the problem with the version numbers
differentiating the bundles and so more than one version of the bundle may
be started.

i.e... after first install and before first run:

bundle/
my_web_app-1.0.1.jar
jetty-xyz.jar

Run it:

bundle/
my_web_app-1.0.1.jar
jetty-xyz.jar

felix-cache/
my_web_app-1.0.1.jar
jetty-xyz.jar

Update it:

bundle/
my_web_app-1.0.1.jar
jetty-xyz.jar

felix-cache/
my_web_app-1.0.2.jar
jetty-xyz.jar

Re-install later version:

bundle/
my_web_app-1.0.3.jar
jetty-xyz.jar

felix-cache/
my_web_app-1.0.2.jar
jetty-xyz.jar

Because my_web_app-1.0.3.jar has a different URL to my_web_app-1.0.2.jar
(whose location is my_web_app-1.0.1.jar) it will be started.

Dan

Reply via email to