Hi, sure, I understand. Fabian
On Tue, Apr 28, 2015 at 10:22 AM, Jean-Baptiste Onofré <[email protected]> wrote: > Hi Fabian, > > I fully agree. > > My point is more to follow the docker discussion that we have. Lot of > people see Karaf as a complex and "large" container, and they prefer usage > of spring-boot for instance. I want to show that Karaf is now a very > modern, flexible, lightweight and polymorphic container. So, as I don't > think it's a lot of effort, I would like to provide the tooling (code, > bootstrapper, etc) to provide an alternative to spring-boot based on Karaf. > > My €0.02 ;) > > Regards > JB > > > On 04/28/2015 09:06 AM, Fabian Lange wrote: > >> Hi JB, >> >> correct. But I don't consider that to be a real problem. I have to deal >> with about 50 osgi bundles at the moment. And because the standard >> assembly >> is not in the layout I want I would anyway need to have one to change the >> layout and customize the contents (properties etc). >> >> So my opinion is that while your proposal is nice to have, its not really >> worth much effort, because anybody who wants to build a dist needs >> actually >> much more control, rather than more helper magic. >> >> Fabian >> >> On Tue, Apr 28, 2015 at 7:28 AM, Jean-Baptiste Onofré <[email protected]> >> wrote: >> >> Hi Fabian, >>> >>> I fully agree with you that creating a custom distro is easy but, correct >>> me if I'm wrong, right now, you have: >>> - modules with your application code >>> - a module dedicated for your feature >>> - a module dedicated for your custom distribution assembly >>> >>> You provision the distribution created by the assembly. >>> >>> What I'm proposing is just a simple way to have a ready to go code and >>> building, in order to avoid the overhead of the "custom distribution" >>> plumbing module. >>> >>> Regards >>> JB >>> >>> >>> On 04/27/2015 09:57 PM, Fabian Lange wrote: >>> >>> 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 >>>>> >>>>> >>>>> >>>> -- >>> 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 >
