karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Baptiste Onofré ...@nanthrax.net>
Subject Re: [karaf boot] Added a DS sample with Servlet and JPA and slightly different setup
Date Thu, 17 Dec 2015 09:51:11 GMT
Hi Serge,

It's what I meant by "intrusive": sometime we have to use a company wide 
parent pom, no choice. So we can't force the usage of a karaf-boot 
parent IMHO.

That's why, after the earlier discussions on the mailing list, I did:
- a set of karaf-boot-starter, providing dependencies depending what you 
need (rest, jpa, shell, etc). They act as BoM and users just have to 
define in the dependencies set (see the karaf-boot-samples).
- as a BoM doesn't bring plugin (only dependencies), and to simplify the 
build/bootstrapping at maximum, I created the karaf-boot-maven-plugin. 
This plugin is responsible of scanning the starters, scanning the 
sources, and depending of those, build and possibly bootstrap the 
project by wrapping other plugins.

So, we are really in a kind of black box, where processes are hidden: 
and it's one of karaf-boot main purpose. However, I got Christian's 
point: he's more in the way to not hide as he expects later people won't 
use karaf-boot to a more advanced/expert way. So, at that time, people 
can "duplicate" what we have in a parent-pom.

That's why maybe we can provide both:
- I honestly think that "hide way" will match in 80% of the cases, where 
people wants to focus on business code and don't care about the 
plumbing. It's the feedback that I got discussing with different people 
like Serge, and others (from different background, business, company).
- However, at least by documentation or parent pom, we have to provide a 
way to karaf-boot users to use a very advanced/expert way. I like 
Christian's idea to use an extender, it makes sense in some use case. 
The profile or feature generation by annotation or starter scanning is 
also interesting IMHO.

My $0.02 ;)

Regards
JB

On 12/17/2015 10:22 AM, Serge Huber wrote:
> Hi guys,
>
> Sorry for jumping in like this but I’m also very interested in the Karaf boot project,
although I unfortunately am so busy with other things I can’t contribute much code to it
for the moment.
>
>
>> On 17 déc. 2015, at 09:11, Christian Schneider <chris@die-schneider.net> wrote:
>>
>>
>> BOM and pom unfortunately both do not provide any way to add plugins to the user
code.
>> This is what I use the parent for. You are right that it does not provide much flexibility
but I think it is better than
>> a monolithic karaf boot plugin that calls all other necessary plugins. One reason
is that a parent is more transparent.
>> So the user can look into the parent and easily understand what it does. A parent
is also a nice template
>> for the more advanced user to create his own parent.
>
> The biggest issue I see with a parent POM is that in our experience with integrators,
a lot of them that already use Maven have an “imposed” company-wide parent POM, and therefore
could not imagine starting a project with anything else than their own parent POM.
>
> In the “boot” world, a lot of projects are now even using shell scripts that will
install all the requirements. One of the best ones I’ve seen is the Homebrew project for
Mac OS X (http://brew.sh) that makes it incredibly simple to get started. Maybe we could even
install Maven using a shell script ? Or maybe I’m pushing this idea a bit too far and assuming
Maven is installed is an acceptable first step.
>
> One thing that would be really cool also would be a way to “transform” existing project
to be Karaf boot compatible. Let’s imagine I have a legacy WAR project. Using a plugin or
a shell script I could quickly transform it to be packaged as a Karaf custom distribution,
making it very easy to provide a runnable standalone application.
>
> In the same way we could also look at packaging a JRE so that people wouldn’t even
need anything else to run it. Of course this would require having platform specific distributions,
but that’s not a huge problem to overcome (apart from manpower to achieve this of course).
>
> I dream of a world where people can “switch over” not only “get started” with
Karaf so that we can drive adoption as easily as possible.
>
> cheers,
>    Serge…
>
>>
>> On 17.12.2015 01:03, Achim Nierbeck wrote:
>>> Hi,
>>>
>>> once more, I still think and I think I convinced JB on this point, Parent
>>> POMs are a bad way to start with just to create your own application, this
>>> is where BOMs (Bill Of Material) plays in much more nicely. Especially if
>>> you want to combine different aspects. Like DS plus Web for example, now
>>> you would need two Parents, which isn't possible.
>>>
>>> Now regarding Provisioning and features. I wouldn't go with features, cause
>>> the tend to be
>>> bloated in comparison to the small footprint we want to have with
>>> karaf-boot.
>>>
>>> That's why I proposed long time ago to use profiles.
>>> My first steps no that can be found at the project in JBs GitHub account.
>>> It's the profiles branch. [1]
>>> In this we'll have the profiles attached to the BOMs and therefore it could
>>> be extracted through a specialized Mojo (already worked on that) to merge
>>> all those profiles into one to create a custom Karaf on the fly.
>>>
>>> regards, Achim
>>>
>>> [1] - https://github.com/jbonofre/karaf-boot/tree/profiles
>>>
>>>
>>>
>>> 2015-12-16 22:33 GMT+01:00 Christian Schneider <chris@die-schneider.net>:
>>>
>>>> Probably not .. I just did not yet change it :-)
>>>> Will fix it.
>>>>
>>>> Christian
>>>>
>>>> 2015-12-16 22:03 GMT+01:00 Tim Jones <tim@mccarthy.co.nz>:
>>>>
>>>>> Hi Christian, looks good, one minor, is the package name supposed to
be
>>>>> org.apache.aries.jpa.example.tasklist.*blueprint*.impl?Tim
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>>
>>>> http://karaf.922171.n3.nabble.com/karaf-boot-Added-a-DS-sample-with-Servlet-and-JPA-and-slightly-different-setup-tp4044335p4044358.html
>>>>> Sent from the Karaf - Dev mailing list archive at Nabble.com.
>>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> Christian Schneider
>>>> http://www.liquid-reality.de
>>>> <
>>>> https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.liquid-reality.de
>>>> Open Source Architect
>>>> http://www.talend.com
>>>> <
>>>> https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.talend.com
>>>
>>>
>>
>>
>> --
>> Christian Schneider
>> http://www.liquid-reality.de <http://www.liquid-reality.de/>
>>
>> Open Source Architect
>> http://www.talend.com <http://www.talend.com/>
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Mime
View raw message