Auto updating a remote osgi instance (a swing gui)
I am planning to use osgi in a typical client-server (with swing gui) application. Hot deploying bundles to the server is made easy 开发者_JAVA技巧with fileinstall but now I am looking for something similar on the GUI.
The GUI is started with webstart but I want to update bundles without asking the user to close and restart.
I was planning to have a server side bundle which monitors a directory containing bundles, exposes the bundles over http and notifies the clients when something has changed. A client side bundle would listen for the notifications and do the bundle installs/updates using the methods on BundleContext and Bundle.
(Note: I already have an RMI like link between the server and clients which can be used for the notifications)
Is there anything which already does this or similar?
I would at least like to reuse fileinstall for the filesystem watching part but I don't want the GUI bundles started on the server.
P2 is a great provisioning system for OSGi based applications. Eclipse uses it, and there are a lot of uses even for non-OSGi applications. You should definitely have a look at it before you start building you own update system. You can also check Apache Ace.
The Fractal example for the Paremus Service Fabric may be instructive here ( https://docs.paremus.com/display/SF16/Demonstration ). In this example both Server and Client side OSGi bundles may be dynamically installed. RMI is also supported.
Regards
Richard
精彩评论