Hi, I'm really excited to see the new starters for bootstrapping, if I can give you a hand on the PoC I will be pleased to help.
+1 for the karaf-boot-maven-plugin with @bootstrap annotation way. I also think it's a good idea to build the new guide on karaf-boot, so it's possible to refer to a working example. Regards, Morgan PS: I don't see my samples, should I propose them as PRs? 2016-05-11 17:04 GMT+02:00 Jean-Baptiste Onofré <j...@nanthrax.net>: > Hi all, > > Karaf Boot code is now on the Apache Git: > > https://git.apache.org/karaf-boot.git/ > > with the github mirror: > > https://github.com/apache/karaf-boot > > I created the component in Jira. > > I will update the website with karaf-boot description. > > I propose the following roadmap for karaf-boot, heading to the first 1.0 > release: > > 1. Bootstrapping > ---------------- > As a reminder, karaf-boot has two goals: > - simplify the way to create module and application for developers > - simplify the bootstrapping as a "standalone" application (leveraging the > container feature) > > Currently, we mostly address the first point. Our starters provide > annotations allowing to easily create application. The > karaf-boot-maven-plugin "calls" the annotation processor in the starters, > and other plugins behind the hood to easily generate artifacts. > > Now, we have to address the second point: bootstrapping. I started a PoC > on that. > I created new starters for bootstrapping: > - karaf-boot-starter-feature creates a feature using the dependencies and > project artifact > - karaf-boot-starter-distribution creates both zip and tar.gz Karaf custom > distribution embedding the current project artifact and dependencies > - karaf-boot-starter-distribution-rjar is similar to distribution, but > it's a runnable jar (using a custom Main) > - karaf-boot-starter-docker creates a docker image embedding the custom > distribution > > Now, the karaf-boot-maven-plugin is checking the dependencies to find one > of these bootstrap starter, and react accordingly. > However, most of the logic is in the plugin, leveraging karaf-maven-plugin > (assembly and archive goals for instance). > If this approach works (and is easy), I don't think it's the most elegant > way. > I think we should create a @bootstrap annotation on a Runnable class in > the bootstrap starters. The annotated class is responsible of the bootstrap > artifact creation. An abstract bootstrap starter provide an annotation > processor that look for @bootstrap annotation and run the class in a > thread. The karaf-boot-maven-plugin just delegates the bootstrapping to the > starter. > > WDYT ? > > 2. New starters > --------------- > We have to extend the coverage of the starter to address more use cases. > I'm thinking about starters for test (both utest and itest leveraging > pax-exam), for jaas, for management/MBean, for eventadmin, for decanter, > for camel, etc. > > 3. New samples > -------------- > Related to 2, each new starter should have a corresponding sample. The > samples are really important as it's where the users start. > > We should also provide kind of full application use case, multi-module. I > started this showing how to use different starters in different modules > (like a Logo construction set). > > 4. Documentation and Karaf Dev Guide > ------------------------------------ > The "new" Karaf Dev guide will be based mostly on karaf-boot. A second > section ("advanced") can still address non karaf-boot cases. > > Thoughts ? > > Regards > JB > -- > Jean-Baptiste Onofré > jbono...@apache.org > http://blog.nanthrax.net > Talend - http://www.talend.com >