2008/12/20 Emmanuel Venisse <[email protected]>: > On Sat, Dec 20, 2008 at 12:48 AM, Olivier Lamy <[email protected]> wrote: > >> Hi, >> Sorry for late response (I'm a little busy) >> It looks fine and "conforme" to the specs :-). > > > cool :-) > >> >> As I'm a newbie in osgi, I have some questions >> Can we use easily spring beans ? It looks with spring dm (I will try >> to add some tests in the branch). > > > Yes, it is possible. I'll can add a sample after the New Year. > You'll can find an example here : > http://www.dynamicjava.org/projects/da-launcher/examples > > and a tutorial here : > http://www.martinlippert.org/events/OOPSLA2008-SpringDM-Tutorial-v3.pdf > >> >> Can we add dynamically plugins in the lifecycle and how ? (I mean >> plugins coming from a configuration in the buildDefinition). > > > I don't know yet but I have some ideas :-) > > 1- plugins are found at startup but they can be added/removed at runtime > too, when the prototype is launched, type 'help' and you'll see some > available command available from the shell felix plugin like the install > command > 2- for the build definition configuration, the user will can choose to > activate a plugin from a list of available plugins installed before. The > build controller will decide to start a plugin for a build definition or not > if it is activate for this build definition (we can have a DB table to know > it) >
With version ? (osgi could play with that). Users could choose a version of the plugin and not an unique one. Did you have a look at glassfish (this app server use felix) and the part where you can add/update some services to the app server and add some ui components too. > Emmanuel > >> >> >> Thanks, >> -- >> Olivier >> >> 2008/12/11 Emmanuel Venisse <[email protected]>: >> > Hi, >> > >> > I added this prototype, based on OSGI/Felix. It implement the >> specifications >> > written by Olivier [1] for a plugins system in Continuum. >> > >> > This code isn't based on the Continuum code because it is only a >> prototype >> > to show how it is easy to implement it. With this code, you can see it >> will >> > be easy to add it in Continuum, except the difficulty of the refactoring >> of >> > Continuum core to some plugins. >> > >> > How to look at it: >> > - checkout it and run 'mvn clean install >> > - go to continuum-app/target and unarchive continuum-app tar.gz file >> > - go to continuum-app/target/continuum-app/bin and launch run.sh >> > >> > With this command the prototype will start and run all phases defined in >> the >> > plugin manager and plugins attached to specific phases. >> > For the sample, I implemented two very basic plugins (BuildPlugin and >> > MyNotificationPlugin) >> > >> > Plugins must be installed under the plugins directory in the app. >> > >> > You can look at continuum-build-plugin and >> > continuum-commandline-notification-plugin modules to see how to create a >> new >> > plugin. Important things to look at are the pom, the Activator class >> (I'll >> > probably find something later to remove it) and the plugin implementation >> > that must implements a specific interface for a specific phase. >> > >> > I hope you'll can look at it and reply with comments. >> > >> > In future, I want to extend this mechanism to the UI so users will can >> > implements new pages like reports with plugins. >> > >> > [1] >> http://cwiki.apache.org/confluence/display/CONTINUUM/Continuum+Lifecycle >> > >> > Emmanuel >> > >> >
