This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 824d4e5b82ffadcf15693a4725f6540b0349114d
Author: Alex Heneveld <[email protected]>
AuthorDate: Mon Dec 19 22:58:45 2022 +0000

    allow spaces in urls, automatically convert to %20
    
    useful if loading initial catalog when installed to a /path/with spaces/
---
 .../java/org/apache/brooklyn/util/core/ResourceUtils.java     | 10 +++++++++-
 .../java/org/apache/brooklyn/util/core/ResourceUtilsTest.java | 11 +++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git 
a/core/src/main/java/org/apache/brooklyn/util/core/ResourceUtils.java 
b/core/src/main/java/org/apache/brooklyn/util/core/ResourceUtils.java
index 0c333b840f..08a9f06ce3 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/ResourceUtils.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/ResourceUtils.java
@@ -62,6 +62,7 @@ import org.apache.brooklyn.util.os.Os;
 import org.apache.brooklyn.util.osgi.OsgiUtils;
 import org.apache.brooklyn.util.stream.InputStreamSource;
 import org.apache.brooklyn.util.stream.Streams;
+import org.apache.brooklyn.util.text.StringEscapes;
 import org.apache.brooklyn.util.text.Strings;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
@@ -347,7 +348,13 @@ public class ResourceUtils {
         try {
             in = url.toURI();
         } catch (URISyntaxException e) {
-            throw Exceptions.propagate(e);
+            String urlT = url.toString();
+            urlT = Strings.replaceAll(urlT, " ", "%20");
+            try {
+                in = new URI(urlT);
+            } catch (URISyntaxException ex) {
+                throw Exceptions.propagate(e);
+            }
         }
         URI out;
 
@@ -382,6 +389,7 @@ public class ResourceUtils {
         try {
             return tidy(new URL(url)).toString();
         } catch (MalformedURLException e) {
+
             throw Exceptions.propagate(e);
         }
     }
diff --git 
a/core/src/test/java/org/apache/brooklyn/util/core/ResourceUtilsTest.java 
b/core/src/test/java/org/apache/brooklyn/util/core/ResourceUtilsTest.java
index c45b5d3bc0..26195ffcf3 100644
--- a/core/src/test/java/org/apache/brooklyn/util/core/ResourceUtilsTest.java
+++ b/core/src/test/java/org/apache/brooklyn/util/core/ResourceUtilsTest.java
@@ -32,11 +32,13 @@ import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Properties;
 
+import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.util.core.ResourceUtils;
 import org.apache.brooklyn.util.net.Urls;
 import org.apache.brooklyn.util.os.Os;
 import org.apache.brooklyn.util.stream.Streams;
 import org.apache.brooklyn.util.text.Identifiers;
+import org.apache.brooklyn.util.text.StringEscapes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.annotations.AfterClass;
@@ -186,4 +188,13 @@ public class ResourceUtilsTest {
         assertFalse(Iterables.isEmpty(manifests));
     }
 
+    @Test
+    public void testTidySloppyUrls() throws Exception {
+        Asserts.assertEquals(ResourceUtils.tidyFileUrl("file:/home/My 
Documents/x.bom"), "file:"+ "/home/My%20Documents/x.bom");
+        File f = File.createTempFile("brooklyn-test", "with space");
+        Files.write("hello".getBytes(), f);
+        Asserts.assertEquals(ResourceUtils.create(this).getResourceAsString( 
ResourceUtils.tidyFileUrl("file:"+f.getAbsolutePath()) ), "hello");
+        f.delete();
+    }
+
 }

Reply via email to