Deprecate *Config methods in Location/Enricher/Policy
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/972ab83b Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/972ab83b Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/972ab83b Branch: refs/heads/master Commit: 972ab83babe298cd5866025748e918e583c8df66 Parents: 4c233de Author: Aled Sage <[email protected]> Authored: Tue Nov 11 16:50:17 2014 +0000 Committer: Aled Sage <[email protected]> Committed: Wed Feb 18 11:02:35 2015 +0000 ---------------------------------------------------------------------- .../main/java/brooklyn/location/Location.java | 27 +++++++++++++++++--- api/src/main/java/brooklyn/policy/Enricher.java | 13 +++++++++- api/src/main/java/brooklyn/policy/Policy.java | 11 ++++++++ .../location/basic/AbstractLocation.java | 23 ++++++++++++----- .../location/basic/LocationInternal.java | 13 +++++++--- .../policy/basic/AbstractEntityAdjunct.java | 6 +++++ 6 files changed, 78 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/972ab83b/api/src/main/java/brooklyn/location/Location.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/brooklyn/location/Location.java b/api/src/main/java/brooklyn/location/Location.java index fe9bf51..5707dbd 100644 --- a/api/src/main/java/brooklyn/location/Location.java +++ b/api/src/main/java/brooklyn/location/Location.java @@ -93,15 +93,34 @@ public interface Location extends Serializable, BrooklynObject { */ boolean containsLocation(Location potentialDescendent); - /** Returns configuration set at this location or inherited or default */ + /** + * Returns configuration set at this location or inherited or default. + * + * Convenience method for {@code config().get(key)} + */ <T> T getConfig(ConfigKey<T> key); - + + /** + * Convenience method for {@code config().get(key)} + * + * @see {@link #getConfig(ConfigKey)} + */ <T> T getConfig(HasConfigKey<T> key); - /** True iff the indication config key is set, either inherited (second argument true) or locally-only (second argument false) */ + /** + * True iff the indication config key is set, either inherited (second argument true) or locally-only (second argument false). + * + * @deprecated since 0.7.0; use {@link #config()}, such as {@code ((LocationInternal)location).config().getRaw(key).isPresent()} + */ + @Deprecated boolean hasConfig(ConfigKey<?> key, boolean includeInherited); - /** Returns all config set, either inherited (argument true) or locally-only (argument false) */ + /** + * Returns all config set, either inherited (argument true) or locally-only (argument false). + * + * @deprecated since 0.7.0; use {@link #config()}, such as {@code policy.config().getBag()} + */ + @Deprecated public Map<String,Object> getAllConfig(boolean includeInherited); /** http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/972ab83b/api/src/main/java/brooklyn/policy/Enricher.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/brooklyn/policy/Enricher.java b/api/src/main/java/brooklyn/policy/Enricher.java index 0d6e87a..244af79 100644 --- a/api/src/main/java/brooklyn/policy/Enricher.java +++ b/api/src/main/java/brooklyn/policy/Enricher.java @@ -56,10 +56,21 @@ public interface Enricher extends EntityAdjunct, Rebindable, Configurable { @Beta EnricherType getEnricherType(); + /** + * Convenience method for {@code config().get(key)} + */ <T> T getConfig(ConfigKey<T> key); - + + /** + * @deprecated since 0.7.0; use {@link #config()}, such as {@code policy.config().setConfig(key, val)} + */ + @Deprecated <T> T setConfig(ConfigKey<T> key, T val); + /** + * @deprecated since 0.7.0; use {@link #config()}, such as {@code policy.config().getBag()} + */ + @Deprecated Map<ConfigKey<?>, Object> getAllConfig(); /** http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/972ab83b/api/src/main/java/brooklyn/policy/Policy.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/brooklyn/policy/Policy.java b/api/src/main/java/brooklyn/policy/Policy.java index cc1bfa9..0713042 100644 --- a/api/src/main/java/brooklyn/policy/Policy.java +++ b/api/src/main/java/brooklyn/policy/Policy.java @@ -71,10 +71,21 @@ public interface Policy extends EntityAdjunct, Rebindable, Configurable { */ boolean isSuspended(); + /** + * Convenience method for {@code config().get(key)} + */ <T> T getConfig(ConfigKey<T> key); + /** + * @deprecated since 0.7.0; use {@link #config()}, such as {@code policy.config().setConfig(key, val)} + */ + @Deprecated <T> T setConfig(ConfigKey<T> key, T val); + /** + * @deprecated since 0.7.0; use {@link #config()}, such as {@code policy.config().getBag()} + */ + @Deprecated Map<ConfigKey<?>, Object> getAllConfig(); /** http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/972ab83b/core/src/main/java/brooklyn/location/basic/AbstractLocation.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/basic/AbstractLocation.java b/core/src/main/java/brooklyn/location/basic/AbstractLocation.java index fe592db..c6dde27 100644 --- a/core/src/main/java/brooklyn/location/basic/AbstractLocation.java +++ b/core/src/main/java/brooklyn/location/basic/AbstractLocation.java @@ -102,7 +102,7 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements private Reference<HostGeoInfo> hostGeoInfo = new BasicReference<HostGeoInfo>(); - private ConfigurationSupportInternal config = new BasicConfigurationSupport(); + private BasicConfigurationSupport config = new BasicConfigurationSupport(); private ConfigBag configBag = new ConfigBag(); @@ -401,7 +401,7 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements public ConfigBag getBag() { ConfigBag result = ConfigBag.newInstanceExtending(configBag, ImmutableMap.of()); Location p = getParent(); - if (p!=null) result.putIfAbsent(((LocationInternal)p).getAllConfigBag().getAllConfig()); + if (p!=null) result.putIfAbsent(((LocationInternal)p).config().getBag().getAllConfig()); return result; } @@ -447,6 +447,14 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements public void refreshInheritedConfigOfChildren() { // no-op for location } + + private boolean hasConfig(ConfigKey<?> key, boolean includeInherited) { + if (includeInherited && isInherited(key)) { + return getBag().containsKey(key); + } else { + return getLocalBag().containsKey(key); + } + } } @Override @@ -460,12 +468,9 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements } @Override + @Deprecated public boolean hasConfig(ConfigKey<?> key, boolean includeInherited) { - boolean locally = config().getLocalBag().containsKey(key); - if (locally) return true; - if (!includeInherited || !isInherited(key)) return false; - if (getParent()!=null) return getParent().hasConfig(key, true); - return false; + return config.hasConfig(key, includeInherited); } private boolean isInherited(ConfigKey<?> key) { @@ -479,12 +484,14 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements } @Override + @Deprecated public Map<String,Object> getAllConfig(boolean includeInherited) { ConfigBag bag = (includeInherited ? config().getBag() : config().getLocalBag()); return bag.getAllConfig(); } @Override + @Deprecated public ConfigBag getAllConfigBag() { // TODO see comments in EntityConfigMap and on interface methods. // here ConfigBag is used exclusively so @@ -502,11 +509,13 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements * @deprecated since 0.7; use {@link #getLocalConfigBag()} * @since 0.6 */ + @Deprecated public ConfigBag getRawLocalConfigBag() { return config().getLocalBag(); } @Override + @Deprecated public <T> T setConfig(ConfigKey<T> key, T value) { return config().set(key, value); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/972ab83b/core/src/main/java/brooklyn/location/basic/LocationInternal.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/basic/LocationInternal.java b/core/src/main/java/brooklyn/location/basic/LocationInternal.java index 153bf93..f54d0f1 100644 --- a/core/src/main/java/brooklyn/location/basic/LocationInternal.java +++ b/core/src/main/java/brooklyn/location/basic/LocationInternal.java @@ -64,12 +64,19 @@ public interface LocationInternal extends BrooklynObjectInternal, Location { */ public Map<String, String> toMetadataRecord(); + /** + * @deprecated since 0.7.0; use {@link #config()}, such as {@code ((LocationInternal)location).config().getLocalBag()} + */ + @Deprecated ConfigBag getLocalConfigBag(); - /** Returns all config, including that inherited from parents. - * TODO this method does not respect {@link ConfigInheritance} and so usage is discouraged. + /** + * Returns all config, including that inherited from parents. + * TODO this method does not respect {@link ConfigInheritance} and so usage is discouraged. + * + * @deprecated since 0.7.0; use {@link #config()}, such as {@code ((LocationInternal)location).config().getBag()} */ - @Beta // made beta in 0.7.0 due to inheritance problems + @Deprecated ConfigBag getAllConfigBag(); /** http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/972ab83b/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java b/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java index ba5ecd0..4488560 100644 --- a/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java +++ b/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java @@ -273,6 +273,10 @@ public abstract class AbstractEntityAdjunct extends AbstractBrooklynObject imple return config().get(key); } + /** + * @deprecated since 0.7.0; use {@link #config()}, such as {@code entity.config().getBag()} + */ + @Deprecated public Map<ConfigKey<?>, Object> getAllConfig() { return configsInternal.getAllConfig(); } @@ -282,6 +286,7 @@ public abstract class AbstractEntityAdjunct extends AbstractBrooklynObject imple } @Override + @Deprecated public <T> T setConfig(ConfigKey<T> key, T val) { return config().set(key, val); } @@ -289,6 +294,7 @@ public abstract class AbstractEntityAdjunct extends AbstractBrooklynObject imple // TODO make immutable /** for inspection only */ @Beta + @Deprecated public ConfigMap getConfigMap() { return configsInternal; }
