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
>

Reply via email to