karaf-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Baptiste Onofré ...@nanthrax.net>
Subject Re: Duplicate feature repository entry using archive-kar to build deployable applications
Date Thu, 19 Jan 2012 12:39:26 GMT
Hi Michael,

sorry I didn't see your latest message.

Let me try a test case on my box.

Regards
JB

On 01/19/2012 01:12 PM, Michael Täschner wrote:
> Hi JB,
>
> have you read my previous response? Using the "create-kar" of
> feature-maven-plugin of karaf 2.2.x as you described above, adds the
> feature.xml twice to the resulting kar file. As a result two feature
> repositories are registered in karaf.
>
> Right now karaf-maven-plugin 3.0.0-SNAPSHOT seems to be broken so I
> tried again with the feature-maven-plugin, but the problem persists.
>
> Do you have an idea how to prevent this duplication ?
>
> Thanks and Regards,
> Michael
>
> Am 13. Januar 2012 11:18 schrieb Michael Täschner
> <m.taeschner@googlemail.com <mailto:m.taeschner@googlemail.com>>:
>
>     Hi JB,
>
>     yes I also got the create-kar goal of feature-maven-plugin of karaf
>     2.2.x working as you describe above. As a result though the
>     feature.xml is added twice to the resulting kar file, once in root
>     folder (because of being available in target/classes) and secondly
>     within the /repository path because it is defined as feature
>     description within the feature.xml. As a result on deployment the
>     feature url/repository is added twice to the karaf container which
>     was my original question.
>
>     Thanks and Regards,
>     Michael
>
>
>     2012/1/12 Jean-Baptiste Onofré <jb@nanthrax.net
>     <mailto:jb@nanthrax.net>>
>
>         Hi Michael,
>
>         Using features-maven-plugin 2.2.5, you have to do something like
>
>         1. The define a filtered-resources folder in the resources
>         containing the features.xml file:
>
>         <build>
>         <resources>
>         <resource>
>         <directory>src/main/filtered-__resources</directory>
>         <filtered>true</filtered>
>         </resource>
>         </resources>
>         [...]
>
>         2. As the packaging is pom (<packaging>pom</packaging>), we need
>         to execute the dependency plugin "explicitly":
>
>         <plugins>
>         <plugin>
>         <groupId>org.apache.maven.__plugins</groupId>
>         <artifactId>maven-resources-__plugin</artifactId>
>         <executions>
>         <execution>
>         <id>filter</id>
>         <phase>generate-resources</__phase>
>         <goals>
>         <goal>resources</goal>
>         </goals>
>         </execution>
>         </executions>
>         </plugin>
>
>         3. Now you can define the featuresFile in the create-kar goal on
>         the process-resources phase:
>
>         <plugin>
>         <groupId>org.apache.karaf.__tooling</groupId>
>         <artifactId>features-maven-__plugin</artifactId>
>         <version>2.2.5</version>
>         <executions>
>         <execution>
>         <id>create-kar</id>
>         <phase>process-resources</__phase>
>         <goals>
>         <goal>create-kar</goal>
>         </goals>
>         <configuration>
>
>         <featuresFile>${basedir}/__target/classes/features.xml</__featuresFile>
>         </configuration>
>         </execution>
>         </executions>
>         </plugin>
>
>         Regards
>         JB
>
>
>         On 01/12/2012 02:12 PM, Michael Täschner wrote:
>
>             Hi again,
>
>             I found more details for the karaf-maven-plugin in the doc
>             and changed
>             the packaging to "kar". The feature.xml is now read from the
>             src/main/feature folder and contained only once in the
>             output kar.
>             Unfortunately now a huge number of bundles are included
>             which are
>             inherited from parent projects where I only wanted the
>             bundles defined
>             in the input feature.xml. How can I disable the dependencies
>             from being
>             included in the feature.xml ? I tried with
>             "__includeTransitiveDependencies" = false but that does not
>             help for
>             ignoring inherited dependencies.
>
>             Thanks and Regards,
>             Michael
>
>             Am 12. Januar 2012 11:44 schrieb Michael Täschner
>             <m.taeschner@googlemail.com
>             <mailto:m.taeschner@googlemail.com>
>             <mailto:m.taeschner@__googlemail.com
>             <mailto:m.taeschner@googlemail.com>>>:
>
>
>                 Hi David,
>
>                 sorry but I am still confused. I had a look at the 3.0.0
>                 users-guide/kar and it says to put the feature.xml into
>                 src/main/resources:
>
>             <?xml version="1.0"  encoding="UTF-8"?>
>             <project xmlns="http://maven.apache.__org/POM/4.0.0
>             <http://maven.apache.org/POM/4.0.0>"
>               xmlns:xsi="http://www.w3.org/__2001/XMLSchema-instance
>             <http://www.w3.org/2001/XMLSchema-instance>"
>               xsi:schemaLocation="http://__maven.apache.org/POM/4.0.0
>             <http://maven.apache.org/POM/4.0.0>
>             http://maven.apache.org/xsd/__maven-4.0.0.xsd
>             <http://maven.apache.org/xsd/maven-4.0.0.xsd>">
>
>             <modelVersion>4.0.0</__modelVersion>
>
>             <groupId>my.groupId</groupId>
>             <artifactId>my-kar</__artifactId>
>             <version>1.0</version>
>             <packaging>pom</packaging>
>
>             <build>
>             <plugins>
>             <plugin>
>             <groupId>org.apache.karaf.__tooling</groupId>
>             <artifactId>karaf-maven-__plugin</artifactId>
>             <version>3.0.0-SNAPSHOT</__version>
>             <executions>
>             <execution>
>             <id>features-create-kar</id>
>             <goals>
>             <goal>features-create-kar</__goal>
>             </goals>
>             <configuration>
>             <featuresFile>src/main/__resources/features.xml</__featuresFile>
>             </configuration>
>             </execution>
>             </executions>
>             </plugin>
>             </plugins>
>             </build>
>
>             </project>
>
>                 Can you give me an example with src/main/feature or how
>             to use the
>                 plugin with dependencies as features ?
>
>                 Thanks and Regards,
>                 Michael
>
>
>                 2012/1/12 David Jencks <david_jencks@yahoo.com
>             <mailto:david_jencks@yahoo.com>
>             <mailto:david_jencks@yahoo.com
>             <mailto:david_jencks@yahoo.com>__>>
>
>
>                     Hi Michael,
>
>                     I'm still slightly confused because 3.0.0 does not
>             have a
>                     feature-maven-plugin, it has a karaf-maven-plugin.
>
>                     Using the 3.0.0 karaf-maven-plugin, put your source
>             feature.xml
>                     in src/main/feature/feature.xml, NOT
>                     src/main/resources/feature.__xml.  It will get
>             filtered before the
>                     feature generation from maven dependencies takes place.
>
>                     Use the kar packaging as explained in the 3.0.0 manual.
>
>                     Unless you need different start-levels for different
>             bundles, or
>                     something like config information in the feature
>             descriptor, you
>                     can have the plugin generate the entire feature.xml
>             from maven
>                     dependencies.
>
>                     hope this helps
>                     david jencks
>
>
>                     On Jan 12, 2012, at 12:35 AM, Michael Täschner wrote:
>
>                         Hi again,
>
>                         sorry for any confusion, I hope to clarify my
>                 goals and
>                         approach. My goal is to generate kar archive for my
>                         multimodule project to deploy them at runtime as
>                         self-contained features. For this I set up a
>                 module for
>                         generating the kar from a filtered feature file
>                 to manage the
>                         version information of the project.
>
>                         I started using "archive-kar" goal of
>                 feature-maven-plugin of
>                         3.0.0.SNAPSHOT with the feature.xml residing in
>                         src/main/resources. As the feature.xml has to be
>                 filtered
>                         first, I refer to the filtered file as input for
>                 the plugin:
>                 <featuresFile>${project.build.__outputDirectory}/features.xml<__/featuresFile>
>
>                         JB recommended using "create-kar" goal of
>                 released karaf
>                         feature-maven-plugin (tried with 2.2.5) and the
>                 feature.xml in
>                         the same folder.
>
>                         The result is the same, that the final kar
>                 archive contains 2
>                         feature.xml files causing karaf to register 2
>                 feature
>                         repositories, one for the file copied in from
>                 /target/classes
>                         and the other one from
>                 /repository/<groupid>/<__artifactId> ...
>
>                         My question was then if one of them could be
>                 removed from the
>                         kar file to prevent duplicate feature repository
>                 entries.
>
>                         Feature file (example):
>                 <?xml version="1.0" encoding="UTF-8"?>
>                 <features name="${project.artifactId}-${__project.version}"
>
>                   xmlns="http://karaf.apache.__org/xmlns/features/v1.0.0
>                 <http://karaf.apache.org/xmlns/features/v1.0.0>">
>                 <feature name='${project.artifactId}'
>                         version='${project.version}' >
>                 <bundle>mvn:${project.groupId}__/common/${project.version}</__bundle>
>                 <bundle>mvn:${project.groupId}__/businessLogic/${project.__version}</bundle>
>                 <bundle>mvn:${project.groupId}__/webservice/${project.version}__</bundle>
>                 </feature>
>                 </features>
>
>                         Thanks and Regards,
>                         Michael
>
>
>                         2012/1/11 David Jencks <david_jencks@yahoo.com
>                 <mailto:david_jencks@yahoo.com>
>                 <mailto:david_jencks@yahoo.com
>                 <mailto:david_jencks@yahoo.com>__>>
>
>
>                             I can't tell what you are doing since your
>                 information is
>                             inconsistent.
>
>                             If you use the trunk (3.0.0-SNAPSHOT)
>                 karaf-maven-plugin
>                             and the kar packaging your "source"
>                 feature.xml file
>                             should be in src/main/feature/feature.xml.
>                   AFAIK this
>                             works fine.
>
>                             I don't know anything about 2.2.x.
>
>                             david jencks
>
>                             On Jan 11, 2012, at 8:21 AM, Michael
>                 Täschner wrote:
>
>                                 Hi JB,
>
>                                 I switched to the create-kar goal of
>                                 maven-features-plugin of karaf 2.2.5,
>                     yet the issues
>                                 remain: If the input feature file uses
>                     properties I can
>                                 only use the already filtered file in
>                     target/classes (I
>                                 uses ${project.artifactId}, version,
>                     etc.) else the
>                                 bundles cannot be resolved. Additionally
>                     the resulting
>                                 kar still contains two feature files:
>                     the one from build
>                                 path (target/classes) and the one within
>                     /repository,
>                                 still resulting in two feature
>                     repositories being added
>                                 in karaf ?
>
>                                 Did I do something wrong ?
>
>                                 Cheers,
>                                 Michael
>
>                                 2012/1/11 Jean-Baptiste Onofré
>                     <jb@nanthrax.net <mailto:jb@nanthrax.net>
>                     <mailto:jb@nanthrax.net <mailto:jb@nanthrax.net>>>
>
>
>                                     Hi Michael,
>
>                                     my comments inline:
>
>
>                                         1: I use the
>                     features-maven-plugin of karaf
>                                         3.0.0-SNAPSHOT to
>                     "archive-kar" my feature from a filtered
>                                         features.xml file in
>                                         src/main/resources/feature. This
>                     works fine apart
>                                         from the fact that the
>                                         resulting kar contains two
>                     features.xml, one in
>                                         /features (as copied
>                                         from /target/classes/feature)
>                     and one in the
>                                         correct place under
>
>                       /repository/<groupId>/<____artifactId>-features.xml.
How
>
>                                         can I tell the
>                                         plugin to ignore the
>                     /target/feature/features.xml
>                                         in the kar while I
>                                         still need it for the build ?
>                     Right now karaf
>                                         shows two added feature
>                                         repositories for the same
>                     bundles and I have to
>                                         remove one manually.
>
>
>                                     The create-kar goal is now available
>                     with
>                                     features-maven-plugin 2.2.5.
>
>                     http://karaf.apache.org/____manual/latest-2.2.x/users-____guide/kar.html
>                     <http://karaf.apache.org/__manual/latest-2.2.x/users-__guide/kar.html>
>
>                     <http://karaf.apache.org/__manual/latest-2.2.x/users-__guide/kar.html
>                     <http://karaf.apache.org/manual/latest-2.2.x/users-guide/kar.html>>
>
>                                     I blogged about it:
>                     http://blog.nanthrax.net/2011/____12/do-you-know-the-apache-____karaf-maven-plugins/
>                     <http://blog.nanthrax.net/2011/__12/do-you-know-the-apache-__karaf-maven-plugins/>
>
>                     <http://blog.nanthrax.net/__2011/12/do-you-know-the-__apache-karaf-maven-plugins/
>                     <http://blog.nanthrax.net/2011/12/do-you-know-the-apache-karaf-maven-plugins/>>
>
>                                     The create-kar goal take the
>                     featuresFile, so it
>                                     should include only this one, and
>                     you shouldn't use a
>                                     resource for that.
>
>
>
>                                         2. Undeploy of kar from the
>                     karaf /deploy folder
>                                         has currently no
>                                         effect, neither the feature
>                     repo, nor the
>                                         features/bundles themselves
>                                         are undeployed ? Additionally I
>                     wonder what would
>                                         happen if I copy a
>                                         newer kar of my features to the
>                     /deploy folder ?!
>
>
>                                     It's an expected behavior. Removing
>                     a kar file
>                                     doesn't remove the features
>                     installed (and the
>                                     bundles/config associated).
>                                     On Karaf 2.2.x, the kar is
>                     uncompress in the
>                                     local-repo folder, adding a .timestamp.
>                                     If you copy a new KAR, the
>                     KarDeployer will check if
>                                     the kar is newer than the previous
>                     .timestamp and so
>                                     it will try to update the
>                     features/bundles. Else,
>                                     nothing will be performed.
>
>                                     Regards
>                                     JB
>
>
>
>                                         I am grateful for any answer and
>                     look forward to
>                                         hearing from you.
>
>                                         Kind Regards,
>                                         Michael
>
>
>                                     --
>                                     Jean-Baptiste Onofré
>                     jbonofre@apache.org <mailto:jbonofre@apache.org>
>                     <mailto:jbonofre@apache.org
>                     <mailto:jbonofre@apache.org>>
>                     http://blog.nanthrax.net <http://blog.nanthrax.net/>
>                                     Talend - http://www.talend.com
>                     <http://www.talend.com/>
>
>
>
>
>
>
>
>
>         --
>         Jean-Baptiste Onofré
>         jbonofre@apache.org <mailto:jbonofre@apache.org>
>         http://blog.nanthrax.net
>         Talend - http://www.talend.com
>
>
>

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

Mime
View raw message