+1 to all the points :-) Thanks! -- Andrea Cosentino ---------------------------------- Apache Camel PMC Member Apache Karaf Committer Apache Servicemix Committer Email: ancosen1...@yahoo.com Twitter: @oscerd2 Github: oscerd
On Wednesday, May 11, 2016 5:04 PM, 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