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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2e00c97  use our routines for urls in 
PropertiesFileExternalConfigSupplier
     new a82172b  Merge pull request #1134 from 
ahgittin/props-external-config-tidy
2e00c97 is described below

commit 2e00c9756d46c2a71399658c35becbd7795a92ea
Author: Alex Heneveld <[email protected]>
AuthorDate: Mon Dec 14 13:36:45 2020 +0000

    use our routines for urls in PropertiesFileExternalConfigSupplier
    
    for consistency ... java by default seems to fail on "file:///path/to/x" :(
---
 .../external/PropertiesFileExternalConfigSupplier.java     |  5 +++--
 .../core/config/external/UrlsExternalConfigSupplier.java   |  2 +-
 .../external/PropertiesFileExternalConfigSupplierTest.java | 14 ++++++++++++--
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git 
a/core/src/main/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplier.java
 
b/core/src/main/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplier.java
index 233fa80..e9db17e 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplier.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplier.java
@@ -25,6 +25,7 @@ import java.util.Map;
 import java.util.Properties;
 
 import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.util.core.ResourceUtils;
 import org.apache.brooklyn.util.stream.Streams;
 
 
@@ -33,7 +34,7 @@ import org.apache.brooklyn.util.stream.Streams;
  * under the <code>propertiesUrl</code> key:
  *
  * <pre>
- * brooklyn.external.foo = 
brooklyn.management.config.external.PropertiesFileExternalConfigSupplier
+ * brooklyn.external.foo = 
org.apache.brooklyn.core.config.external.PropertiesFileExternalConfigSupplier
  * brooklyn.external.foo.propertiesUrl = 
http://brooklyn.example.com/config/foo.properties
  * </pre>
  */
@@ -56,7 +57,7 @@ public class PropertiesFileExternalConfigSupplier extends 
AbstractExternalConfig
     private static Properties loadProperties(String propertiesUrl) throws 
IOException {
         InputStream is = null;
         try {
-            is = new URL(propertiesUrl).openStream();
+            is = ResourceUtils.create().getResourceFromUrl(propertiesUrl);
             Properties p = new Properties();
             p.load(is);
             return p;
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/config/external/UrlsExternalConfigSupplier.java
 
b/core/src/main/java/org/apache/brooklyn/core/config/external/UrlsExternalConfigSupplier.java
index 0fe1776..1dd4032 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/config/external/UrlsExternalConfigSupplier.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/config/external/UrlsExternalConfigSupplier.java
@@ -35,7 +35,7 @@ import com.google.common.collect.Maps;
  * 
  * Example configuration could be:
  * <pre>
- * brooklyn.external.foo = 
brooklyn.management.config.external.FilesExternalConfigSupplier
+ * brooklyn.external.foo = 
org.apache.brooklyn.core.config.external.UrlsExternalConfigSupplier
  * brooklyn.external.foo.authorized_keys = classpath://authorized_keys
  * brooklyn.external.foo.privateSshKey = /path/to/privateKey
  * brooklyn.external.foo.initScript = 
https://brooklyn.example.com/config/initScript.sh
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplierTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplierTest.java
index 329ddcc..e5bfe30 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplierTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplierTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.brooklyn.core.config.external;
 
+import java.util.function.Function;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNull;
 
@@ -63,14 +64,23 @@ public class PropertiesFileExternalConfigSupplierTest {
     }
 
     @Test
-    public void testFromProperties() throws Exception {
+    public void testFromPropertiesJavaFileUrl() throws Exception {
+        doTestFromProperties(f -> f.toURI().toString());
+    }
+
+    @Test
+    public void testFromPropertiesTwoSlashAndPathUrl() throws Exception {
+        doTestFromProperties(f -> "file://"+f.getAbsolutePath());
+    }
+
+    public void doTestFromProperties(Function<File,String> url) throws 
Exception {
         String contents =
                 "mykey=myval"+"\n"+
                 "mykey2=myval2";
         Files.write(contents, propsFile, Charsets.UTF_8);
         BrooklynProperties props = BrooklynProperties.Factory.newEmpty();
         props.put("brooklyn.external.foo", 
PropertiesFileExternalConfigSupplier.class.getName());
-        props.put("brooklyn.external.foo.propertiesUrl", 
propsFile.toURI().toString());
+        props.put("brooklyn.external.foo.propertiesUrl", url.apply(propsFile));
         
         mgmt = LocalManagementContextForTests.newInstance(props);
         

Reply via email to