Hi, quick feedback from here. I used the current 4.0 way of building my custom dist and it was actually easy enough. What you propose seems to hide a few karaf details, which I personally think should be handled explicitly.
In my case for example, I am actually happy with managing the required bootFeatures myself. Fabian On Mon, Apr 27, 2015 at 9:53 PM, Jean-Baptiste Onofré <[email protected]> wrote: > 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: > > <parent> > <groupId>org.apache.karaf.boot</groupId> > <artifactId>karaf-boot-starter-parent</artifactId> > <version>4.0.0-SNAPSHOT</version> > </parent> > > The parent contains all plugins and dependencies set, especially the Karaf > standard distribution. > > Later in your pom.xml, you have: > > <build> > <plugins> > <plugin> > <groupId>org.apache.karaf.boot</groupId> > <artifactId>karaf-boot-maven-plugin</artifactId> > </plugin> > </plugins> > </build> > > In your project, you just need a class describing your Karaf bootstrapping: > > @KarafBootApplication > @WithShell > @profiles({"a","b","c"}) > @featuresBoot({"f1","f2"}) > public class MyContainer implements KarafBootstrapper { > > @Override > public void run() { > // setup your Karaf bootstrapping > } > > } > > The user can add "boot features" to customize the container: > > <dependency> > <groupId>org.apache.karaf.boot</groupId> > <artifactId>org.apache.karaf.boot.webcontainer</artifactId> > </dependency> > > 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 > applications > > 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 > container. > 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. > > Regards > JB > > On 04/27/2015 07:57 PM, Guillaume Nodet wrote: > >> 2015-04-27 16:03 GMT+02:00 Jean-Baptiste Onofré <[email protected]>: >> >> 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é >>> [email protected] >>> http://blog.nanthrax.net >>> Talend - http://www.talend.com >>> >>> >> > -- > Jean-Baptiste Onofré > [email protected] > http://blog.nanthrax.net > Talend - http://www.talend.com >
