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:59:13 GMT
Do you use the pom packaging ?

Regards
JB

On 01/19/2012 01:44 PM, Michael Täschner wrote:
> Hi JB,
>
> I played around with the plugin configuration and set the "resourcesDir"
> to a path that does not exist (${project.build.directory}/doesNotExist).
> As a result the feature.xml from within /target/classes is now ignored.
> I know it's a hack - I would have rather have the option to omit content
> of target/classes or have the filtered feature.xml located somewhere
> else, but it works for the moment.
>
> Best Regards,
> Michael
>
> 2012/1/19 Jean-Baptiste Onofré <jb@nanthrax.net <mailto:jb@nanthrax.net>>
>
>     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>
>         <mailto: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>
>         <mailto: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>>
>         <mailto:m.taeschner@ <mailto:m.taeschner@>__googlema__il.com
>         <http://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
>         <http://maven.apache.org/POM/4.0.0>>"
>
>           xmlns:xsi="http://www.w3.org/____2001/XMLSchema-instance
>         <http://www.w3.org/__2001/XMLSchema-instance>
>         <http://www.w3.org/2001/__XMLSchema-instance
>         <http://www.w3.org/2001/XMLSchema-instance>>"
>
>           xsi:schemaLocation="http://__m__aven.apache.org/POM/4.0.0
>         <http://maven.apache.org/POM/4.0.0>
>         <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>
>         <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>__>
>         <mailto: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
>         <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>__>
>         <mailto: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>>
>         <mailto: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>>
>
>
>         <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/>>
>
>         <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>>
>         <mailto: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>
>         <mailto:jbonofre@apache.org <mailto:jbonofre@apache.org>>
>
>         http://blog.nanthrax.net
>                 Talend - 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