Monthly Archive for: ‘January, 2009’
Together with my buddies Martin Lippert and Gerd Wütherich I gave a talk about “patterns and best practices for dynamic OSGi applications” at the OOP conference in Munich. The talk was fun and even Peter Kriens told us afterwards that he learned something :). You can download the presentation here. Most things in the presentation are implemented in my dynamic OSGi demo, take a look at the project home page. Here you find examples of the Whiteboard pattern, the Extender pattern, as well as UI view contribution services using
- OSGi Declarative Services
- Spring Dynamic Modules
- Google Guice / Peaberry
Recently I created a continuous integration environment for my dynamic Swing OSGi demo. For the headless build I use PDE build and I also created a feature and a main jnlp file to make the application startable using Java WebStart. Here is a screenshot of the current version:
If you have Java 6 installed, you can launch the application through WebStart. In the following weeks I plan to blog about the details of
Deploying Equinox applications as binaries
Making the application startable using Java WebStart
Creating a headless PDE build (including JAR signing and generating of jnlp files)
If you want to have a look at the current sources, you find all information at the project home page.
You may have noticed that feature brandings disappear if you get rid of all the update manager stuff and just use p2 (version 3.4.1). The solution to get the feature brandings back is quite simple: Deploy org.eclipse.update.configurator with your RCP application. But that’s not quite enough. Since org.eclipse.update.configurator is activated lazily, just invoke a static function, e.g.
ConfiguratorUtils.getCurrentPlatformConfiguration() in the startup phase of your application. Or, if you don’t want to have dependencies to org.eclipse.update.configurator, just call Platform.getBundle(“org.eclipse.update.configurator”).start() (Thx Tom :)). The picture below shows the About dialog with feature brandings of my current MP3 Manager. The application was created during a headless build, using p2 director to create the executable