I think that we will miss important points if we let KAR to generate the feature file for us and not allow the project to provide it. Why ?
1) Bundles to deploy but not starting them There is an attribute for each bundle created in a feature file <bundle start="no"> which allows to deploy the bundle but not starting it. How will it be possible to use this property if the features file is generated on the fly. Idem but for the bundle level <bundle start-level="80"> 2) Features documentation Features file is a xml text file which allow to document artifacts (features, bundles, ...), prepare release and keep track about what is deployed 3) Variable that we would like to configure for configFile ... Just 4cents Regards, Charles On Wed, Mar 2, 2011 at 8:09 AM, Guillaume Nodet <[email protected]> wrote: > I can see the value if you have a legacy feature and you want to > create a kar for it, but it may be better to deprecate such a goal and > use the kar packaging instead which will also generate the feature > descriptor based on maven informations. > Leveraging maven is better as: > * you don't have to do some fancy stuff we tried to do when > generating the features file from the maven dependencies anymore (i.e. > mapping non bundles to bundles) > * you know you have all the dependencies in your local repo > * you can leverage dependendencies information from maven > (transitive, optional, provided, etc...) > * you have a single point of configuration for the dependencies / versions > The only drawback is that you need a maven project for each feature, > but that's a consequence of being able to describe the maven > dependencies properly. > > On Wed, Mar 2, 2011 at 07:34, Jean-Baptiste Onofré <[email protected]> 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 >
