add-features-to-repo: descriptor with file contains spaces on unix
------------------------------------------------------------------

                 Key: KARAF-526
                 URL: https://issues.apache.org/jira/browse/KARAF-526
             Project: Karaf
          Issue Type: Bug
          Components: tooling
    Affects Versions: 2.1.4
         Environment: unix
            Reporter: Alexey Markevich


Configuration:
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>features-maven-plugin</artifactId>
 <executions>
  <execution>
   <goals>
    <goal>add-features-to-repo</goal>
   </goals>
   <configuration>
    <descriptors>
     
<descriptor>file:${basedir}/target/classes/activemq-features.xml</descriptor>

${basedir} contains spaces at target PC. Result:
Caused by: java.lang.IllegalArgumentException
        at java.net.URI.create(URI.java:842)
        at 
org.apache.karaf.tooling.features.AddFeaturesToRepoMojo.execute(AddFeaturesToRepoMojo.java:130)

Looking into sources I found
org.apache.karaf.tooling.features.MojoSupport.translateFromMaven()
There is a check for windows and replacement spaces with %20.
Simple fix:

        } else if (uri.startsWith("file:")) {
            if (System.getProperty("os.name").startsWith("Windows")) {
                    String baseDir = uri.substring(5).replace('\\', 
'/').replaceAll(" ", "%20");
                    String result = baseDir;
                    if (baseDir.indexOf(":") > 0) {
                            result = "file:///" + baseDir;
                    }
                    return result;
            } else {
                return uri.replaceAll(" ", "%20");
            }
        }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to