Karaf
  1. Karaf
  2. KARAF-1160

Unable to configure descriptors of features-maven-plugin with range of versions.

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.1.4
    • Fix Version/s: None
    • Component/s: karaf-tooling
    • Labels:
      None

      Description

      Unable to configure descriptors of features-maven-plugin with range of versions.

      <plugin>
          <groupId>org.apache.karaf.tooling</groupId>
          <artifactId>features-maven-plugin</artifactId>
          <executions>
              <execution>
                  <id>prepare-package</id>
                  <phase>prepare-package</phase>
                  <goals>
                      <goal>add-features-to-repo</goal>
                  </goals>
                  <configuration>
                      <descriptors>
                          <descriptor>mvn:foo.bar.features/baz/[1,2)/xml/features</descriptor>
                          <descriptor>mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features</descriptor>
                      </descriptors>
                      <features>
                          <feature>${project.groupId}</feature>
                      </features>
                      <addTransitiveFeatures>true</addTransitiveFeatures>
                      <includeMvnBasedDescriptors>true</includeMvnBasedDescriptors>
                      <failOnArtifactResolutionError>false</failOnArtifactResolutionError>
                      <skipNonMavenProtocols>true</skipNonMavenProtocols>
                      <repository>${features.repo.directory}</repository>
                  </configuration>
              </execution>
          </executions>
      </plugin>
      

      With such a configuration I'm getting the following error:

      [ERROR] Failed to execute goal org.apache.karaf.tooling:features-maven-plugin:2.1.4:add-features-to-repo (make-repo) on project foo.bar: 
      Error populating repository:
      IllegalArgumentException: Illegal character in path at index 116: file:///C:/Users/me/.m2/repository/foo/bar/features/baz/[1,2)/baz-[1,2)-features.xml -> [Help 1]
      

        Activity

        Hide
        Jean-Baptiste Onofré added a comment -

        As the descriptor should a specific target version.

        With your example, I guess that you expect that the features-maven-plugin take the latest 1.x version for the baz artifact ?

        Show
        Jean-Baptiste Onofré added a comment - As the descriptor should a specific target version. With your example, I guess that you expect that the features-maven-plugin take the latest 1.x version for the baz artifact ?
        Hide
        Sergey Zhemzhitsky added a comment -

        Hi JB,

        I'm expecting features-maven-plugin to resolve feature descriptors in the same way as for ordinary maven dependencies.

        In that case it should be possible to use the same property placeholder with version range all over the maven project (maven dependencies, features-maven-plugin descriptors, feature repositories, feature dependencies, etc.), e.g.

        <properties>
            <foo.bar.version>[1,2)</foo.bar.version>
        </properties>
        
        ...
        
        <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>features-maven-plugin</artifactId>
            ...
            <configuration>
                <descriptors>
                    <descriptor>mvn:foo.bar.features/baz/${foo.bar.version}/xml/features</descriptor>
        
        ...
        
        <feature name="any-feature" version="${feature.version}">
            <feature version="${foo.bar.version}">foo.bar</feature>
        ...
        
        
        Show
        Sergey Zhemzhitsky added a comment - Hi JB, I'm expecting features-maven-plugin to resolve feature descriptors in the same way as for ordinary maven dependencies . In that case it should be possible to use the same property placeholder with version range all over the maven project (maven dependencies, features-maven-plugin descriptors, feature repositories, feature dependencies, etc.), e.g. <properties> <foo.bar.version> [1,2) </foo.bar.version> </properties> ... <plugin> <groupId> org.apache.karaf.tooling </groupId> <artifactId> features-maven-plugin </artifactId> ... <configuration> <descriptors> <descriptor> mvn:foo.bar.features/baz/${foo.bar.version}/xml/features </descriptor> ... <feature name= "any-feature" version= "${feature.version}" > <feature version= "${foo.bar.version}" > foo.bar </feature> ...
        Hide
        Jean-Baptiste Onofré added a comment -

        PAX URL is able to handle version range.

        I see that the version that you report is 2.1.4. Is it really the case or do you use 2.2.4 ?

        I'm going to make a test case to reproduce.

        Show
        Jean-Baptiste Onofré added a comment - PAX URL is able to handle version range. I see that the version that you report is 2.1.4. Is it really the case or do you use 2.2.4 ? I'm going to make a test case to reproduce.
        Hide
        Sergey Zhemzhitsky added a comment -

        2.1.4 is the version of the features-maven-plugin I've been using.

        With features-maven-plugin:2.3.5 the behavior is the same.

        Show
        Sergey Zhemzhitsky added a comment - 2.1.4 is the version of the features-maven-plugin I've been using. With features-maven-plugin:2.3.5 the behavior is the same.

          People

          • Assignee:
            Unassigned
            Reporter:
            Sergey Zhemzhitsky
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:

              Development