On Sun, Dec 21, 2008 at 2:30 PM, Olivier Lamy <[email protected]> wrote:
> 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. Yes, it will be possible to launch plugins by versions/users if we use some properties during the plugin registration, then we'll can use them to filter the plugins list and run only versions the user want to run. > > > 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. Not yet. > > > > > 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 > >> > > >> > >
