Well, but does it really matter if maven fails with: "artifact not found" or if the karaf-maven-plugin fails with "artifact not found"?
Kind regards, Andreas On Wed, Mar 2, 2011 at 11:25 AM, Guillaume Nodet <[email protected]> wrote: > On Wed, Mar 2, 2011 at 09:33, Andreas Pieber <[email protected]> wrote: >> On Wed, Mar 2, 2011 at 9:27 AM, David Jencks <[email protected]> wrote: >>> 1. Supporters of the "don't need maven dependencies" idea almost had me >>> convinced for a while until I realized this would really be abusing maven. >>> It would be OK for an ant task where there's no expectation of any >>> structure, but one of the basic principles that makes maven work is that >>> the pom describes all the outside dependencies. Generally violating this >>> principal causes lots of unanticipated problems when you try to reason >>> about the broken pom downstream. >> >> I'm not with you here. You still have to define the versions >> somewhere; I see the features.xml more as an extension than an >> replacement. > > Yes, I agree, having all dependencies in maven ensure that your build > can be reproducible. I had problems with features that use > dependencies not available in any maven repository for example. That > make thing difficult to diagnose and work around. > >> >>> 2. The kar packaging already does a lot of things including extending an >>> existing features.xml (so you can have config properties etc) and including >>> arbitrary resources that get unpacked into the karaf server. I think if >>> there's documentation in a features.xml file it should be in elements so it >>> can be reasoned about and possibly displayed in the console. I'm sure >>> there are more things we can get it to do, and specific examples would >>> really help. >> >> But still, I have no problem if we allow both possibilities, but it >> should always be possible (imho) to create a kar file based on a >> features.xml >> >> Kind regards, >> Andreas >> >>> >>> thanks >>> david jencks >>> >>> On Mar 1, 2011, at 11:52 PM, Adrian Trenaman wrote: >>> >>>> Just to pitch in on this: I really like to write my own feature files for >>>> Karaf. Generally, I want to create one features file that pulls together >>>> artifacts from a whole set of projects, in a way that creates features as >>>> meaningful 'applications' that an ops guy can install/uninstall. While I >>>> appreciate that we could auto-generate the features file from a Maven POM, >>>> I prefer to *design* my features so that they're ergonomic. And, as has >>>> been mentioned earlier on this trail, hand-crafted features allow me to >>>> add config, documentation, etc. Any tooling we can write that helps the >>>> developer do this in an easy, no fuss way (and maybe spots any missing >>>> dependencies) should be preferred over a 'generate-from-Maven' approach, >>>> IMHO. >>>> >>>> Cheers, >>>> Ade >>>> >>>> ----- Original Message ----- >>>> From: Andreas Pieber [mailto:[email protected]] >>>> Sent: Wednesday, March 02, 2011 02:33 AM >>>> To: [email protected] <[email protected]> >>>> Subject: Re: KAR feature not doing what the docs say it should >>>> >>>> Hey David >>>> >>>> On Wed, Mar 2, 2011 at 8:09 AM, David Jencks <[email protected]> >>>> wrote: >>>>> I'm trying to understand why you want to maintain a features.xml by hand >>>>> so that the versions in it will differ from those in your maven project >>>>> rather than generating the features.xml from your maven project so the >>>>> versions will match up. >>>> >>>> I'm not sure why they should? You can easily wire them together by >>>> filter the features.xml and use something like ${xyz.version} in your >>>> features.xml. In addition you do not always want to use the same >>>> artifacts as you reference in your pom. E.g. if you wrap Apache >>>> Wicket, you typically have one package with all deps, but in the src >>>> you really want to reference the single packages to help maven finding >>>> sources and jdoc. >>>> >>>>> I agree with KARAF-459 to the extent that if we keep the archive-kar goal >>>>> it should use more info from the supplied features.xml. I am arguing >>>>> that we should not keep it. Why is it a good idea to encourage people to >>>>> get their dependencies out of sync? >>>> >>>> I don't think that we encourage them to do so, but using the >>>> features.xml it is much easier to add config files, configurations, >>>> required features, other repositories... All of that have to be >>>> configured otherwise anyhow in the maven plugin and I think this will >>>> make it much more complex. >>>> >>>>> If you convince me this is a good idea :-) then I think making the kar >>>>> packaging so it can start with a (possibly partial) features.xml, add >>>>> maven dependencies to it, and put all the resulting dependencies into the >>>>> generated kar would be a good idea. I think this would solve KARAF-459? >>>> >>>> I've tried ;) >>>> >>>> Kind regards, >>>> Andreas >>>> >>>>> >>>>> I don't know what the add-features-to-repo goal does yet so I'm not sure >>>>> if I think it's useful :-) >>>>> >>>>> thanks >>>>> david jencks >>>>> >>>>> On Mar 1, 2011, at 10:34 PM, Jean-Baptiste Onofré wrote: >>>>> >>>>>> I'm not sure to follow you. >>>>>> >>>>>> The kar goal is exactly as the add-features-to-repo goal: you start from >>>>>> a features descriptor (that you wrote by hand) and the goal package the >>>>>> descriptor and the bundles/dependencies into a repo (kar or local). >>>>>> >>>>>> Regards >>>>>> JB >>>>>> >>>>>> On 03/02/2011 07:34 AM, David Jencks wrote: >>>>>>> OK, but you are in a maven environment. You've now disconnected the >>>>>>> versions in the features.xml which you are presumably maintaining by >>>>>>> hand from those in your maven poms. I consider that a non-starter. >>>>>>> >>>>>>> My point is that you want to construct the features.xml from maven >>>>>>> dependencies in the first place. At the same time you can construct >>>>>>> the kar, including (some of) the dependencies. >>>>>>> >>>>>>> happy to be convinced otherwise... >>>>>>> thanks >>>>>>> david jencks >>>>>>> >>>>>>> On Mar 1, 2011, at 10:05 PM, Jean-Baptiste Onofré wrote: >>>>>>> >>>>>>>> The main advantage is that it starts from the features descriptor. So >>>>>>>> you simply define the features what you want to embed in the Kar and >>>>>>>> the plugin is responsible to download and embed all bundle >>>>>>>> dependencies. >>>>>>>> >>>>>>>> For instance, in place of having: >>>>>>>> >>>>>>>> <dependencies> >>>>>>>> <dependency .../> >>>>>>>> <dependency .../> >>>>>>>> <dependency .../> >>>>>>>> <dependency .../> >>>>>>>> <dependency .../> >>>>>>>> <dependency .../> >>>>>>>> <dependency .../> >>>>>>>> <dependency .../> >>>>>>>> <dependency .../> >>>>>>>> <dependency .../> >>>>>>>> </dependendies> >>>>>>>> >>>>>>>> you simple have in the plugin >>>>>>>> <configuration> >>>>>>>> <features>myfeature</features> >>>>>>>> </configuration> >>>>>>>> >>>>>>>> So the POM is light, the version is defined in the features descriptor >>>>>>>> and it manages transitive dependencies to others features. >>>>>>>> >>>>>>>> Regards >>>>>>>> JB >>>>>>>> >>>>>>>> On 03/02/2011 07:00 AM, David Jencks wrote: >>>>>>>>> I might understand what the archive-kar goal does now, from the jira >>>>>>>>> issue. >>>>>>>>> >>>>>>>>> I would like to suggest that we eliminate this goal and just use the >>>>>>>>> kar packaging which generates both the features.xml and the kar from >>>>>>>>> the maven dependencies. >>>>>>>>> >>>>>>>>> When would the archive-kar goal be useful compared to the kar >>>>>>>>> packaging? >>>>>>>>> >>>>>>>>> thanks >>>>>>>>> david jencks >>>>>>>>> >>>>>>>>> On Mar 1, 2011, at 9:47 PM, Jean-Baptiste Onofré wrote: >>>>>>>>> >>>>>>>>>> Hi guys, >>>>>>>>>> >>>>>>>>>> The purpose of the kar goal is to take a features descriptor and >>>>>>>>>> package the features descriptor and the related bundle into a kar >>>>>>>>>> archive (that's it's a goal of the features maven plugin). >>>>>>>>>> The kar deployer create a repo for these bundles. >>>>>>>>>> I raised KARAF-459 about that. At least, the kar goals should take >>>>>>>>>> an argument to define if the bundle are embedded in the kar or not. >>>>>>>>>> But, if the kar doesn't embed the bundle, what's the advantage of >>>>>>>>>> using a kar more than directly drop the features descriptor into the >>>>>>>>>> deploy directory :) >>>>>>>>>> >>>>>>>>>> Regards >>>>>>>>>> JB >>>>>>>>>> >>>>>>>>>> On 03/01/2011 11:40 PM, David Jencks wrote: >>>>>>>>>>> I couldn't quite understand what the docs expected. What I think >>>>>>>>>>> is usable is the (undocumented) kar packaging which ought to look >>>>>>>>>>> something like this: >>>>>>>>>>> >>>>>>>>>>> <project xmlns="http://maven.apache.org/POM/4.0.0" >>>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>>>>>>>> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >>>>>>>>>>> >>>>>>>>>>> http://maven.apache.org/xsd/maven-4.0.0.xsd"> >>>>>>>>>>> >>>>>>>>>>> <modelVersion>4.0.0</modelVersion> >>>>>>>>>>> >>>>>>>>>>> <groupId>hibernate-osgi</groupId> >>>>>>>>>>> <artifactId>hibernate-osgi</artifactId> >>>>>>>>>>> <version>0.0.1-SNAPSHOT</version> >>>>>>>>>>> <packaging>kar</packaging> >>>>>>>>>>> <name>hibernate-osgi</name> >>>>>>>>>>> >>>>>>>>>>> <dependencies> >>>>>>>>>>> <!-- put in the bundles you want in the features.xml and kar as >>>>>>>>>>> dependencies --> >>>>>>>>>>> </dependencies> >>>>>>>>>>> >>>>>>>>>>> <build> >>>>>>>>>>> <plugins> >>>>>>>>>>> <plugin> >>>>>>>>>>> <groupId>org.apache.karaf.tooling</groupId> >>>>>>>>>>> >>>>>>>>>>> <artifactId>features-maven-plugin</artifactId> >>>>>>>>>>> <version>2.99.99-SNAPSHOT</version> >>>>>>>>>>> <extensions>true</extensions> >>>>>>>>>>> </plugin> >>>>>>>>>>> </plugins> >>>>>>>>>>> </build> >>>>>>>>>>> >>>>>>>>>>> </project> >>>>>>>>>>> >>>>>>>>>>> This should generate a features.xml file inside the kar and include >>>>>>>>>>> the bundles you mentioned as entries in the feature.xml and copied >>>>>>>>>>> into the kar. >>>>>>>>>>> >>>>>>>>>>> thanks >>>>>>>>>>> david jencks >>>>>>>>>>> >>>>>>>>>>> On Mar 1, 2011, at 2:15 PM, karafman wrote: >>>>>>>>>>> >>>>>>>>>>>> To test the KAR feature, I compiled the trunk and executed the >>>>>>>>>>>> following >>>>>>>>>>>> pom.xml file: >>>>>>>>>>>> <project xmlns="http://maven.apache.org/POM/4.0.0" >>>>>>>>>>>> >>>>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>>>>>>>>> >>>>>>>>>>>> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >>>>>>>>>>>> >>>>>>>>>>>> http://maven.apache.org/xsd/maven-4.0.0.xsd"> >>>>>>>>>>>> >>>>>>>>>>>> <modelVersion>4.0.0</modelVersion> >>>>>>>>>>>> >>>>>>>>>>>> <groupId>hibernate-osgi</groupId> >>>>>>>>>>>> <artifactId>hibernate-osgi</artifactId> >>>>>>>>>>>> <version>0.0.1-SNAPSHOT</version> >>>>>>>>>>>> <packaging>pom</packaging> >>>>>>>>>>>> <name>hibernate-osgi</name> >>>>>>>>>>>> >>>>>>>>>>>> <build> >>>>>>>>>>>> <plugins> >>>>>>>>>>>> <plugin> >>>>>>>>>>>> <groupId>org.apache.karaf.tooling</groupId> >>>>>>>>>>>> >>>>>>>>>>>> <artifactId>features-maven-plugin</artifactId> >>>>>>>>>>>> <version>2.99.99-SNAPSHOT</version> >>>>>>>>>>>> <executions> >>>>>>>>>>>> <execution> >>>>>>>>>>>> <id>archive-kar</id> >>>>>>>>>>>> <goals> >>>>>>>>>>>> >>>>>>>>>>>> <goal>archive-kar</goal> >>>>>>>>>>>> </goals> >>>>>>>>>>>> <configuration> >>>>>>>>>>>> <featuresFile>src/main/resources/features.xml</featuresFile> >>>>>>>>>>>> </configuration> >>>>>>>>>>>> </execution> >>>>>>>>>>>> </executions> >>>>>>>>>>>> </plugin> >>>>>>>>>>>> </plugins> >>>>>>>>>>>> </build> >>>>>>>>>>>> >>>>>>>>>>>> </project> >>>>>>>>>>>> >>>>>>>>>>>> Using this features.xml file: >>>>>>>>>>>> >>>>>>>>>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>>>>>>>>> <features> >>>>>>>>>>>> <feature name="hibernate" version="3.3.2.GA"> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:javax.xml.stream/com.springsource.javax.xml.stream/1.0.1</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.dom4j/com.springsource.org.dom4j/1.6.1</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.jboss.javassist/com.springsource.javassist/3.9.0.GA</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:javax.persistence/com.springsource.javax.persistence/1.0.0</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.antlr/com.springsource.antlr/2.7.7</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:net.sourceforge.cglib/com.springsource.net.sf.cglib/2.2.0</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.apache.commons/com.springsource.org.apache.commons.collections/3.2.1</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.apache.commons/com.springsource.org.apache.commons.logging/1.1.1</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.objectweb.asm/com.springsource.org.objectweb.asm/1.5.3</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.objectweb.asm/com.springsource.org.objectweb.asm.attrs/1.5.3</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.hibernate/com.springsource.org.hibernate/3.3.2.GA</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.hibernate/com.springsource.org.hibernate.annotations/3.3.1.ga</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.hibernate/com.springsource.org.hibernate.annotations.common/3.3.0.ga</bundle> >>>>>>>>>>>> >>>>>>>>>>>> <bundle>mvn:org.hibernate/com.springsource.org.hibernate.ejb/3.3.2.GA</bundle> >>>>>>>>>>>> </feature> >>>>>>>>>>>> </features> >>>>>>>>>>>> >>>>>>>>>>>> The .kar file created didn't contain any of the bundles, just the >>>>>>>>>>>> features.xml file. The expected behavior is to (according to >>>>>>>>>>>> http://karaf.apache.org/manual/2.2.1-SNAPSHOT/users-guide/kar.html): >>>>>>>>>>>> The kar-archive goal: >>>>>>>>>>>> 1. Reads all features specified in the features descriptor. >>>>>>>>>>>> 2. For each feature, it resolves the bundles defined in the >>>>>>>>>>>> feature. >>>>>>>>>>>> 3. All bundles are packaged into the kar archive. >>>>>>>>>>>> >>>>>>>>>>>> So, it appears the KAR feature is not doing what is stated in the >>>>>>>>>>>> docs. I >>>>>>>>>>>> suggest we either change the documentation, or the archive-kar >>>>>>>>>>>> goal. >>>>>>>>>>>> >>>>>>>>>>>> ----- >>>>>>>>>>>> Karafman >>>>>>>>>>>> Slayer of the JEE >>>>>>>>>>>> Pounder of the Perl Programmer >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> View this message in context: >>>>>>>>>>>> http://karaf.922171.n3.nabble.com/KAR-feature-not-doing-what-the-docs-say-it-should-tp2606973p2606973.html >>>>>>>>>>>> Sent from the Karaf - Dev mailing list archive at Nabble.com. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>> >>>>> >>>>> >>> >>> >> > > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Blog: http://gnodet.blogspot.com/ > ------------------------ > Open Source SOA > http://fusesource.com >
