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(); + } + }
