You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by du...@apache.org on 2020/12/15 15:09:25 UTC
[brooklyn-server] branch master updated: use our routines for urls
in PropertiesFileExternalConfigSupplier
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 <al...@cloudsoftcorp.com>
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);