Make Brooklyn management context available to config suppliers.
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/0d401f77 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/0d401f77 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/0d401f77 Branch: refs/heads/master Commit: 0d401f7712bddafcce493323f6ed559ebe1d6b51 Parents: b8eb3c7 Author: Alasdair Hodge <[email protected]> Authored: Thu Jul 16 09:24:28 2015 +0100 Committer: Alasdair Hodge <[email protected]> Committed: Tue Aug 25 11:51:20 2015 +0100 ---------------------------------------------------------------------- .../config/external/AbstractExternalConfigSupplier.java | 10 +++++++++- .../config/external/InPlaceExternalConfigSupplier.java | 6 ++++-- .../external/PropertiesFileExternalConfigSupplier.java | 5 +++-- .../internal/BasicExternalConfigSupplierRegistry.java | 4 ++-- 4 files changed, 18 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/0d401f77/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java index 6aa6967..7f0cec0 100644 --- a/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java +++ b/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java @@ -18,18 +18,26 @@ */ package brooklyn.config.external; +import brooklyn.management.ManagementContext; + /** * Default superclass for all {@link ExternalConfigSupplier} implementations. */ abstract public class AbstractExternalConfigSupplier implements ExternalConfigSupplier { + private final ManagementContext managementContext; private final String name; - protected AbstractExternalConfigSupplier(String name) { + protected AbstractExternalConfigSupplier(ManagementContext managementContext, String name) { + this.managementContext = managementContext; this.name = name; } + public ManagementContext getManagementContext() { + return managementContext; + } + public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/0d401f77/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java index 2279386..697bc89 100644 --- a/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java +++ b/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java @@ -20,6 +20,8 @@ package brooklyn.config.external; import java.util.Map; +import brooklyn.management.ManagementContext; + /** * Instances are populated via sub-keys specified directly in the <tt>brooklyn.properties</tt> file: @@ -37,8 +39,8 @@ public class InPlaceExternalConfigSupplier extends AbstractExternalConfigSupplie private final Map<?,?> config; - public InPlaceExternalConfigSupplier(String name, Map<?, ?> config) { - super(name); + public InPlaceExternalConfigSupplier(ManagementContext managementContext, String name, Map<?, ?> config) { + super(managementContext, name); this.config = config; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/0d401f77/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java index a4d48d9..34a67c4 100644 --- a/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java +++ b/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java @@ -24,6 +24,7 @@ import java.net.URL; import java.util.Map; import java.util.Properties; +import brooklyn.management.ManagementContext; import brooklyn.util.stream.Streams; @@ -42,8 +43,8 @@ public class PropertiesFileExternalConfigSupplier extends AbstractExternalConfig private final Properties properties; - public PropertiesFileExternalConfigSupplier(String name, Map<?, ?> config) throws IOException { - super(name); + public PropertiesFileExternalConfigSupplier(ManagementContext managementContext, String name, Map<?, ?> config) throws IOException { + super(managementContext, name); this.properties = loadProperties((String) config.get(PROPERTIES_URL)); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/0d401f77/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java b/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java index 16f7ed5..8d81d69 100644 --- a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java +++ b/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java @@ -103,8 +103,8 @@ public class BasicExternalConfigSupplierRegistry implements ExternalConfigSuppli try { Class<? extends ExternalConfigSupplier> providerClass = (Class<? extends ExternalConfigSupplier>) classloader.loadClass(providerClassname); - Constructor<? extends ExternalConfigSupplier> constructor = providerClass.getConstructor(String.class, Map.class); - ExternalConfigSupplier configSupplier = constructor.newInstance(name, config); + Constructor<? extends ExternalConfigSupplier> constructor = providerClass.getConstructor(ManagementContext.class, String.class, Map.class); + ExternalConfigSupplier configSupplier = constructor.newInstance(this, name, config); addProvider(name, configSupplier); } catch (Exception e) {
