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 <[email protected]> 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 <[email protected]>:

Probably not .. I just did not yet change it :-)
Will fix it.

Christian

2015-12-16 22:03 GMT+01:00 Tim Jones <[email protected]>:

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é
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to