karaf-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Täschner <m.taesch...@googlemail.com>
Subject Re: Duplicate feature repository entry using archive-kar to build deployable applications
Date Thu, 19 Jan 2012 12:44:46 GMT
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>

> 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<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<m.taeschner@googlemail.com>
>> >
>>            <mailto:m.taeschner@__googlema**il.com <http://googlemail.com>
>>
>>            <mailto:m.taeschner@**googlemail.com<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**>__>>
>>
>>
>>
>>                    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**>__>>
>>
>>
>>
>>                            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>
>> >
>>
>>
>>                    <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>>
>>                    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