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é <[email protected]>
> 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
>> <[email protected]
>> <mailto:m.taeschner@**googlemail.com<[email protected]>
>> >>:
>>
>>
>> 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é <[email protected]
>> <mailto:[email protected]>>
>>
>>
>> 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
>> <[email protected]
>> <mailto:m.taeschner@**googlemail.com<[email protected]>
>> >
>> <mailto:m.taeschner@__googlema**il.com <http://googlemail.com>
>>
>> <mailto:m.taeschner@**googlemail.com<[email protected]>
>> >>>:
>>
>>
>> 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 <[email protected]
>> <mailto:[email protected]**>
>> <mailto:[email protected]
>> <mailto:[email protected]**>__>>
>>
>>
>>
>> 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 <[email protected]
>> <mailto:[email protected]**>
>> <mailto:[email protected]
>> <mailto:[email protected]**>__>>
>>
>>
>>
>> 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é
>> <[email protected] <mailto:[email protected]>
>> <mailto:[email protected] <mailto:[email protected]>>>
>>
>>
>>
>> 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é
>> [email protected] <mailto:[email protected]>
>> <mailto:[email protected]
>>
>> <mailto:[email protected]>>
>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>> Talend - http://www.talend.com
>> <http://www.talend.com/>
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> Jean-Baptiste Onofré
>> [email protected] <mailto:[email protected]>
>>
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com
>>
>>
>>
>>
> --
> Jean-Baptiste Onofré
> [email protected]
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>