karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Serge Huber <shu...@jahia.com>
Subject Re: [PROPOSAL] Karaf Boot roadmap
Date Thu, 12 May 2016 21:39:41 GMT
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é <jb@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é
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com


Mime
View raw message