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 13:03:21 GMT
Hi JB,

yes I use "pom" packaging. Only difference may be that I also have
buildhelper-maven-plugin configured with "attach-artifact" of the
feature.xml so it can alternatively be resolved in karaf when adding
feature repository url instead of deploying the kar file.

Regards,
Michael

2012/1/19 Jean-Baptiste Onofré <jb@nanthrax.net>

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