This looks really great. I just had a couple of suggestion : - Could it be possible to use the samples as “project archetypes” ? So that users would have even less to write ? I’m thinking especially at developing a REST service alongside with a set of integration tests that would start the server and use a REST client to test the REST service. - Should we think about a CLI interface similar to what exists in the front-end development world ? I’m thinking of something like the Angular 2 CLI that was just announced ? https://cli.angular.io I’m not sure how this would integrate with Maven but I was mostly thinking about total beginners to both Karaf and Maven (mostly those coming maybe from Gradle, Ant or Bndtools).
WDYT ? cheers, Serge… officially on vacation :) > On 11 mai 2016, at 10:04, Jean-Baptiste Onofré <j...@nanthrax.net> wrote: > > 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