karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Baptiste Onofré ...@nanthrax.net>
Subject Re: [PROPOSAL] Create and provide karaf-boot plugin
Date Mon, 27 Apr 2015 19:53:27 GMT
Actually, I wasn't clear.

At I'm proposing is not only a new plugin, it's also a dependency.

Imagine, that in your project pom.xml, you have:


The parent contains all plugins and dependencies set, especially the 
Karaf standard distribution.

Later in your pom.xml, you have:


In your project, you just need a class describing your Karaf bootstrapping:

public class MyContainer implements KarafBootstrapper {

public void run() {
   // setup your Karaf bootstrapping


The user can add "boot features" to customize the container:


for instance it will automatically add Pax Web war feature in 
featuresBoot (no need to use @featuresBoot).

The purpose is to (depending of the goal used by the user):
1/ be able to run container+application easily
2/ package a custom distribution, ready to go ("key turn") including 

Again, the approach is, from the native user codebase, be able to 
bootstrap a container embedding the user applications. This container 
can be started directly from the project, and provide an artifact ready 
to deploy (on docker, or whatever). The artifact is actually a custom 
karaf distribution.

I hope it's clearer. Again, it's just an idea, but IMHO, it will give a 
new dimension to Karaf: it will turn Karaf as a modern polymorphic 
The users can still use Karaf "standalone" where they do the 
provisioning, or they can use Karaf "boot" as basis for key turn 
application container.


On 04/27/2015 07:57 PM, Guillaume Nodet wrote:
> 2015-04-27 16:03 GMT+02:00 Jean-Baptiste Onofré <jb@nanthrax.net>:
>> Hi all,
>> On a local branch, I worked on some new goals for the karaf-maven-plugin,
>> especially:
>> karaf:run to easily bootstrap and start a Karaf instance
> +1
>> karaf:deploy to upload (scp) the project artifact (or a given artifact) in
>> the deploy folder or the system folder (respecting the maven structure)
> +1 we could also add sftp and http/https upload, with the help of the maven
> http servlet i've added in 4.x
>> karaf:client to connect to a running Karaf instance and execute commands
> +1, i suppose we'd need interactive and scripted, like the bin/client
> script, right ?
>> I would like to add a new plugin (more than a new goal):
>> karaf-boot-maven-plugin
>> with the boot goal.
>> The purpose is easily:
>> 1/ in the end user code module, build a karaf custom distribution
>> including karaf standard distribution and the end user built application
>> 2/ be able to easily include test with pax-exam
>> 3/ provide a ready to run artifact
>> 4/ provide a way to specify profiles or features to include in the
>> distribution
>> It's just an idea for now. The purpose is to provide a ready to run Karaf
>> container like users does with spring-boot.
> So it would create the distribution, same as the install-kars / assembly
> goal, then use the karaf:run goal ?
> The only step than the assembly / run / archive goals can't do is the
> tests, but I'm not completely sure to understand this part...
> It looks more like an archetype than a plugin to me ? Or do I miss
> something ?
>> Thoughts ?
>> Regards
>> JB
>> --
>> Jean-Baptiste Onofré
>> jbonofre@apache.org
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com

Jean-Baptiste Onofré
Talend - http://www.talend.com

View raw message