[
https://issues.apache.org/jira/browse/KARAF-526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13008531#comment-13008531
]
David Jencks commented on KARAF-526:
------------------------------------
Trying to figure out how to encode uris yourself is never going to work as well
as what's in the jdk. If you use the right URI constructor the URI will do the
encoding for you, with all the necessary escaped characters, correctly.
Although the URI javadoc doesn't really explain what to do, you can find the
right constructor by looking at the Harmony URI implementation. If no one beats
me to it I'll try to find some time to investigate.
> 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
> Assignee: Jean-Baptiste Onofré
> Original Estimate: 1m
> Remaining Estimate: 1m
>
> 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