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]>>:

    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:[email protected]>
            <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>"
              xmlns:xsi="http://www.w3.org/__2001/XMLSchema-instance
            <http://www.w3.org/2001/XMLSchema-instance>"
              xsi:schemaLocation="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>">

            <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>">
                <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>>

                                    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/>>

                                    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

Reply via email to