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é <[email protected] <mailto:[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:[email protected]>
        <mailto:m.taeschner@__googlemail.com
        <mailto:[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]>
        <mailto:[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:[email protected]>
        <mailto:m.taeschner@__googlemail.com
        <mailto:[email protected]>>
        <mailto:m.taeschner@ <mailto:m.taeschner@>__googlema__il.com
        <http://googlemail.com>

        <mailto:m.taeschner@__googlemail.com
        <mailto:[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]>__>
        <mailto:[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]>__>
        <mailto:[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]>>
        <mailto:[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]>>
        <mailto:[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]>
        <mailto:[email protected] <mailto:[email protected]>>

        http://blog.nanthrax.net
                Talend - 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

Reply via email to