You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2015/02/18 12:32:06 UTC
[1/9] incubator-brooklyn git commit: Add BrooklynObject.config()
Repository: incubator-brooklyn
Updated Branches:
refs/heads/master 6c72bd4c7 -> 1d1cfe713
Add BrooklynObject.config()
- With separate implementations for Entity, Location and
AbstractEntityAdjunct.
- CatalogItemDo / CatalogItemDtoAbstract throw UnsupportedOperationException
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/4c233de5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/4c233de5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/4c233de5
Branch: refs/heads/master
Commit: 4c233de5c43328e22c044c710cbc87c886c60e82
Parents: 6c72bd4
Author: Aled Sage <al...@gmail.com>
Authored: Mon Nov 10 19:05:53 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Feb 18 11:02:34 2015 +0000
----------------------------------------------------------------------
.../java/brooklyn/basic/BrooklynObject.java | 55 +++-
api/src/main/java/brooklyn/entity/Entity.java | 26 +-
.../java/brooklyn/entity/basic/EntityLocal.java | 18 +-
.../brooklyn/basic/BrooklynObjectInternal.java | 62 ++++
.../catalog/internal/CatalogItemDo.java | 8 +
.../internal/CatalogItemDtoAbstract.java | 8 +
.../brooklyn/entity/basic/AbstractEntity.java | 280 ++++++++++++++-----
.../brooklyn/entity/basic/EntityInternal.java | 23 +-
.../location/basic/AbstractLocation.java | 140 ++++++++--
.../policy/basic/AbstractEntityAdjunct.java | 113 +++++++-
.../brooklyn/policy/basic/ConfigMapImpl.java | 7 +
11 files changed, 627 insertions(+), 113 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/api/src/main/java/brooklyn/basic/BrooklynObject.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/BrooklynObject.java b/api/src/main/java/brooklyn/basic/BrooklynObject.java
index 4698780..798d454 100644
--- a/api/src/main/java/brooklyn/basic/BrooklynObject.java
+++ b/api/src/main/java/brooklyn/basic/BrooklynObject.java
@@ -22,8 +22,12 @@ import java.util.Set;
import javax.annotation.Nonnull;
+import brooklyn.config.ConfigKey;
+import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.entity.trait.Identifiable;
+import brooklyn.management.Task;
+import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableMap;
/**
@@ -63,7 +67,9 @@ public interface BrooklynObject extends Identifiable {
@Deprecated
TagSupport getTagSupport();
- public static interface TagSupport {
+ ConfigurationSupport config();
+
+ public interface TagSupport {
/**
* @return An immutable copy of the set of tags on this entity.
* Note {@link #containsTag(Object)} will be more efficient,
@@ -80,4 +86,51 @@ public interface BrooklynObject extends Identifiable {
boolean removeTag(@Nonnull Object tag);
}
+ @Beta
+ public interface ConfigurationSupport {
+
+ /**
+ * Gets the given configuration value for this entity, in the following order of preference:
+ * <ol>
+ * <li> value (including null) explicitly set on the entity
+ * <li> value (including null) explicitly set on an ancestor (inherited)
+ * <li> a default value (including null) on the best equivalent static key of the same name declared on the entity
+ * (where best equivalence is defined as preferring a config key which extends another,
+ * as computed in EntityDynamicType.getConfigKeys)
+ * <li> a default value (including null) on the key itself
+ * <li> null
+ * </ol>
+ */
+ <T> T get(ConfigKey<T> key);
+
+ /**
+ * @see {@link #getConfig(ConfigKey)}
+ */
+ <T> T get(HasConfigKey<T> key);
+
+ /**
+ * Sets the config to the given value.
+ */
+ <T> T set(ConfigKey<T> key, T val);
+
+ /**
+ * @see {@link #setConfig(HasConfigKey, Object)}
+ */
+ <T> T set(HasConfigKey<T> key, T val);
+
+ /**
+ * Sets the config to the value returned by the task.
+ *
+ * Returns immediately without blocking; subsequent calls to {@link #getConfig(ConfigKey)}
+ * will execute the task, and block until the task completes.
+ *
+ * @see {@link #setConfig(ConfigKey, Object)}
+ */
+ <T> T set(ConfigKey<T> key, Task<T> val);
+
+ /**
+ * @see {@link #setConfig(ConfigKey, Task)}
+ */
+ <T> T set(HasConfigKey<T> key, Task<T> val);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/api/src/main/java/brooklyn/entity/Entity.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/Entity.java b/api/src/main/java/brooklyn/entity/Entity.java
index 27b902d..0d45a35 100644
--- a/api/src/main/java/brooklyn/entity/Entity.java
+++ b/api/src/main/java/brooklyn/entity/Entity.java
@@ -194,24 +194,32 @@ public interface Entity extends BrooklynObject {
<T> T getAttribute(AttributeSensor<T> sensor);
/**
- * Gets the given configuration value for this entity, in the following order of preference:
- * <li> value (including null) explicitly set on the entity
- * <li> value (including null) explicitly set on an ancestor (inherited)
- * <li> a default value (including null) on the best equivalent static key of the same name declared on the entity
- * (where best equivalence is defined as preferring a config key which extends another,
- * as computed in EntityDynamicType.getConfigKeys)
- * <li> a default value (including null) on the key itself
- * <li> null
+ * Convenience for calling {@link ConfigurationSupport#getConfig(ConfigKey)},
+ * via code like {@code config().get(key)}.
*/
<T> T getConfig(ConfigKey<T> key);
- <T> T getConfig(HasConfigKey<T> key);
+ /**
+ * @see #getConfig(ConfigKey)}
+ */
+ <T> T getConfig(HasConfigKey<T> key);
/**
* Returns the uncoerced value for this config key as set on this entity, if available,
* not following any inheritance chains and not taking any default.
+ *
+ * @deprecated since 0.7.0; use {@code ((EntityInternal)entity).config().getRaw()} or
+ * {@code ((EntityInternal)entity).config().getLocalRaw()}
*/
+ @Deprecated
Maybe<Object> getConfigRaw(ConfigKey<?> key, boolean includeInherited);
+
+ /**
+ * @see {@link #getConfigRaw(ConfigKey, boolean)}.
+ *
+ * @deprecated since 0.7.0
+ */
+ @Deprecated
Maybe<Object> getConfigRaw(HasConfigKey<?> key, boolean includeInherited);
/**
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/api/src/main/java/brooklyn/entity/basic/EntityLocal.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/basic/EntityLocal.java b/api/src/main/java/brooklyn/entity/basic/EntityLocal.java
index 772161c..266e572 100644
--- a/api/src/main/java/brooklyn/entity/basic/EntityLocal.java
+++ b/api/src/main/java/brooklyn/entity/basic/EntityLocal.java
@@ -60,11 +60,27 @@ public interface EntityLocal extends Entity, Configurable {
void setDisplayName(String displayName);
/**
- * Must be called before the entity is managed.
+ * @deprecated since 0.7.0; use {@link #config()}, such as {@code entity.config().set(key, val)}
*/
+ @Deprecated
<T> T setConfig(ConfigKey<T> key, T val);
+
+ /**
+ * @deprecated since 0.7.0; use {@link #config()}, such as {@code entity.config().set(key, val)}
+ */
+ @Deprecated
<T> T setConfig(ConfigKey<T> key, Task<T> val);
+
+ /**
+ * @deprecated since 0.7.0; use {@link #config()}, such as {@code entity.config().set(key, val)}
+ */
+ @Deprecated
<T> T setConfig(HasConfigKey<T> key, T val);
+
+ /**
+ * @deprecated since 0.7.0; use {@link #config()}, such as {@code entity.config().set(key, val)}
+ */
+ @Deprecated
<T> T setConfig(HasConfigKey<T> key, Task<T> val);
/**
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java b/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
index 26e75c9..9575246 100644
--- a/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
+++ b/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
@@ -19,7 +19,15 @@
package brooklyn.basic;
import brooklyn.entity.rebind.RebindSupport;
+import java.util.Map;
+
+import brooklyn.config.ConfigKey;
+import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.entity.rebind.Rebindable;
+import brooklyn.util.config.ConfigBag;
+import brooklyn.util.guava.Maybe;
+
+import com.google.common.annotations.Beta;
public interface BrooklynObjectInternal extends BrooklynObject, Rebindable {
@@ -28,4 +36,58 @@ public interface BrooklynObjectInternal extends BrooklynObject, Rebindable {
@SuppressWarnings("rawtypes") // subclasses typically apply stronger typing
RebindSupport getRebindSupport();
+ ConfigurationSupportInternal config();
+
+ @Beta
+ public interface ConfigurationSupportInternal extends BrooklynObject.ConfigurationSupport {
+
+ /**
+ * Returns a read-only view of all the config key/value pairs on this entity, backed by a string-based map,
+ * including config names that did not match anything on this entity.
+ */
+ @Beta
+ ConfigBag getBag();
+
+ /**
+ * Returns a read-only view of the local (i.e. not inherited) config key/value pairs on this entity,
+ * backed by a string-based map, including config names that did not match anything on this entity.
+ */
+ @Beta
+ ConfigBag getLocalBag();
+
+ /**
+ * Returns the uncoerced value for this config key, if available, not taking any default.
+ * If there is no local value and there is an explicit inherited value, will return the inherited.
+ */
+ @Beta
+ Maybe<Object> getRaw(ConfigKey<?> key);
+
+ /**
+ * @see {@link #getConfigRaw(ConfigKey)}
+ */
+ @Beta
+ Maybe<Object> getRaw(HasConfigKey<?> key);
+
+ /**
+ * Returns the uncoerced value for this config key, if available,
+ * not following any inheritance chains and not taking any default.
+ */
+ @Beta
+ Maybe<Object> getLocalRaw(ConfigKey<?> key);
+
+ /**
+ * @see {@link #getLocalConfigRaw(ConfigKey)}
+ */
+ @Beta
+ Maybe<Object> getLocalRaw(HasConfigKey<?> key);
+
+ @Beta
+ void addToLocalBag(Map<String, ?> vals);
+
+ @Beta
+ void refreshInheritedConfig();
+
+ @Beta
+ void refreshInheritedConfigOfChildren();
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
index fdac692..494bfb0 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -46,6 +46,14 @@ public class CatalogItemDo<T,SpecT> implements CatalogItem<T,SpecT>, BrooklynObj
public CatalogItem<T,SpecT> getDto() {
return itemDto;
}
+
+ /**
+ * Config not supported for catalog item. See {@link #getPlanYaml()}.
+ */
+ @Override
+ public ConfigurationSupportInternal config() {
+ throw new UnsupportedOperationException();
+ }
@Override
public CatalogItemType getCatalogItemType() {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
index fde647b..cf23c26 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
@@ -62,6 +62,14 @@ public abstract class CatalogItemDtoAbstract<T, SpecT> extends AbstractBrooklynO
private @SetFromFlag Collection<CatalogBundle> libraries;
private @SetFromFlag Set<Object> tags = Sets.newLinkedHashSet();
+ /**
+ * Config not supported for catalog item. See {@link #getPlanYaml()}.
+ */
+ @Override
+ public ConfigurationSupportInternal config() {
+ throw new UnsupportedOperationException();
+ }
+
@Override
public String getId() {
return getCatalogItemId();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
index a004bc0..2fa1bf1 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
@@ -212,6 +212,8 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
protected final EntityManagementSupport managementSupport = new EntityManagementSupport(this);
+ private final BasicConfigurationSupport config = new BasicConfigurationSupport();
+
/**
* The config values of this entity. Updating this map should be done
* via getConfig/setConfig.
@@ -236,7 +238,7 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
protected final Map<String,Object> tempWorkings = Maps.newLinkedHashMap();
protected transient SubscriptionTracker _subscriptionTracker;
-
+
public AbstractEntity() {
this(Maps.newLinkedHashMap(), null);
}
@@ -407,21 +409,41 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
/**
* Sets a config key value, and returns this Entity instance for use in fluent-API style coding.
+ *
+ * @deprecated since 0.7.0; see {@link #config()}, such as {@code config().set(key, value)}
*/
+ @Deprecated
public <T> AbstractEntity configure(ConfigKey<T> key, T value) {
setConfig(key, value);
return this;
}
+
+ /**
+ * @deprecated since 0.7.0; see {@link #config()}, such as {@code config().set(key, value)}
+ */
+ @SuppressWarnings("unchecked")
+ @Deprecated
public <T> AbstractEntity configure(ConfigKey<T> key, String value) {
- setConfig((ConfigKey)key, value);
+ config().set((ConfigKey)key, value);
return this;
}
+
+ /**
+ * @deprecated since 0.7.0; see {@link #config()}, such as {@code config().set(key, value)}
+ */
+ @Deprecated
public <T> AbstractEntity configure(HasConfigKey<T> key, T value) {
- setConfig(key, value);
+ config().set(key, value);
return this;
}
+
+ /**
+ * @deprecated since 0.7.0; see {@link #config()}, such as {@code config().set(key, value)}
+ */
+ @SuppressWarnings("unchecked")
+ @Deprecated
public <T> AbstractEntity configure(HasConfigKey<T> key, String value) {
- setConfig((ConfigKey)key, value);
+ config().set((ConfigKey)key, value);
return this;
}
@@ -472,7 +494,7 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
if (oldConfig.getLocalConfig().size() > 0) {
configsInternal.setLocalConfig(oldConfig.getLocalConfig());
}
- refreshInheritedConfig();
+ config().refreshInheritedConfig();
attributesInternal = new AttributeMap(this, managementContext.getStorage().<Collection<String>, Object>getMap(getId()+"-attributes"));
if (oldAttribs.asRawMap().size() > 0) {
@@ -563,7 +585,7 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
parent.set(entity);
entity.addChild(getProxyIfAvailable());
- refreshInheritedConfig();
+ config().refreshInheritedConfig();
previouslyOwned = true;
getApplication();
@@ -918,81 +940,211 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
}
@Override
+ public Map<AttributeSensor, Object> getAllAttributes() {
+ Map<AttributeSensor, Object> result = Maps.newLinkedHashMap();
+ Map<String, Object> attribs = attributesInternal.asMap();
+ for (Map.Entry<String,Object> entry : attribs.entrySet()) {
+ AttributeSensor<?> attribKey = (AttributeSensor<?>) entityType.getSensor(entry.getKey());
+ if (attribKey == null) {
+ // Most likely a race: e.g. persister thread calling getAllAttributes; writer thread
+ // has written attribute value and is in process of calling entityType.addSensorIfAbsent(attribute)
+ // Just use a synthetic AttributeSensor, rather than ignoring value.
+ // TODO If it's not a race, then don't log.warn every time!
+ LOG.warn("When retrieving all attributes of {}, no AttributeSensor for attribute {} (creating synthetic)", this, entry.getKey());
+ attribKey = Sensors.newSensor(Object.class, entry.getKey());
+ }
+ result.put(attribKey, entry.getValue());
+ }
+ return result;
+ }
+
+
+ // -------- CONFIGURATION --------------
+
+ @Override
+ public ConfigurationSupportInternal config() {
+ return config;
+ }
+
+ private class BasicConfigurationSupport implements ConfigurationSupportInternal {
+
+ @Override
+ public <T> T get(ConfigKey<T> key) {
+ return configsInternal.getConfig(key);
+ }
+
+ @Override
+ public <T> T get(HasConfigKey<T> key) {
+ return get(key.getConfigKey());
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, T val) {
+ return setConfigInternal(key, val);
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, T val) {
+ return set(key.getConfigKey(), val);
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, Task<T> val) {
+ return setConfigInternal(key, val);
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, Task<T> val) {
+ return set(key.getConfigKey(), val);
+ }
+
+ @Override
+ public ConfigBag getBag() {
+ return configsInternal.getAllConfigBag();
+ }
+
+ @Override
+ public ConfigBag getLocalBag() {
+ return configsInternal.getLocalConfigBag();
+ }
+
+ @Override
+ public Maybe<Object> getRaw(ConfigKey<?> key) {
+ return configsInternal.getConfigRaw(key, true);
+ }
+
+ @Override
+ public Maybe<Object> getRaw(HasConfigKey<?> key) {
+ return getRaw(key.getConfigKey());
+ }
+
+ @Override
+ public Maybe<Object> getLocalRaw(ConfigKey<?> key) {
+ return configsInternal.getConfigRaw(key, false);
+ }
+
+ @Override
+ public Maybe<Object> getLocalRaw(HasConfigKey<?> key) {
+ return getLocalRaw(key.getConfigKey());
+ }
+
+ @Override
+ public void addToLocalBag(Map<String, ?> vals) {
+ configsInternal.addToLocalBag(vals);
+ }
+
+ @Override
+ public void refreshInheritedConfig() {
+ if (getParent() != null) {
+ configsInternal.setInheritedConfig(((EntityInternal)getParent()).getAllConfig(), ((EntityInternal)getParent()).config().getBag());
+ } else {
+ configsInternal.clearInheritedConfig();
+ }
+
+ refreshInheritedConfigOfChildren();
+ }
+
+ @Override
+ public void refreshInheritedConfigOfChildren() {
+ for (Entity it : getChildren()) {
+ ((EntityInternal)it).config().refreshInheritedConfig();
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ private <T> T setConfigInternal(ConfigKey<T> key, Object val) {
+ if (!inConstruction && getManagementSupport().isDeployed()) {
+ // previously we threw, then warned, but it is still quite common;
+ // so long as callers don't expect miracles, it should be fine.
+ // i (Alex) think the way to be stricter about this (if that becomes needed)
+ // would be to introduce a 'mutable' field on config keys
+ LOG.debug("configuration being made to {} after deployment: {} = {}; change may not be visible in other contexts",
+ new Object[] { this, key, val });
+ }
+ T result = (T) configsInternal.setConfig(key, val);
+
+ getManagementSupport().getEntityChangeListener().onConfigChanged(key);
+ return result;
+
+ }
+ }
+
+ @Override
public <T> T getConfig(ConfigKey<T> key) {
- return configsInternal.getConfig(key);
+ return config().get(key);
}
@Override
public <T> T getConfig(HasConfigKey<T> key) {
- return configsInternal.getConfig(key);
+ return config().get(key);
}
@Override
+ @Deprecated
public <T> T getConfig(HasConfigKey<T> key, T defaultValue) {
return configsInternal.getConfig(key, defaultValue);
}
//don't use groovy defaults for defaultValue as that doesn't implement the contract; we need the above
@Override
+ @Deprecated
public <T> T getConfig(ConfigKey<T> key, T defaultValue) {
return configsInternal.getConfig(key, defaultValue);
}
@Override
+ @Deprecated
public Maybe<Object> getConfigRaw(ConfigKey<?> key, boolean includeInherited) {
- return configsInternal.getConfigRaw(key, includeInherited);
+ return (includeInherited) ? config().getRaw(key) : config().getLocalRaw(key);
}
@Override
+ @Deprecated
public Maybe<Object> getConfigRaw(HasConfigKey<?> key, boolean includeInherited) {
- return getConfigRaw(key.getConfigKey(), includeInherited);
- }
-
- @SuppressWarnings("unchecked")
- private <T> T setConfigInternal(ConfigKey<T> key, Object val) {
- if (!inConstruction && getManagementSupport().isDeployed()) {
- // previously we threw, then warned, but it is still quite common;
- // so long as callers don't expect miracles, it should be fine.
- // i (Alex) think the way to be stricter about this (if that becomes needed)
- // would be to introduce a 'mutable' field on config keys
- LOG.debug("configuration being made to {} after deployment: {} = {}; change may not be visible in other contexts",
- new Object[] { this, key, val });
- }
- T result = (T) configsInternal.setConfig(key, val);
-
- getManagementSupport().getEntityChangeListener().onConfigChanged(key);
- return result;
-
+ return (includeInherited) ? config().getRaw(key) : config().getLocalRaw(key);
}
@Override
+ @Deprecated
public <T> T setConfig(ConfigKey<T> key, T val) {
- return setConfigInternal(key, val);
+ return config().set(key, val);
}
@Override
+ @Deprecated
public <T> T setConfig(ConfigKey<T> key, Task<T> val) {
- return setConfigInternal(key, val);
+ return config().set(key, val);
}
+ /**
+ * @deprecated since 0.7.0; use {@code config().set(key, task)}, with {@link Task} instead of {@link DeferredSupplier}
+ */
+ @Deprecated
public <T> T setConfig(ConfigKey<T> key, DeferredSupplier val) {
- return setConfigInternal(key, val);
+ return config.setConfigInternal(key, val);
}
@Override
+ @Deprecated
public <T> T setConfig(HasConfigKey<T> key, T val) {
- return setConfig(key.getConfigKey(), val);
+ return config().set(key, val);
}
@Override
+ @Deprecated
public <T> T setConfig(HasConfigKey<T> key, Task<T> val) {
- return (T) setConfig(key.getConfigKey(), val);
+ return (T) config().set(key, val);
}
+ /**
+ * @deprecated since 0.7.0; use {@code config().set(key, task)}, with {@link Task} instead of {@link DeferredSupplier}
+ */
+ @Deprecated
public <T> T setConfig(HasConfigKey<T> key, DeferredSupplier val) {
return setConfig(key.getConfigKey(), val);
}
+ @SuppressWarnings("unchecked")
public <T> T setConfigEvenIfOwned(ConfigKey<T> key, T val) {
return (T) configsInternal.setConfig(key, val);
}
@@ -1001,71 +1153,69 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
return setConfigEvenIfOwned(key.getConfigKey(), val);
}
+ /**
+ * @deprecated since 0.7.0; use {@code if (val != null) config().set(key, val)}
+ */
+ @Deprecated
+ @SuppressWarnings({ "unchecked", "rawtypes" })
protected void setConfigIfValNonNull(ConfigKey key, Object val) {
- if (val != null) setConfig(key, val);
+ if (val != null) config().set(key, val);
}
-
+
+ /**
+ * @deprecated since 0.7.0; use {@code if (val != null) config().set(key, val)}
+ */
+ @Deprecated
+ @SuppressWarnings({ "unchecked", "rawtypes" })
protected void setConfigIfValNonNull(HasConfigKey key, Object val) {
- if (val != null) setConfig(key, val);
+ if (val != null) config().set(key, val);
}
+ /**
+ * @deprecated since 0.7.0; see {@code config().refreshInheritedConfig()}
+ */
@Override
+ @Deprecated
public void refreshInheritedConfig() {
- if (getParent() != null) {
- configsInternal.setInheritedConfig(((EntityInternal)getParent()).getAllConfig(), ((EntityInternal)getParent()).getAllConfigBag());
- } else {
- configsInternal.clearInheritedConfig();
- }
-
- refreshInheritedConfigOfChildren();
+ config().refreshInheritedConfig();
}
+ /**
+ * @deprecated since 0.7.0; see {@code config().refreshInheritedConfigOfChildren()}
+ */
+ @Deprecated
void refreshInheritedConfigOfChildren() {
- for (Entity it : getChildren()) {
- ((EntityInternal)it).refreshInheritedConfig();
- }
+ config().refreshInheritedConfigOfChildren();
}
@Override
+ @Deprecated
public EntityConfigMap getConfigMap() {
return configsInternal;
}
@Override
+ @Deprecated
public Map<ConfigKey<?>,Object> getAllConfig() {
return configsInternal.getAllConfig();
}
@Beta
@Override
+ @Deprecated
public ConfigBag getAllConfigBag() {
- return configsInternal.getAllConfigBag();
+ return config().getBag();
}
@Beta
@Override
+ @Deprecated
public ConfigBag getLocalConfigBag() {
- return configsInternal.getLocalConfigBag();
+ return config().getLocalBag();
}
- @Override
- public Map<AttributeSensor, Object> getAllAttributes() {
- Map<AttributeSensor, Object> result = Maps.newLinkedHashMap();
- Map<String, Object> attribs = attributesInternal.asMap();
- for (Map.Entry<String,Object> entry : attribs.entrySet()) {
- AttributeSensor<?> attribKey = (AttributeSensor<?>) entityType.getSensor(entry.getKey());
- if (attribKey == null) {
- // Most likely a race: e.g. persister thread calling getAllAttributes; writer thread
- // has written attribute value and is in process of calling entityType.addSensorIfAbsent(attribute)
- // Just use a synthetic AttributeSensor, rather than ignoring value.
- // TODO If it's not a race, then don't log.warn every time!
- LOG.warn("When retrieving all attributes of {}, no AttributeSensor for attribute {} (creating synthetic)", this, entry.getKey());
- attribKey = Sensors.newSensor(Object.class, entry.getKey());
- }
- result.put(attribKey, entry.getValue());
- }
- return result;
- }
+
+ // -------- SUBSCRIPTIONS --------------
/** @see EntityLocal#subscribe */
@Override
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/core/src/main/java/brooklyn/entity/basic/EntityInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/EntityInternal.java b/core/src/main/java/brooklyn/entity/basic/EntityInternal.java
index 56443a9..ba8df78 100644
--- a/core/src/main/java/brooklyn/entity/basic/EntityInternal.java
+++ b/core/src/main/java/brooklyn/entity/basic/EntityInternal.java
@@ -57,26 +57,37 @@ public interface EntityInternal extends BrooklynObjectInternal, EntityLocal, Reb
*/
<T> T setAttributeWithoutPublishing(AttributeSensor<T> sensor, T val);
+ /**
+ * @deprecated since 0.7.0; instead just use methods on {@link ConfigurationSupportInternal} returned by {@link #config()}
+ */
+ @Deprecated
EntityConfigMap getConfigMap();
/**
* @return a read-only copy of all the config key/value pairs on this entity.
+ *
+ * @deprecated since 0.7.0; instead just use methods on {@link ConfigurationSupportInternal} returned by {@link #config()}
*/
+ @Deprecated
@Beta
Map<ConfigKey<?>,Object> getAllConfig();
/**
* Returns a read-only view of all the config key/value pairs on this entity, backed by a string-based map,
* including config names that did not match anything on this entity.
+ *
+ * @deprecated since 0.7.0; use {@link #config()}, such as {@code entity.config().getBag()}
*/
- @Beta
+ @Deprecated
ConfigBag getAllConfigBag();
/**
* Returns a read-only view of the local (i.e. not inherited) config key/value pairs on this entity,
* backed by a string-based map, including config names that did not match anything on this entity.
+ *
+ * @deprecated since 0.7.0; use {@link #config()}, such as {@code entity.config().getLocalBag()}
*/
- @Beta
+ @Deprecated
ConfigBag getLocalConfigBag();
@Beta
@@ -84,8 +95,12 @@ public interface EntityInternal extends BrooklynObjectInternal, EntityLocal, Reb
@Beta
void removeAttribute(AttributeSensor<?> attribute);
-
- @Beta
+
+ /**
+ *
+ * @deprecated since 0.7.0; use {@link #config()}, such as {@code entity.config().refreshInheritedConfig()}
+ */
+ @Deprecated
void refreshInheritedConfig();
/**
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/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 59bbfc7..fe592db 100644
--- a/core/src/main/java/brooklyn/location/basic/AbstractLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/AbstractLocation.java
@@ -48,6 +48,7 @@ import brooklyn.location.Location;
import brooklyn.location.LocationSpec;
import brooklyn.location.geo.HasHostGeoInfo;
import brooklyn.location.geo.HostGeoInfo;
+import brooklyn.management.Task;
import brooklyn.management.internal.LocalLocationManager;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.mementos.LocationMemento;
@@ -55,6 +56,7 @@ import brooklyn.util.collections.SetFromLiveMap;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.flags.FlagUtils;
import brooklyn.util.flags.TypeCoercions;
+import brooklyn.util.guava.Maybe;
import brooklyn.util.stream.Streams;
import com.google.common.base.Objects;
@@ -100,6 +102,8 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements
private Reference<HostGeoInfo> hostGeoInfo = new BasicReference<HostGeoInfo>();
+ private ConfigurationSupportInternal config = new BasicConfigurationSupport();
+
private ConfigBag configBag = new ConfigBag();
private volatile boolean managed;
@@ -109,7 +113,7 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements
private final Map<Class<?>, Object> extensions = Maps.newConcurrentMap();
private final LocationDynamicType locationType;
-
+
/**
* Construct a new instance of an AbstractLocation.
*/
@@ -343,28 +347,121 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements
}
@Override
- public <T> T getConfig(HasConfigKey<T> key) {
- return getConfig(key.getConfigKey());
+ public ConfigurationSupportInternal config() {
+ return config ;
}
- @Override
- public <T> T getConfig(ConfigKey<T> key) {
- if (hasConfig(key, false)) return getLocalConfigBag().get(key);
- if (getParent()!=null && isInherited(key)) {
- return getParent().getConfig(key);
+ private class BasicConfigurationSupport implements ConfigurationSupportInternal {
+
+ @Override
+ public <T> T get(ConfigKey<T> key) {
+ if (hasConfig(key, false)) return getLocalBag().get(key);
+ if (getParent() != null && isInherited(key)) {
+ return getParent().getConfig(key);
+ }
+
+ // In case this entity class has overridden the given key (e.g. to set default), then retrieve this entity's key
+ // TODO when locations become entities, the duplication of this compared to EntityConfigMap.getConfig will disappear.
+ @SuppressWarnings("unchecked")
+ ConfigKey<T> ownKey = (ConfigKey<T>) elvis(locationType.getConfigKey(key.getName()), key);
+
+ return ownKey.getDefaultValue();
+ }
+
+ @Override
+ public <T> T get(HasConfigKey<T> key) {
+ return get(key.getConfigKey());
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, T val) {
+ T result = configBag.put(key, val);
+ onChanged();
+ return result;
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, T val) {
+ return set(key.getConfigKey(), val);
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, Task<T> val) {
+ // TODO Support for locations
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, Task<T> val) {
+ // TODO Support for locations
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public ConfigBag getBag() {
+ ConfigBag result = ConfigBag.newInstanceExtending(configBag, ImmutableMap.of());
+ Location p = getParent();
+ if (p!=null) result.putIfAbsent(((LocationInternal)p).getAllConfigBag().getAllConfig());
+ return result;
+ }
+
+ @Override
+ public ConfigBag getLocalBag() {
+ return configBag;
+ }
+
+ @Override
+ public Maybe<Object> getRaw(ConfigKey<?> key) {
+ if (hasConfig(key, false)) return Maybe.of(getLocalBag().getStringKey(key.getName()));
+ if (getParent() != null) return ((AbstractLocation)getParent()).config().getRaw(key);
+ return Maybe.absent();
+ }
+
+ @Override
+ public Maybe<Object> getRaw(HasConfigKey<?> key) {
+ return getRaw(key.getConfigKey());
+ }
+
+ @Override
+ public Maybe<Object> getLocalRaw(ConfigKey<?> key) {
+ if (hasConfig(key, false)) return Maybe.of(getLocalBag().getStringKey(key.getName()));
+ return Maybe.absent();
+ }
+
+ @Override
+ public Maybe<Object> getLocalRaw(HasConfigKey<?> key) {
+ return getLocalRaw(key.getConfigKey());
+ }
+
+ @Override
+ public void addToLocalBag(Map<String, ?> vals) {
+ configBag.putAll(vals);
}
- // In case this entity class has overridden the given key (e.g. to set default), then retrieve this entity's key
- // TODO when locations become entities, the duplication of this compared to EntityConfigMap.getConfig will disappear.
- @SuppressWarnings("unchecked")
- ConfigKey<T> ownKey = (ConfigKey<T>) elvis(locationType.getConfigKey(key.getName()), key);
+ @Override
+ public void refreshInheritedConfig() {
+ // no-op for location
+ }
+
+ @Override
+ public void refreshInheritedConfigOfChildren() {
+ // no-op for location
+ }
+ }
+
+ @Override
+ public <T> T getConfig(HasConfigKey<T> key) {
+ return config().get(key);
+ }
- return ownKey.getDefaultValue();
+ @Override
+ public <T> T getConfig(ConfigKey<T> key) {
+ return config().get(key);
}
@Override
public boolean hasConfig(ConfigKey<?> key, boolean includeInherited) {
- boolean locally = getLocalConfigBag().containsKey(key);
+ boolean locally = config().getLocalBag().containsKey(key);
if (locally) return true;
if (!includeInherited || !isInherited(key)) return false;
if (getParent()!=null) return getParent().hasConfig(key, true);
@@ -383,7 +480,7 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements
@Override
public Map<String,Object> getAllConfig(boolean includeInherited) {
- ConfigBag bag = (includeInherited ? getAllConfigBag() : getLocalConfigBag());
+ ConfigBag bag = (includeInherited ? config().getBag() : config().getLocalBag());
return bag.getAllConfig();
}
@@ -393,15 +490,12 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements
// here ConfigBag is used exclusively so
// we have no information about what to include/exclude inheritance wise.
// however few things use getAllConfigBag()
- ConfigBag result = ConfigBag.newInstanceExtending(configBag, ImmutableMap.of());
- Location p = getParent();
- if (p!=null) result.putIfAbsent(((LocationInternal)p).getAllConfigBag().getAllConfig());
- return result;
+ return config().getBag();
}
@Override
public ConfigBag getLocalConfigBag() {
- return configBag;
+ return config().getLocalBag();
}
/**
@@ -409,14 +503,12 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements
* @since 0.6
*/
public ConfigBag getRawLocalConfigBag() {
- return getLocalConfigBag();
+ return config().getLocalBag();
}
@Override
public <T> T setConfig(ConfigKey<T> key, T value) {
- T result = configBag.put(key, value);
- onChanged();
- return result;
+ return config().set(key, value);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/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 a005e34..ba5ecd0 100644
--- a/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java
+++ b/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java
@@ -35,6 +35,7 @@ import org.slf4j.LoggerFactory;
import brooklyn.basic.AbstractBrooklynObject;
import brooklyn.basic.BrooklynObjectInternal;
import brooklyn.config.ConfigKey;
+import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.config.ConfigMap;
import brooklyn.enricher.basic.AbstractEnricher;
import brooklyn.entity.Entity;
@@ -49,12 +50,14 @@ import brooklyn.event.SensorEventListener;
import brooklyn.management.ExecutionContext;
import brooklyn.management.SubscriptionContext;
import brooklyn.management.SubscriptionHandle;
+import brooklyn.management.Task;
import brooklyn.management.internal.SubscriptionTracker;
import brooklyn.policy.EntityAdjunct;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.flags.FlagUtils;
import brooklyn.util.flags.SetFromFlag;
import brooklyn.util.flags.TypeCoercions;
+import brooklyn.util.guava.Maybe;
import com.google.common.annotations.Beta;
import com.google.common.base.Objects;
@@ -75,6 +78,8 @@ public abstract class AbstractEntityAdjunct extends AbstractBrooklynObject imple
protected transient ExecutionContext execution;
+ private final BasicConfigurationSupport config = new BasicConfigurationSupport();
+
/**
* The config values of this entity. Updating this map should be done
* via getConfig/setConfig.
@@ -168,8 +173,104 @@ public abstract class AbstractEntityAdjunct extends AbstractBrooklynObject imple
return _legacyNoConstructionInit;
}
+ @Override
+ public ConfigurationSupportInternal config() {
+ return config;
+ }
+
+ private class BasicConfigurationSupport implements ConfigurationSupportInternal {
+
+ @Override
+ public <T> T get(ConfigKey<T> key) {
+ return configsInternal.getConfig(key);
+ }
+
+ @Override
+ public <T> T get(HasConfigKey<T> key) {
+ return get(key.getConfigKey());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <T> T set(ConfigKey<T> key, T val) {
+ if (entity != null && isRunning()) {
+ doReconfigureConfig(key, val);
+ }
+ T result = (T) configsInternal.setConfig(key, val);
+ onChanged();
+ return result;
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, T val) {
+ return setConfig(key.getConfigKey(), val);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <T> T set(ConfigKey<T> key, Task<T> val) {
+ if (entity != null && isRunning()) {
+ // TODO Support for AbstractEntityAdjunct
+ throw new UnsupportedOperationException();
+ }
+ T result = (T) configsInternal.setConfig(key, val);
+ onChanged();
+ return result;
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, Task<T> val) {
+ return set(key.getConfigKey(), val);
+ }
+
+ @Override
+ public ConfigBag getBag() {
+ return getLocalBag();
+ }
+
+ @Override
+ public ConfigBag getLocalBag() {
+ return ConfigBag.newInstance(configsInternal.getAllConfig());
+ }
+
+ @Override
+ public Maybe<Object> getRaw(ConfigKey<?> key) {
+ return configsInternal.getConfigRaw(key, true);
+ }
+
+ @Override
+ public Maybe<Object> getRaw(HasConfigKey<?> key) {
+ return getRaw(key.getConfigKey());
+ }
+
+ @Override
+ public Maybe<Object> getLocalRaw(ConfigKey<?> key) {
+ return configsInternal.getConfigRaw(key, false);
+ }
+
+ @Override
+ public Maybe<Object> getLocalRaw(HasConfigKey<?> key) {
+ return getLocalRaw(key.getConfigKey());
+ }
+
+ @Override
+ public void addToLocalBag(Map<String, ?> vals) {
+ configsInternal.addToLocalBag(vals);
+ }
+
+ @Override
+ public void refreshInheritedConfig() {
+ // no-op for location
+ }
+
+ @Override
+ public void refreshInheritedConfigOfChildren() {
+ // no-op for location
+ }
+ }
+
public <T> T getConfig(ConfigKey<T> key) {
- return configsInternal.getConfig(key);
+ return config().get(key);
}
public Map<ConfigKey<?>, Object> getAllConfig() {
@@ -177,18 +278,12 @@ public abstract class AbstractEntityAdjunct extends AbstractBrooklynObject imple
}
protected <K> K getRequiredConfig(ConfigKey<K> key) {
- return checkNotNull(getConfig(key), key.getName());
+ return checkNotNull(config().get(key), key.getName());
}
- @SuppressWarnings("unchecked")
@Override
public <T> T setConfig(ConfigKey<T> key, T val) {
- if (entity != null && isRunning()) {
- doReconfigureConfig(key, val);
- }
- T result = (T) configsInternal.setConfig(key, val);
- onChanged();
- return result;
+ return config().set(key, val);
}
// TODO make immutable
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4c233de5/core/src/main/java/brooklyn/policy/basic/ConfigMapImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/policy/basic/ConfigMapImpl.java b/core/src/main/java/brooklyn/policy/basic/ConfigMapImpl.java
index 686c4c2..9d62dda 100644
--- a/core/src/main/java/brooklyn/policy/basic/ConfigMapImpl.java
+++ b/core/src/main/java/brooklyn/policy/basic/ConfigMapImpl.java
@@ -30,6 +30,7 @@ import org.slf4j.LoggerFactory;
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
+import brooklyn.entity.basic.ConfigKeys;
import brooklyn.entity.basic.ConfigMapViewWithStringKeys;
import brooklyn.entity.basic.Entities;
import brooklyn.entity.basic.EntityInternal;
@@ -160,6 +161,12 @@ public class ConfigMapImpl implements brooklyn.config.ConfigMap {
return oldVal;
}
+ public void addToLocalBag(Map<String, ?> vals) {
+ for (Map.Entry<String, ?> entry : vals.entrySet()) {
+ setConfig(ConfigKeys.newConfigKey(Object.class, entry.getKey()), entry.getValue());
+ }
+ }
+
@Override
public ConfigMapImpl submap(Predicate<ConfigKey<?>> filter) {
ConfigMapImpl m = new ConfigMapImpl(adjunct);
[5/9] incubator-brooklyn git commit: Use {location, policy,
enricher}.config(), instead of newly deprecated methods
Posted by al...@apache.org.
Use {location,policy,enricher}.config(), instead of newly deprecated methods
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/73c49852
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/73c49852
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/73c49852
Branch: refs/heads/master
Commit: 73c498525ff2008ca078e430b75dc9fe50e3b732
Parents: 972ab83
Author: Aled Sage <al...@gmail.com>
Authored: Tue Nov 11 16:51:16 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Feb 18 11:02:35 2015 +0000
----------------------------------------------------------------------
.../java/brooklyn/entity/basic/Entities.java | 2 +-
.../group/AbstractMembershipTrackingPolicy.java | 2 +-
.../entity/proxying/InternalPolicyFactory.java | 4 +--
.../rebind/BasicLocationRebindSupport.java | 7 +++--
.../entity/rebind/dto/MementosGenerators.java | 2 +-
.../FixedListMachineProvisioningLocation.java | 3 +-
.../LocalhostMachineProvisioningLocation.java | 2 +-
.../brooklyn/location/basic/MultiLocation.java | 2 +-
.../location/basic/SimulatedLocation.java | 2 +-
.../location/basic/SshMachineLocation.java | 7 +++--
...bstractCloudMachineProvisioningLocation.java | 2 +-
.../internal/LocalLocationManager.java | 3 +-
.../java/brooklyn/util/task/ssh/SshTasks.java | 2 +-
.../enricher/basic/BasicEnricherTest.java | 4 +--
.../enricher/basic/EnricherConfigTest.java | 8 ++---
...DynamicClusterWithAvailabilityZonesTest.java | 4 +--
.../entity/rebind/RebindLocationTest.java | 2 +-
.../entity/rebind/RebindPolicyTest.java | 2 +-
.../basic/ByonLocationResolverTest.java | 22 +++++++-------
.../basic/HostLocationResolverTest.java | 2 +-
.../basic/LocalhostLocationResolverTest.java | 16 +++++-----
.../location/basic/LocationConfigTest.java | 32 ++++++++++----------
.../SingleMachineLocationResolverTest.java | 2 +-
.../brooklyn/policy/basic/BasicPolicyTest.java | 4 +--
.../brooklyn/policy/basic/PolicyConfigTest.java | 8 ++---
...lusterDatabaseExampleAppIntegrationTest.java | 4 +--
.../jclouds/JcloudsByonLocationResolver.java | 2 +-
.../location/jclouds/JcloudsLocation.java | 31 +++++++++----------
.../jclouds/JcloudsSshMachineLocation.java | 4 +--
.../JcloudsByonLocationResolverAwsLiveTest.java | 4 +--
.../jclouds/JcloudsLocationResolverTest.java | 20 ++++++------
.../location/jclouds/LiveTestEntity.java | 3 +-
.../jclouds/RebindJcloudsLocationLiveTest.java | 4 +--
.../jclouds/RebindJcloudsLocationTest.java | 2 +-
.../policy/autoscaling/AutoScalerPolicy.java | 14 ++++-----
.../AutoScalerPolicyReconfigurationTest.java | 16 +++++-----
.../software/MachineLifecycleEffectorTasks.java | 2 +-
.../entity/software/SshEffectorTasks.java | 2 +-
.../entity/dns/AbstractGeoDnsServiceTest.java | 2 +-
.../camp/brooklyn/LocationsYamlTest.java | 6 ++--
.../main/java/brooklyn/cli/CloudExplorer.java | 2 +-
.../webcluster/SinusoidalLoadGenerator.java | 8 ++---
.../rest/resources/PolicyConfigResource.java | 7 +++--
.../rest/transform/LocationTransformer.java | 22 +++++++++-----
.../rest/resources/ApplicationResourceTest.java | 6 ++--
.../rest/util/EntityLocationUtilsTest.java | 3 +-
46 files changed, 161 insertions(+), 149 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/entity/basic/Entities.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/Entities.java b/core/src/main/java/brooklyn/entity/basic/Entities.java
index 68b7912..cdf1a01 100644
--- a/core/src/main/java/brooklyn/entity/basic/Entities.java
+++ b/core/src/main/java/brooklyn/entity/basic/Entities.java
@@ -401,7 +401,7 @@ public class Entities {
public static void dumpInfo(Location loc, Writer out, String currentIndentation, String tab) throws IOException {
out.append(currentIndentation+loc.toString()+"\n");
- for (Object entryO : ((LocationInternal)loc).getAllConfigBag().getAllConfig().entrySet()) {
+ for (Object entryO : ((LocationInternal)loc).config().getBag().getAllConfig().entrySet()) {
Map.Entry entry = (Map.Entry)entryO;
Object keyO = entry.getKey();
String key =
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/entity/group/AbstractMembershipTrackingPolicy.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/group/AbstractMembershipTrackingPolicy.java b/core/src/main/java/brooklyn/entity/group/AbstractMembershipTrackingPolicy.java
index 22a2917..459f515 100644
--- a/core/src/main/java/brooklyn/entity/group/AbstractMembershipTrackingPolicy.java
+++ b/core/src/main/java/brooklyn/entity/group/AbstractMembershipTrackingPolicy.java
@@ -112,7 +112,7 @@ public abstract class AbstractMembershipTrackingPolicy extends AbstractPolicy {
public void setGroup(Group group) {
// relies on doReconfigureConfig to make the actual change
LOG.warn("Deprecated use of setGroup in "+AbstractMembershipTrackingPolicy.class.getSimpleName()+"; group should be set as config");
- setConfig(GROUP, group);
+ config().set(GROUP, group);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java b/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
index 618a691..3ef42f7 100644
--- a/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
+++ b/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
@@ -123,7 +123,7 @@ public class InternalPolicyFactory extends InternalFactory {
// which the user may have overridden?
// Also see InternalLocationFactory for same issue, which this code is based on.
for (Map.Entry<ConfigKey<?>, Object> entry : spec.getConfig().entrySet()) {
- ((AbstractPolicy)pol).setConfig((ConfigKey)entry.getKey(), entry.getValue());
+ pol.config().set((ConfigKey)entry.getKey(), entry.getValue());
}
((AbstractPolicy)pol).init();
@@ -164,7 +164,7 @@ public class InternalPolicyFactory extends InternalFactory {
// which the user may have overridden?
// Also see InternalLocationFactory for same issue, which this code is based on.
for (Map.Entry<ConfigKey<?>, Object> entry : spec.getConfig().entrySet()) {
- ((AbstractEnricher)enricher).setConfig((ConfigKey)entry.getKey(), entry.getValue());
+ enricher.config().set((ConfigKey)entry.getKey(), entry.getValue());
}
((AbstractEnricher)enricher).init();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java b/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java
index fc7947b..23ed373 100644
--- a/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java
+++ b/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java
@@ -31,6 +31,7 @@ import brooklyn.entity.rebind.dto.MementosGenerators;
import brooklyn.location.Location;
import brooklyn.location.basic.AbstractLocation;
import brooklyn.mementos.LocationMemento;
+import brooklyn.util.collections.MutableMap;
import brooklyn.util.flags.FlagUtils;
import brooklyn.util.flags.TypeCoercions;
@@ -68,9 +69,9 @@ public class BasicLocationRebindSupport extends AbstractBrooklynObjectRebindSupp
// FIXME Treat config like we do for entities; this code will disappear when locations become entities.
// Note that the flags have been set in the constructor
- // FIXME Relies on location.getLocalConfigBag being mutable (to modify the location's own config)
+ // FIXME Relies on location.config().getLocalBag() being mutable (to modify the location's own config)
- location.getLocalConfigBag().putAll(memento.getLocationConfig()).markAll(
+ location.config().getLocalBag().putAll(memento.getLocationConfig()).markAll(
Sets.difference(memento.getLocationConfig().keySet(), memento.getLocationConfigUnused())).
setDescription(memento.getLocationConfigDescription());
@@ -93,7 +94,7 @@ public class BasicLocationRebindSupport extends AbstractBrooklynObjectRebindSupp
value = TypeCoercions.coerce(entry.getValue(), fieldType);
}
if (value != null) {
- location.getLocalConfigBag().putStringKey(flagName, value);
+ location.config().addToLocalBag(MutableMap.of(flagName, value));
FlagUtils.setFieldFromFlag(location, flagName, value);
}
} catch (NoSuchElementException e) {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
index ca1c434..ed2ad0f 100644
--- a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
+++ b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
@@ -252,7 +252,7 @@ public class MementosGenerators {
.putAll(FlagUtils.getFieldsWithFlagsExcludingModifiers(location, Modifier.STATIC ^ Modifier.TRANSIENT))
.removeAll(nonPersistableFlagNames)
.build();
- ConfigBag persistableConfig = new ConfigBag().copy( ((AbstractLocation)location).getLocalConfigBag() ).removeAll(nonPersistableFlagNames);
+ ConfigBag persistableConfig = new ConfigBag().copy( ((LocationInternal)location).config().getLocalBag() ).removeAll(nonPersistableFlagNames);
builder.copyConfig(persistableConfig);
builder.locationConfig.putAll(persistableFlags);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/location/basic/FixedListMachineProvisioningLocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/FixedListMachineProvisioningLocation.java b/core/src/main/java/brooklyn/location/basic/FixedListMachineProvisioningLocation.java
index 97f1117..411d12a 100644
--- a/core/src/main/java/brooklyn/location/basic/FixedListMachineProvisioningLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/FixedListMachineProvisioningLocation.java
@@ -128,11 +128,12 @@ implements MachineProvisioningLocation<T>, Closeable {
return super.configure(properties);
}
+ @SuppressWarnings("unchecked")
public FixedListMachineProvisioningLocation<T> newSubLocation(Map<?,?> newFlags) {
// TODO shouldn't have to copy config bag as it should be inherited (but currently it is not used inherited everywhere; just most places)
return getManagementContext().getLocationManager().createLocation(LocationSpec.create(getClass())
.parent(this)
- .configure(getLocalConfigBag().getAllConfig()) // FIXME Should this just be inherited?
+ .configure(config().getLocalBag().getAllConfig()) // FIXME Should this just be inherited?
.configure(newFlags));
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/location/basic/LocalhostMachineProvisioningLocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/LocalhostMachineProvisioningLocation.java b/core/src/main/java/brooklyn/location/basic/LocalhostMachineProvisioningLocation.java
index 051b37e..093f85c 100644
--- a/core/src/main/java/brooklyn/location/basic/LocalhostMachineProvisioningLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/LocalhostMachineProvisioningLocation.java
@@ -179,7 +179,7 @@ public class LocalhostMachineProvisioningLocation extends FixedListMachineProvis
// TODO should take the plunge and try removing this altogether!
// (or alternatively switch to copying all ancestor keys)
for (HasConfigKey<?> k: SshMachineLocation.ALL_SSH_CONFIG_KEYS) {
- if (hasConfig(k.getConfigKey(), true))
+ if (config().getRaw(k).isPresent())
flags2.put(k, getConfig(k));
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/location/basic/MultiLocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/MultiLocation.java b/core/src/main/java/brooklyn/location/basic/MultiLocation.java
index 575d292..fed111f 100644
--- a/core/src/main/java/brooklyn/location/basic/MultiLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/MultiLocation.java
@@ -120,7 +120,7 @@ public class MultiLocation<T extends MachineLocation> extends AbstractLocation i
// TODO shouldn't have to copy config bag as it should be inherited (but currently it is not used inherited everywhere; just most places)
return getManagementContext().getLocationManager().createLocation(LocationSpec.create(getClass())
.parent(this)
- .configure(getLocalConfigBag().getAllConfig()) // FIXME Should this just be inherited?
+ .configure(config().getLocalBag().getAllConfig()) // FIXME Should this just be inherited?
.configure(newFlags));
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/location/basic/SimulatedLocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/SimulatedLocation.java b/core/src/main/java/brooklyn/location/basic/SimulatedLocation.java
index 2802351..05d39ce 100644
--- a/core/src/main/java/brooklyn/location/basic/SimulatedLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/SimulatedLocation.java
@@ -68,7 +68,7 @@ public class SimulatedLocation extends AbstractLocation implements MachineProvis
// TODO shouldn't have to copy config bag as it should be inherited (but currently it is not used inherited everywhere; just most places)
return getManagementContext().getLocationManager().createLocation(LocationSpec.create(getClass())
.parent(this)
- .configure(getLocalConfigBag().getAllConfig()) // FIXME Should this just be inherited?
+ .configure(config().getLocalBag().getAllConfig()) // FIXME Should this just be inherited?
.configure(newFlags));
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java b/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
index 172b58c..51b96c6 100644
--- a/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
@@ -76,6 +76,7 @@ import brooklyn.util.file.ArchiveUtils;
import brooklyn.util.flags.SetFromFlag;
import brooklyn.util.flags.TypeCoercions;
import brooklyn.util.guava.KeyTransformingLoadingCache.KeyTransformingSameTypeLoadingCache;
+import brooklyn.util.guava.Maybe;
import brooklyn.util.internal.ssh.ShellTool;
import brooklyn.util.internal.ssh.SshException;
import brooklyn.util.internal.ssh.SshTool;
@@ -321,7 +322,7 @@ public class SshMachineLocation extends AbstractLocation implements MachineLocat
private BasicPool<SshTool> buildPool(final Map<String, ?> properties) {
return BasicPool.<SshTool>builder()
.name(getDisplayName()+"@"+address+":"+getPort()+
- (hasConfig(SSH_HOST, true) ? "("+getConfig(SSH_HOST)+":"+getConfig(SSH_PORT)+")" : "")+
+ (config().getRaw(SSH_HOST).isPresent() ? "("+getConfig(SSH_HOST)+":"+getConfig(SSH_PORT)+")" : "")+
":hash"+System.identityHashCode(this))
.supplier(new Supplier<SshTool>() {
@Override public SshTool get() {
@@ -473,7 +474,7 @@ public class SshMachineLocation extends AbstractLocation implements MachineLocat
public String getUser() {
if (!truth(user)) {
- if (hasConfig(SshTool.PROP_USER, false)) {
+ if (config().getLocalRaw(SshTool.PROP_USER).isPresent()) {
LOG.warn("User configuration for "+this+" set after deployment; deprecated behaviour may not be supported in future versions");
}
return getConfig(SshTool.PROP_USER);
@@ -531,7 +532,7 @@ public class SshMachineLocation extends AbstractLocation implements MachineLocat
.configure(SshTool.PROP_HOST, address.getHostName())
.putAll(props);
- for (Map.Entry<String,Object> entry: getAllConfigBag().getAllConfig().entrySet()) {
+ for (Map.Entry<String,Object> entry: config().getBag().getAllConfig().entrySet()) {
String key = entry.getKey();
if (key.startsWith(SshTool.BROOKLYN_CONFIG_KEY_PREFIX)) {
key = Strings.removeFromStart(key, SshTool.BROOKLYN_CONFIG_KEY_PREFIX);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/location/cloud/AbstractCloudMachineProvisioningLocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/cloud/AbstractCloudMachineProvisioningLocation.java b/core/src/main/java/brooklyn/location/cloud/AbstractCloudMachineProvisioningLocation.java
index b743342..9486bd1 100644
--- a/core/src/main/java/brooklyn/location/cloud/AbstractCloudMachineProvisioningLocation.java
+++ b/core/src/main/java/brooklyn/location/cloud/AbstractCloudMachineProvisioningLocation.java
@@ -54,7 +54,7 @@ implements MachineProvisioningLocation<SshMachineLocation>, CloudLocationConfig
// TODO was previously `return LocationCreationUtils.newSubLocation(newFlags, this)`; need to retest on CloudStack etc
return getManagementContext().getLocationManager().createLocation(LocationSpec.create(type)
.parent(this)
- .configure(getLocalConfigBag().getAllConfig()) // FIXME Should this just be inherited?
+ .configure(config().getLocalBag().getAllConfig()) // FIXME Should this just be inherited?
.configure(newFlags));
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java b/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java
index cc44bf8..1fc5096 100644
--- a/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java
+++ b/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java
@@ -412,7 +412,8 @@ public class LocalLocationManager implements LocationManagerInternal {
((AbstractLocation)loc).setParent(null, false);
}
// clear config to help with GC; i know you're not supposed to, but this seems to help, else config bag is littered with refs to entities etc
- ((AbstractLocation)loc).getLocalConfigBag().clear();
+ // FIXME relies on config().getLocalBag() returning the underlying bag!
+ ((AbstractLocation)loc).config().getLocalBag().clear();
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/main/java/brooklyn/util/task/ssh/SshTasks.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/util/task/ssh/SshTasks.java b/core/src/main/java/brooklyn/util/task/ssh/SshTasks.java
index 407d328..8944bb8 100644
--- a/core/src/main/java/brooklyn/util/task/ssh/SshTasks.java
+++ b/core/src/main/java/brooklyn/util/task/ssh/SshTasks.java
@@ -120,7 +120,7 @@ public class SshTasks {
allConfig.putAll(mgmt.getConfig().getAllConfig());
}
- allConfig.putAll(((LocationInternal)location).getAllConfigBag());
+ allConfig.putAll(((LocationInternal)location).config().getBag());
Map<String, Object> result = Maps.newLinkedHashMap();
for (String keyS : allConfig.getAllConfig().keySet()) {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/enricher/basic/BasicEnricherTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/enricher/basic/BasicEnricherTest.java b/core/src/test/java/brooklyn/enricher/basic/BasicEnricherTest.java
index 0f0e831..4e33f6d 100644
--- a/core/src/test/java/brooklyn/enricher/basic/BasicEnricherTest.java
+++ b/core/src/test/java/brooklyn/enricher/basic/BasicEnricherTest.java
@@ -76,8 +76,8 @@ public class BasicEnricherTest extends BrooklynAppUnitTestSupport {
public void testAddInstance() throws Exception {
MyEnricher enricher = new MyEnricher();
enricher.setDisplayName("Bob");
- enricher.setConfig(MyEnricher.STR_KEY, "aval");
- enricher.setConfig(MyEnricher.INT_KEY, 2);
+ enricher.config().set(MyEnricher.STR_KEY, "aval");
+ enricher.config().set(MyEnricher.INT_KEY, 2);
app.addEnricher(enricher);
assertEquals(enricher.getDisplayName(), "Bob");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/enricher/basic/EnricherConfigTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/enricher/basic/EnricherConfigTest.java b/core/src/test/java/brooklyn/enricher/basic/EnricherConfigTest.java
index 03677d9..5fbe5ea 100644
--- a/core/src/test/java/brooklyn/enricher/basic/EnricherConfigTest.java
+++ b/core/src/test/java/brooklyn/enricher/basic/EnricherConfigTest.java
@@ -101,8 +101,8 @@ public class EnricherConfigTest extends BrooklynAppUnitTestSupport {
@Test
public void testConfigCanBeSetOnEnricher() throws Exception {
MyEnricher enricher = new MyEnricher();
- enricher.setConfig(MyEnricher.STR_KEY, "aval");
- enricher.setConfig(MyEnricher.INT_KEY, 2);
+ enricher.config().set(MyEnricher.STR_KEY, "aval");
+ enricher.config().set(MyEnricher.INT_KEY, 2);
app.addEnricher(enricher);
assertEquals(enricher.getConfig(MyEnricher.STR_KEY), "aval");
@@ -114,7 +114,7 @@ public class EnricherConfigTest extends BrooklynAppUnitTestSupport {
MyEnricher enricher = new MyEnricher(MutableMap.builder()
.put(MyEnricher.STR_KEY, "aval")
.build());
- enricher.setConfig(MyEnricher.STR_KEY, "diffval");
+ enricher.config().set(MyEnricher.STR_KEY, "diffval");
app.addEnricher(enricher);
assertEquals(enricher.getConfig(MyEnricher.STR_KEY), "diffval");
@@ -128,7 +128,7 @@ public class EnricherConfigTest extends BrooklynAppUnitTestSupport {
app.addEnricher(enricher);
try {
- enricher.setConfig(MyEnricher.STR_KEY,"newval");
+ enricher.config().set(MyEnricher.STR_KEY,"newval");
fail();
} catch (UnsupportedOperationException e) {
// success
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java b/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java
index 6574400..dc16335 100644
--- a/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java
+++ b/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java
@@ -33,13 +33,13 @@ import org.testng.annotations.Test;
import brooklyn.entity.BrooklynAppUnitTestSupport;
import brooklyn.entity.Entity;
-import brooklyn.entity.basic.EntityLocal;
import brooklyn.entity.basic.EntityPredicates;
import brooklyn.entity.group.zoneaware.ProportionalZoneFailureDetector;
import brooklyn.entity.proxying.EntitySpec;
import brooklyn.entity.trait.FailingEntity;
import brooklyn.location.Location;
import brooklyn.location.LocationSpec;
+import brooklyn.location.basic.LocationInternal;
import brooklyn.location.basic.SimulatedLocation;
import brooklyn.location.cloud.AbstractAvailabilityZoneExtension;
import brooklyn.location.cloud.AvailabilityZoneExtension;
@@ -217,7 +217,7 @@ public class DynamicClusterWithAvailabilityZonesTest extends BrooklynAppUnitTest
protected SimulatedLocation newSubLocation(Location parent, String displayName) {
return managementContext.getLocationManager().createLocation(LocationSpec.create(SimulatedLocation.class)
.parent(parent)
- .configure(parent.getAllConfig(true))
+ .configure(((LocationInternal)parent).config().getBag().getAllConfig())
.displayName(displayName));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java
index d81e1ab..7236768 100644
--- a/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java
+++ b/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java
@@ -241,7 +241,7 @@ public class RebindLocationTest extends RebindTestFixtureWithApp {
newApp = rebind();
MyLocation newLoc = (MyLocation) Iterables.get(newApp.getLocations(), 0);
- assertNull(newLoc.getAllConfigBag().getStringKey("id"));
+ assertNull(newLoc.config().getBag().getStringKey("id"));
assertEquals(newLoc.getId(), origLoc.getId());
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/entity/rebind/RebindPolicyTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindPolicyTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindPolicyTest.java
index ef27a94..1f073ed 100644
--- a/core/src/test/java/brooklyn/entity/rebind/RebindPolicyTest.java
+++ b/core/src/test/java/brooklyn/entity/rebind/RebindPolicyTest.java
@@ -179,7 +179,7 @@ public class RebindPolicyTest extends RebindTestFixtureWithApp {
public void testReconfigurePolicyPersistsChange() throws Exception {
MyPolicyReconfigurable policy = origApp.addPolicy(PolicySpec.create(MyPolicyReconfigurable.class)
.configure(MyPolicyReconfigurable.MY_CONFIG, "oldval"));
- policy.setConfig(MyPolicyReconfigurable.MY_CONFIG, "newval");
+ policy.config().set(MyPolicyReconfigurable.MY_CONFIG, "newval");
newApp = rebind();
MyPolicyReconfigurable newPolicy = (MyPolicyReconfigurable) Iterables.getOnlyElement(newApp.getPolicies());
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/location/basic/ByonLocationResolverTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/location/basic/ByonLocationResolverTest.java b/core/src/test/java/brooklyn/location/basic/ByonLocationResolverTest.java
index e0f1dda..2fb85e5 100644
--- a/core/src/test/java/brooklyn/location/basic/ByonLocationResolverTest.java
+++ b/core/src/test/java/brooklyn/location/basic/ByonLocationResolverTest.java
@@ -88,7 +88,7 @@ public class ByonLocationResolverTest {
brooklynProperties.put("brooklyn.location.byon.publicKeyData", "myPublicKeyData");
brooklynProperties.put("brooklyn.location.byon.privateKeyPassphrase", "myprivateKeyPassphrase");
- Map<String, Object> conf = resolve("byon(hosts=\"1.1.1.1\")").getAllConfig(true);
+ Map<String, Object> conf = resolve("byon(hosts=\"1.1.1.1\")").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "myprivatekeyfile");
assertEquals(conf.get("publicKeyFile"), "mypublickeyfile");
@@ -110,7 +110,7 @@ public class ByonLocationResolverTest {
FixedListMachineProvisioningLocation<SshMachineLocation> loc = resolve("byon(privateKeyFile=myprivatekeyfile,hosts=\"1.1.1.1\")");
SshMachineLocation machine = loc.obtain();
- assertEquals(machine.getAllConfig(true).get("privateKeyFile"), "myprivatekeyfile");
+ assertEquals(machine.config().getBag().getStringKey("privateKeyFile"), "myprivatekeyfile");
assertEquals(machine.getAddress(), Networking.getInetAddressWithFixedName("1.1.1.1"));
}
@@ -130,7 +130,7 @@ public class ByonLocationResolverTest {
// prefer location-generic if nothing else
brooklynProperties.put("brooklyn.location.privateKeyData", "privateKeyData-inGeneric");
- Map<String, Object> conf = resolve("named:mynamed").getAllConfig(true);
+ Map<String, Object> conf = resolve("named:mynamed").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "privateKeyFile-inNamed");
assertEquals(conf.get("publicKeyFile"), "publicKeyFile-inProviderSpecific");
@@ -259,21 +259,21 @@ public class ByonLocationResolverTest {
new NamedLocationResolver().newLocationFromString(MutableMap.of(), "named:foo", managementContext.getLocationRegistry());
Assert.assertEquals("/tmp/x", ll.getConfig(LocationConfigKeys.PRIVATE_KEY_FILE));
- Assert.assertTrue(ll.hasConfig(LocationConfigKeys.PRIVATE_KEY_FILE, false));
- Assert.assertEquals("/tmp/x", ll.getAllConfig(false).get(LocationConfigKeys.PRIVATE_KEY_FILE.getName()));
- Assert.assertEquals("/tmp/x", ((AbstractLocation)ll).getAllConfigBag().get(LocationConfigKeys.PRIVATE_KEY_FILE));
+ Assert.assertTrue(((LocationInternal)ll).config().getLocalRaw(LocationConfigKeys.PRIVATE_KEY_FILE).isPresent());
+ Assert.assertEquals("/tmp/x", ((LocationInternal)ll).config().getLocalBag().getStringKey(LocationConfigKeys.PRIVATE_KEY_FILE.getName()));
+ Assert.assertEquals("/tmp/x", ((LocationInternal)ll).config().getBag().get(LocationConfigKeys.PRIVATE_KEY_FILE));
SshMachineLocation l = ll.obtain(MutableMap.of());
Assert.assertEquals("/tmp/x", l.getConfig(LocationConfigKeys.PRIVATE_KEY_FILE));
- Assert.assertTrue(l.hasConfig(LocationConfigKeys.PRIVATE_KEY_FILE, true));
- Assert.assertFalse(l.hasConfig(LocationConfigKeys.PRIVATE_KEY_FILE, false));
+ Assert.assertTrue(l.config().getRaw(LocationConfigKeys.PRIVATE_KEY_FILE).isPresent());
+ Assert.assertTrue(l.config().getLocalRaw(LocationConfigKeys.PRIVATE_KEY_FILE).isAbsent());
- Assert.assertEquals("/tmp/x", l.getAllConfig(true).get(LocationConfigKeys.PRIVATE_KEY_FILE.getName()));
- Assert.assertEquals("/tmp/x", l.getAllConfig(true).get(LocationConfigKeys.PRIVATE_KEY_FILE.getName()));
+ Assert.assertEquals("/tmp/x", l.config().getBag().getStringKey(LocationConfigKeys.PRIVATE_KEY_FILE.getName()));
+ Assert.assertEquals("/tmp/x", l.config().getBag().getStringKey(LocationConfigKeys.PRIVATE_KEY_FILE.getName()));
- Assert.assertEquals("/tmp/x", l.getAllConfigBag().get(LocationConfigKeys.PRIVATE_KEY_FILE));
+ Assert.assertEquals("/tmp/x", l.config().getBag().get(LocationConfigKeys.PRIVATE_KEY_FILE));
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/location/basic/HostLocationResolverTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/location/basic/HostLocationResolverTest.java b/core/src/test/java/brooklyn/location/basic/HostLocationResolverTest.java
index 8ea9df0..51359ef 100644
--- a/core/src/test/java/brooklyn/location/basic/HostLocationResolverTest.java
+++ b/core/src/test/java/brooklyn/location/basic/HostLocationResolverTest.java
@@ -95,7 +95,7 @@ public class HostLocationResolverTest {
// prefer location-generic if nothing else
brooklynProperties.put("brooklyn.location.privateKeyData", "privateKeyData-inGeneric");
- Map<String, Object> conf = resolve("named:mynamed").obtain(ImmutableMap.of()).getAllConfig(true);
+ Map<String, Object> conf = resolve("named:mynamed").obtain(ImmutableMap.of()).config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "privateKeyFile-inNamed");
assertEquals(conf.get("privateKeyData"), "privateKeyData-inGeneric");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/location/basic/LocalhostLocationResolverTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/location/basic/LocalhostLocationResolverTest.java b/core/src/test/java/brooklyn/location/basic/LocalhostLocationResolverTest.java
index c09e3a7..69d0227 100644
--- a/core/src/test/java/brooklyn/location/basic/LocalhostLocationResolverTest.java
+++ b/core/src/test/java/brooklyn/location/basic/LocalhostLocationResolverTest.java
@@ -65,7 +65,7 @@ public class LocalhostLocationResolverTest {
brooklynProperties.put("brooklyn.location.localhost.publicKeyData", "myPublicKeyData");
brooklynProperties.put("brooklyn.location.localhost.privateKeyPassphrase", "myprivateKeyPassphrase");
- Map<String, Object> conf = resolve("localhost").getAllConfig(true);
+ Map<String, Object> conf = resolve("localhost").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "myprivatekeyfile");
assertEquals(conf.get("publicKeyFile"), "mypublickeyfile");
@@ -82,7 +82,7 @@ public class LocalhostLocationResolverTest {
brooklynProperties.put("brooklyn.localhost.publicKeyData", "myPublicKeyData");
brooklynProperties.put("brooklyn.localhost.privateKeyPassphrase", "myprivateKeyPassphrase");
- Map<String, Object> conf = resolve("localhost").getAllConfig(true);
+ Map<String, Object> conf = resolve("localhost").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "myprivatekeyfile");
assertEquals(conf.get("publicKeyFile"), "mypublickeyfile");
@@ -98,7 +98,7 @@ public class LocalhostLocationResolverTest {
brooklynProperties.put("brooklyn.localhost.private-key-data", "myprivateKeyData");
brooklynProperties.put("brooklyn.localhost.public-key-data", "myPublicKeyData");
brooklynProperties.put("brooklyn.localhost.private-key-passphrase", "myprivateKeyPassphrase");
- Map<String, Object> conf = resolve("localhost").getAllConfig(true);
+ Map<String, Object> conf = resolve("localhost").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "myprivatekeyfile");
assertEquals(conf.get("publicKeyFile"), "mypublickeyfile");
@@ -123,7 +123,7 @@ public class LocalhostLocationResolverTest {
// prefer location-generic if nothing else
brooklynProperties.put("brooklyn.location.privateKeyData", "privateKeyData-inGeneric");
- Map<String, Object> conf = resolve("named:mynamed").getAllConfig(true);
+ Map<String, Object> conf = resolve("named:mynamed").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "privateKeyFile-inNamed");
assertEquals(conf.get("publicKeyFile"), "publicKeyFile-inProviderSpecific");
@@ -212,10 +212,10 @@ public class LocalhostLocationResolverTest {
@Test
public void testResolvesPropertiesInSpec() throws Exception {
- Location location = resolve("localhost(privateKeyFile=myprivatekeyfile,name=myname)");
+ LocationInternal location = resolve("localhost(privateKeyFile=myprivatekeyfile,name=myname)");
assertTrue(location instanceof LocalhostMachineProvisioningLocation);
assertEquals(location.getDisplayName(), "myname");
- assertEquals(location.getAllConfig(true).get("privateKeyFile"), "myprivatekeyfile");
+ assertEquals(location.config().getBag().getStringKey("privateKeyFile"), "myprivatekeyfile");
}
@Test
@@ -233,10 +233,10 @@ public class LocalhostLocationResolverTest {
return (BasicLocationRegistry) managementContext.getLocationRegistry();
}
- private Location resolve(String val) {
+ private LocationInternal resolve(String val) {
Location l = managementContext.getLocationRegistry().resolve(val);
Assert.assertNotNull(l);
- return l;
+ return (LocationInternal) l;
}
private void assertThrowsNoSuchElement(String val) {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/location/basic/LocationConfigTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/location/basic/LocationConfigTest.java b/core/src/test/java/brooklyn/location/basic/LocationConfigTest.java
index 8a907dc..a7ba743 100644
--- a/core/src/test/java/brooklyn/location/basic/LocationConfigTest.java
+++ b/core/src/test/java/brooklyn/location/basic/LocationConfigTest.java
@@ -56,8 +56,8 @@ public class LocationConfigTest {
.configure("mylocation.myconfig", "myval1")
.configure("mylocation.myconfigwithflagname", "myval2"));
- assertEquals(loc.getAllConfigBag().getAllConfig(), ImmutableMap.of("mylocation.myconfig", "myval1", "mylocation.myconfigwithflagname", "myval2"));
- assertEquals(loc.getLocalConfigBag().getAllConfig(), ImmutableMap.of("mylocation.myconfig", "myval1", "mylocation.myconfigwithflagname", "myval2"));
+ assertEquals(loc.config().getBag().getAllConfig(), ImmutableMap.of("mylocation.myconfig", "myval1", "mylocation.myconfigwithflagname", "myval2"));
+ assertEquals(loc.config().getLocalBag().getAllConfig(), ImmutableMap.of("mylocation.myconfig", "myval1", "mylocation.myconfigwithflagname", "myval2"));
assertEquals(loc.getAllConfig(true), ImmutableMap.of("mylocation.myconfig", "myval1", "mylocation.myconfigwithflagname", "myval2"));
assertEquals(loc.getAllConfig(false), ImmutableMap.of("mylocation.myconfig", "myval1", "mylocation.myconfigwithflagname", "myval2"));
}
@@ -69,8 +69,8 @@ public class LocationConfigTest {
LocationInternal loc = managementContext.getLocationManager().createLocation(LocationSpec.create(MyLocation.class)
.configure("myconfigflagname", "myval"));
- assertEquals(loc.getAllConfigBag().getAllConfig(), ImmutableMap.of("mylocation.myconfigwithflagname", "myval", "myconfigflagname", "myval"));
- assertEquals(loc.getLocalConfigBag().getAllConfig(), ImmutableMap.of("mylocation.myconfigwithflagname", "myval", "myconfigflagname", "myval"));
+ assertEquals(loc.config().getBag().getAllConfig(), ImmutableMap.of("mylocation.myconfigwithflagname", "myval", "myconfigflagname", "myval"));
+ assertEquals(loc.config().getLocalBag().getAllConfig(), ImmutableMap.of("mylocation.myconfigwithflagname", "myval", "myconfigflagname", "myval"));
assertEquals(loc.getAllConfig(true), ImmutableMap.of("mylocation.myconfigwithflagname", "myval", "myconfigflagname", "myval"));
assertEquals(loc.getAllConfig(false), ImmutableMap.of("mylocation.myconfigwithflagname", "myval", "myconfigflagname", "myval"));
}
@@ -80,8 +80,8 @@ public class LocationConfigTest {
LocationInternal loc = managementContext.getLocationManager().createLocation(LocationSpec.create(MyLocation.class)
.configure("notThere", "notThereVal"));
- assertEquals(loc.getAllConfigBag().getAllConfig(), ImmutableMap.of("notThere", "notThereVal"));
- assertEquals(loc.getLocalConfigBag().getAllConfig(), ImmutableMap.of("notThere", "notThereVal"));
+ assertEquals(loc.config().getBag().getAllConfig(), ImmutableMap.of("notThere", "notThereVal"));
+ assertEquals(loc.config().getLocalBag().getAllConfig(), ImmutableMap.of("notThere", "notThereVal"));
assertEquals(loc.getAllConfig(true), ImmutableMap.of("notThere", "notThereVal"));
assertEquals(loc.getAllConfig(false), ImmutableMap.of("notThere", "notThereVal"));
}
@@ -96,8 +96,8 @@ public class LocationConfigTest {
LocationInternal child = managementContext.getLocationManager().createLocation(LocationSpec.create(MyChildLocation.class)
.parent(loc));
- assertEquals(child.getAllConfigBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfig", "myval1", "notThere", "notThereVal"));
- assertEquals(child.getLocalConfigBag().getAllConfig(), ImmutableMap.of());
+ assertEquals(child.config().getBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfig", "myval1", "notThere", "notThereVal"));
+ assertEquals(child.config().getLocalBag().getAllConfig(), ImmutableMap.of());
assertEquals(child.getAllConfig(true), ImmutableMap.of("mychildlocation.myconfig", "myval1", "notThere", "notThereVal"));
assertEquals(child.getAllConfig(false), ImmutableMap.of());
}
@@ -111,8 +111,8 @@ public class LocationConfigTest {
LocationInternal child = managementContext.getLocationManager().createLocation(LocationSpec.create(MyChildLocation.class)
.parent(loc));
- assertEquals(child.getAllConfigBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "myval"));
- assertEquals(child.getLocalConfigBag().getAllConfig(), ImmutableMap.of());
+ assertEquals(child.config().getBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "myval"));
+ assertEquals(child.config().getLocalBag().getAllConfig(), ImmutableMap.of());
assertEquals(child.getAllConfig(true), ImmutableMap.of("mychildlocation.myconfigwithflagname", "myval"));
assertEquals(child.getAllConfig(false), ImmutableMap.of());
}
@@ -125,8 +125,8 @@ public class LocationConfigTest {
LocationInternal child = managementContext.getLocationManager().createLocation(LocationSpec.create(MyChildLocation.class)
.parent(loc));
- assertEquals(child.getAllConfigBag().getAllConfig(), ImmutableMap.of("mylocation.myconfig", "myval1"));
- assertEquals(child.getLocalConfigBag().getAllConfig(), ImmutableMap.of());
+ assertEquals(child.config().getBag().getAllConfig(), ImmutableMap.of("mylocation.myconfig", "myval1"));
+ assertEquals(child.config().getLocalBag().getAllConfig(), ImmutableMap.of());
assertEquals(child.getAllConfig(true), ImmutableMap.of("mylocation.myconfig", "myval1"));
assertEquals(child.getAllConfig(false), ImmutableMap.of());
}
@@ -142,8 +142,8 @@ public class LocationConfigTest {
.configure("mychildlocation.myconfigwithflagname", "overrideMyval")
.configure("notThere", "overrideNotThereVal"));
- assertEquals(child.getAllConfigBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "notThere", "overrideNotThereVal"));
- assertEquals(child.getLocalConfigBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "notThere", "overrideNotThereVal"));
+ assertEquals(child.config().getBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "notThere", "overrideNotThereVal"));
+ assertEquals(child.config().getLocalBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "notThere", "overrideNotThereVal"));
assertEquals(child.getAllConfig(true), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "notThere", "overrideNotThereVal"));
assertEquals(child.getAllConfig(false), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "notThere", "overrideNotThereVal"));
}
@@ -158,8 +158,8 @@ public class LocationConfigTest {
.parent(loc)
.configure("mychildconfigflagname", "overrideMyval"));
- assertEquals(child.getAllConfigBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "mychildconfigflagname", "overrideMyval"));
- assertEquals(child.getLocalConfigBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "mychildconfigflagname", "overrideMyval"));
+ assertEquals(child.config().getBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "mychildconfigflagname", "overrideMyval"));
+ assertEquals(child.config().getLocalBag().getAllConfig(), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "mychildconfigflagname", "overrideMyval"));
assertEquals(child.getAllConfig(true), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "mychildconfigflagname", "overrideMyval"));
assertEquals(child.getAllConfig(false), ImmutableMap.of("mychildlocation.myconfigwithflagname", "overrideMyval", "mychildconfigflagname", "overrideMyval"));
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/location/basic/SingleMachineLocationResolverTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/location/basic/SingleMachineLocationResolverTest.java b/core/src/test/java/brooklyn/location/basic/SingleMachineLocationResolverTest.java
index 0f62d22..d62971f 100644
--- a/core/src/test/java/brooklyn/location/basic/SingleMachineLocationResolverTest.java
+++ b/core/src/test/java/brooklyn/location/basic/SingleMachineLocationResolverTest.java
@@ -99,7 +99,7 @@ public class SingleMachineLocationResolverTest {
// prefer location-generic if nothing else
brooklynProperties.put("brooklyn.location.privateKeyData", "privateKeyData-inGeneric");
- Map<String, Object> conf = resolve("named:mynamed").obtain(ImmutableMap.of()).getAllConfig(true);
+ Map<String, Object> conf = resolve("named:mynamed").obtain(ImmutableMap.of()).config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "privateKeyFile-inNamed");
assertEquals(conf.get("privateKeyData"), "privateKeyData-inGeneric");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/policy/basic/BasicPolicyTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/policy/basic/BasicPolicyTest.java b/core/src/test/java/brooklyn/policy/basic/BasicPolicyTest.java
index 9f3ae9e..89872be 100644
--- a/core/src/test/java/brooklyn/policy/basic/BasicPolicyTest.java
+++ b/core/src/test/java/brooklyn/policy/basic/BasicPolicyTest.java
@@ -58,8 +58,8 @@ public class BasicPolicyTest extends BrooklynAppUnitTestSupport {
public void testAddInstance() throws Exception {
MyPolicy policy = new MyPolicy();
policy.setDisplayName("Bob");
- policy.setConfig(MyPolicy.STR_KEY, "aval");
- policy.setConfig(MyPolicy.INT_KEY, 2);
+ policy.config().set(MyPolicy.STR_KEY, "aval");
+ policy.config().set(MyPolicy.INT_KEY, 2);
app.addPolicy(policy);
assertEquals(policy.getDisplayName(), "Bob");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/core/src/test/java/brooklyn/policy/basic/PolicyConfigTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/policy/basic/PolicyConfigTest.java b/core/src/test/java/brooklyn/policy/basic/PolicyConfigTest.java
index 502881b..c601e09 100644
--- a/core/src/test/java/brooklyn/policy/basic/PolicyConfigTest.java
+++ b/core/src/test/java/brooklyn/policy/basic/PolicyConfigTest.java
@@ -108,8 +108,8 @@ public class PolicyConfigTest extends BrooklynAppUnitTestSupport {
@Test
public void testConfigCanBeSetOnPolicy() throws Exception {
MyPolicy policy = new MyPolicy();
- policy.setConfig(MyPolicy.STR_KEY, "aval");
- policy.setConfig(MyPolicy.INT_KEY, 2);
+ policy.config().set(MyPolicy.STR_KEY, "aval");
+ policy.config().set(MyPolicy.INT_KEY, 2);
app.addPolicy(policy);
assertEquals(policy.getConfig(MyPolicy.STR_KEY), "aval");
@@ -121,7 +121,7 @@ public class PolicyConfigTest extends BrooklynAppUnitTestSupport {
MyPolicy policy = new MyPolicy(MutableMap.builder()
.put(MyPolicy.STR_KEY, "aval")
.build());
- policy.setConfig(MyPolicy.STR_KEY, "diffval");
+ policy.config().set(MyPolicy.STR_KEY, "diffval");
app.addPolicy(policy);
assertEquals(policy.getConfig(MyPolicy.STR_KEY), "diffval");
@@ -135,7 +135,7 @@ public class PolicyConfigTest extends BrooklynAppUnitTestSupport {
app.addPolicy(policy);
try {
- policy.setConfig(MyPolicy.STR_KEY,"newval");
+ policy.config().set(MyPolicy.STR_KEY,"newval");
fail();
} catch (UnsupportedOperationException e) {
// success
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/examples/simple-web-cluster/src/test/java/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java
----------------------------------------------------------------------
diff --git a/examples/simple-web-cluster/src/test/java/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java b/examples/simple-web-cluster/src/test/java/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java
index 19edba9..d388193 100644
--- a/examples/simple-web-cluster/src/test/java/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java
+++ b/examples/simple-web-cluster/src/test/java/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java
@@ -162,7 +162,7 @@ public class RebindWebClusterDatabaseExampleAppIntegrationTest extends RebindTes
// expect auto-scaler policy to be there, and to be functional (e.g. can trigger resize)
AutoScalerPolicy autoScalerPolicy = (AutoScalerPolicy) Iterables.find(webCluster.getPolicies(), Predicates.instanceOf(AutoScalerPolicy.class));
- autoScalerPolicy.setConfig(AutoScalerPolicy.MIN_POOL_SIZE, 3);
+ autoScalerPolicy.config().set(AutoScalerPolicy.MIN_POOL_SIZE, 3);
EntityTestUtils.assertGroupSizeEqualsEventually(web, 3);
final Collection<Entity> webMembersAfterGrow = web.getMembers();
@@ -190,7 +190,7 @@ public class RebindWebClusterDatabaseExampleAppIntegrationTest extends RebindTes
EntityTestUtils.assertAttributeChangesEventually(web, HttpLatencyDetector.REQUEST_LATENCY_IN_SECONDS_IN_WINDOW);
// Restore the web-cluster to its original size of 2
- autoScalerPolicy.setConfig(AutoScalerPolicy.MIN_POOL_SIZE, 2);
+ autoScalerPolicy.config().set(AutoScalerPolicy.MIN_POOL_SIZE, 2);
EntityTestUtils.assertGroupSizeEqualsEventually(web, 2);
final Entity removedAppserver = Iterables.getOnlyElement(Sets.difference(ImmutableSet.copyOf(webMembersAfterGrow), ImmutableSet.copyOf(web.getMembers())));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsByonLocationResolver.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsByonLocationResolver.java b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsByonLocationResolver.java
index 674d360..b60ddc9 100644
--- a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsByonLocationResolver.java
+++ b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsByonLocationResolver.java
@@ -140,7 +140,7 @@ public class JcloudsByonLocationResolver implements LocationResolver {
.putIfNotNull("privateKeyFile", privateKeyFile)
.build();
try {
- JcloudsSshMachineLocation machine = jcloudsLocation.rebindMachine(jcloudsLocation.getAllConfigBag().putAll(machineFlags));
+ JcloudsSshMachineLocation machine = jcloudsLocation.rebindMachine(jcloudsLocation.config().getBag().putAll(machineFlags));
machines.add(machine);
} catch (NoMachinesAvailableException e) {
log.warn("Error rebinding to jclouds machine "+hostIdentifier+" in "+jcloudsLocation, e);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
index 37272d4..0914ebf 100644
--- a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
+++ b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
@@ -51,7 +51,6 @@ import java.util.regex.Pattern;
import javax.annotation.Nullable;
-import com.google.common.reflect.TypeToken;
import org.jclouds.abiquo.compute.options.AbiquoTemplateOptions;
import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
import org.jclouds.compute.ComputeService;
@@ -173,6 +172,7 @@ import com.google.common.collect.Sets.SetView;
import com.google.common.io.Files;
import com.google.common.net.HostAndPort;
import com.google.common.primitives.Ints;
+import com.google.common.reflect.TypeToken;
/**
* For provisioning and managing VMs in a particular provider/region, using jclouds.
@@ -224,11 +224,10 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
public JcloudsLocation configure(Map<?,?> properties) {
super.configure(properties);
- if (getLocalConfigBag().containsKey("providerLocationId")) {
+ if (config().getLocalBag().containsKey("providerLocationId")) {
LOG.warn("Using deprecated 'providerLocationId' key in "+this);
- if (!getLocalConfigBag().containsKey(CLOUD_REGION_ID))
- // FIXME modifies getLocalConfigBag result, expecting that to set it on actual location
- getLocalConfigBag().put(CLOUD_REGION_ID, (String)getLocalConfigBag().getStringKey("providerLocationId"));
+ if (!config().getLocalBag().containsKey(CLOUD_REGION_ID))
+ config().addToLocalBag(MutableMap.of(CLOUD_REGION_ID.getName(), (String)config().getLocalBag().getStringKey("providerLocationId")));
}
if (isDisplayNameAutoGenerated() || !groovyTruth(getDisplayName())) {
@@ -237,7 +236,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
(groovyTruth(getEndpoint()) ? ":"+getEndpoint() : ""));
}
- setCreationString(getLocalConfigBag());
+ setCreationString(config().getLocalBag());
if (getConfig(MACHINE_CREATION_SEMAPHORE) == null) {
Integer maxConcurrent = getConfig(MAX_CONCURRENT_MACHINE_CREATIONS);
@@ -267,7 +266,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
// TODO should be able to use ConfigBag.newInstanceExtending; would require moving stuff around to api etc
return (JcloudsLocation) getManagementContext().getLocationManager().createLocation(LocationSpec.create(type)
.parent(this)
- .configure(getLocalConfigBag().getAllConfig()) // FIXME Should this just be inherited?
+ .configure(config().getLocalBag().getAllConfig()) // FIXME Should this just be inherited?
.configure(MACHINE_CREATION_SEMAPHORE, getMachineCreationSemaphore())
.configure(newFlags));
}
@@ -275,7 +274,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
@Override
public String toString() {
Object identity = getIdentity();
- String configDescription = getLocalConfigBag().getDescription();
+ String configDescription = config().getLocalBag().getDescription();
if (configDescription!=null && configDescription.startsWith(getClass().getSimpleName()))
return configDescription;
return getClass().getSimpleName()+"["+getDisplayName()+":"+(identity != null ? identity : null)+
@@ -286,7 +285,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
public String toVerboseString() {
return Objects.toStringHelper(this).omitNullValues()
.add("id", getId()).add("name", getDisplayName()).add("identity", getIdentity())
- .add("description", getLocalConfigBag().getDescription()).add("provider", getProvider())
+ .add("description", config().getLocalBag().getDescription()).add("provider", getProvider())
.add("region", getRegion()).add("endpoint", getEndpoint())
.toString();
}
@@ -309,7 +308,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
}
public String getEndpoint() {
- return (String) getAllConfigBag().getWithDeprecation(CLOUD_ENDPOINT, JCLOUDS_KEY_ENDPOINT);
+ return (String) config().getBag().getWithDeprecation(CLOUD_ENDPOINT, JCLOUDS_KEY_ENDPOINT);
}
public String getUser(ConfigBag config) {
@@ -440,8 +439,8 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
}
public ComputeService getComputeService(Map<?,?> flags) {
ConfigBag conf = (flags==null || flags.isEmpty())
- ? getAllConfigBag()
- : ConfigBag.newInstanceExtending(getAllConfigBag(), flags);
+ ? config().getBag()
+ : ConfigBag.newInstanceExtending(config().getBag(), flags);
return getConfig(COMPUTE_SERVICE_REGISTRY).findComputeService(conf, true);
}
@@ -524,7 +523,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
* plus any further properties to specify e.g. images, hardware profiles, accessing user
* (for initial login, and a user potentially to create for subsequent ie normal access) */
public JcloudsSshMachineLocation obtain(Map<?,?> flags) throws NoMachinesAvailableException {
- ConfigBag setup = ConfigBag.newInstanceExtending(getAllConfigBag(), flags);
+ ConfigBag setup = ConfigBag.newInstanceExtending(config().getBag(), flags);
Integer attempts = setup.get(MACHINE_CREATE_ATTEMPTS);
List<Exception> exceptions = Lists.newArrayList();
if (attempts == null || attempts < 1) attempts = 1;
@@ -1530,7 +1529,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
return rebindMachine(MutableMap.of(), metadata);
}
public JcloudsSshMachineLocation rebindMachine(Map<?,?> flags, NodeMetadata metadata) throws NoMachinesAvailableException {
- ConfigBag setup = ConfigBag.newInstanceExtending(getAllConfigBag(), flags);
+ ConfigBag setup = ConfigBag.newInstanceExtending(config().getBag(), flags);
if (!setup.containsKey("id")) setup.putStringKey("id", metadata.getId());
setHostnameUpdatingCredentials(setup, metadata);
return rebindMachine(setup);
@@ -1612,7 +1611,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
}
public JcloudsSshMachineLocation rebindMachine(Map<?,?> flags) throws NoMachinesAvailableException {
- ConfigBag setup = ConfigBag.newInstanceExtending(getAllConfigBag(), flags);
+ ConfigBag setup = ConfigBag.newInstanceExtending(config().getBag(), flags);
return rebindMachine(setup);
}
@@ -1812,7 +1811,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
protected void releaseNode(String instanceId) {
ComputeService computeService = null;
try {
- computeService = getConfig(COMPUTE_SERVICE_REGISTRY).findComputeService(getAllConfigBag(), true);
+ computeService = getConfig(COMPUTE_SERVICE_REGISTRY).findComputeService(config().getBag(), true);
computeService.destroyNode(instanceId);
} finally {
/*
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java
index 56d863e..c715ad5 100644
--- a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java
+++ b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java
@@ -163,7 +163,7 @@ public class JcloudsSshMachineLocation extends SshMachineLocation implements Has
/** In most clouds, the public hostname is the only way to ensure VMs in different zones can access each other. */
@Override
public String getSubnetHostname() {
- String publicHostname = jcloudsParent.getPublicHostname(node, Optional.<HostAndPort>absent(), getAllConfigBag());
+ String publicHostname = jcloudsParent.getPublicHostname(node, Optional.<HostAndPort>absent(), config().getBag());
return publicHostname;
}
@@ -174,7 +174,7 @@ public class JcloudsSshMachineLocation extends SshMachineLocation implements Has
return privateAddress.get();
}
- String hostname = jcloudsParent.getPublicHostname(node, Optional.<HostAndPort>absent(), getAllConfigBag());
+ String hostname = jcloudsParent.getPublicHostname(node, Optional.<HostAndPort>absent(), config().getBag());
if (hostname != null && !Networking.isValidIp4(hostname)) {
try {
return InetAddress.getByName(hostname).getHostAddress();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsByonLocationResolverAwsLiveTest.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsByonLocationResolverAwsLiveTest.java b/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsByonLocationResolverAwsLiveTest.java
index 7e12f5a..ae2ec25 100644
--- a/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsByonLocationResolverAwsLiveTest.java
+++ b/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsByonLocationResolverAwsLiveTest.java
@@ -88,7 +88,7 @@ public class JcloudsByonLocationResolverAwsLiveTest extends AbstractJcloudsLiveT
assertEquals(machine.getAddress().getHostAddress(), awsVmIp);
assertEquals(machine.getAddress().getHostName(), awsVmHostname);
assertEquals(machine.getUser(), awsVmUser);
- assertEquals(machine.getAllConfig(true).get("anotherprop"), "myval");
+ assertEquals(machine.config().getBag().getStringKey("anotherprop"), "myval");
assertTrue(machine.isSshable());
}
@@ -158,7 +158,7 @@ public class JcloudsByonLocationResolverAwsLiveTest extends AbstractJcloudsLiveT
brooklynProperties.put("brooklyn.jclouds.aws-ec2.private-key-passphrase", "privateKeyPassphrase-inProviderSpecific");
brooklynProperties.put("brooklyn.jclouds.private-key-passphrase", "privateKeyPassphrase-inJcloudsGeneric");
- Map<String, Object> conf = resolve("named:mynamed").obtain().getAllConfig(true);
+ Map<String, Object> conf = resolve("named:mynamed").obtain().config().getBag().getAllConfig();
assertEquals(conf.get("user"), awsVmUser);
assertEquals(conf.get("privateKeyFile"), "privateKeyFile-inNamed");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsLocationResolverTest.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsLocationResolverTest.java b/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsLocationResolverTest.java
index 6196d59..e31b954 100644
--- a/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsLocationResolverTest.java
+++ b/locations/jclouds/src/test/java/brooklyn/location/jclouds/JcloudsLocationResolverTest.java
@@ -76,7 +76,7 @@ public class JcloudsLocationResolverTest {
brooklynProperties.put("brooklyn.location.jclouds.aws-ec2.privateKeyData", "myprivateKeyData");
brooklynProperties.put("brooklyn.location.jclouds.aws-ec2.publicKeyData", "myPublicKeyData");
brooklynProperties.put("brooklyn.location.jclouds.aws-ec2.privateKeyPassphrase", "myprivateKeyPassphrase");
- Map<String, Object> conf = resolve("jclouds:aws-ec2").getAllConfig(true);
+ Map<String, Object> conf = resolve("jclouds:aws-ec2").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "myprivatekeyfile");
assertEquals(conf.get("publicKeyFile"), "mypublickeyfile");
@@ -92,7 +92,7 @@ public class JcloudsLocationResolverTest {
brooklynProperties.put("brooklyn.location.jclouds.privateKeyData", "myprivateKeyData");
brooklynProperties.put("brooklyn.location.jclouds.publicKeyData", "myPublicKeyData");
brooklynProperties.put("brooklyn.location.jclouds.privateKeyPassphrase", "myprivateKeyPassphrase");
- Map<String, Object> conf = resolve("jclouds:aws-ec2").getAllConfig(true);
+ Map<String, Object> conf = resolve("jclouds:aws-ec2").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "myprivatekeyfile");
assertEquals(conf.get("publicKeyFile"), "mypublickeyfile");
@@ -109,7 +109,7 @@ public class JcloudsLocationResolverTest {
brooklynProperties.put("brooklyn.location.jclouds.public-key-data", "myPublicKeyData");
brooklynProperties.put("brooklyn.location.jclouds.private-key-passphrase", "myprivateKeyPassphrase");
brooklynProperties.put("brooklyn.location.jclouds.image-id", "myimageid");
- Map<String, Object> conf = resolve("jclouds:aws-ec2").getAllConfig(true);
+ Map<String, Object> conf = resolve("jclouds:aws-ec2").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "myprivatekeyfile");
assertEquals(conf.get("publicKeyFile"), "mypublickeyfile");
@@ -148,7 +148,7 @@ public class JcloudsLocationResolverTest {
"privateKeyPassphrase-inProviderSpecific");
brooklynProperties.put("brooklyn.location.jclouds.private-key-passphrase", "privateKeyPassphrase-inJcloudsGeneric");
- Map<String, Object> conf = resolve("named:myaws-ec2").getAllConfig(true);
+ Map<String, Object> conf = resolve("named:myaws-ec2").config().getBag().getAllConfig();
assertEquals(conf.get("privateKeyFile"), "privateKeyFile-inNamed");
assertEquals(conf.get("publicKeyFile"), "publicKeyFile-inProviderSpecific");
@@ -189,7 +189,7 @@ public class JcloudsLocationResolverTest {
brooklynProperties.put("brooklyn.location.jclouds.openstack-nova.endpoint", "myendpoint");
JcloudsLocation loc = resolve("jclouds:openstack-nova");
// just checking
- assertEquals(loc.getLocalConfigBag().getStringKey("endpoint"), "myendpoint");
+ assertEquals(loc.config().getLocalBag().getStringKey("endpoint"), "myendpoint");
assertEquals(loc.getConfig(CloudLocationConfig.CLOUD_ENDPOINT), "myendpoint");
// this is the one we really care about!:
assertEquals(loc.getEndpoint(), "myendpoint");
@@ -199,14 +199,14 @@ public class JcloudsLocationResolverTest {
public void testJcloudsLegacyRandomProperty() {
brooklynProperties.put("brooklyn.location.jclouds.openstack-nova.foo", "bar");
JcloudsLocation loc = resolve("jclouds:openstack-nova");
- assertEquals(loc.getLocalConfigBag().getStringKey("foo"), "bar");
+ assertEquals(loc.config().getLocalBag().getStringKey("foo"), "bar");
}
@Test
public void testJcloudsRandomProperty() {
brooklynProperties.put("brooklyn.location.jclouds.openstack-nova.foo", "bar");
JcloudsLocation loc = resolve("jclouds:openstack-nova");
- assertEquals(loc.getLocalConfigBag().getStringKey("foo"), "bar");
+ assertEquals(loc.config().getLocalBag().getStringKey("foo"), "bar");
}
@Test
@@ -275,9 +275,9 @@ public class JcloudsLocationResolverTest {
JcloudsLocation l = resolve("named:bar");
assertJcloudsEquals(l, "softlayer", "138124");
- assertEquals(l.getAllConfig(false).get("prop3"), "3");
- assertEquals(l.getAllConfig(false).get("prop2"), "2");
- assertEquals(l.getAllConfig(false).get("prop1"), "1");
+ assertEquals(l.config().getLocalBag().getStringKey("prop3"), "3");
+ assertEquals(l.config().getLocalBag().getStringKey("prop2"), "2");
+ assertEquals(l.config().getLocalBag().getStringKey("prop1"), "1");
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/locations/jclouds/src/test/java/brooklyn/location/jclouds/LiveTestEntity.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/test/java/brooklyn/location/jclouds/LiveTestEntity.java b/locations/jclouds/src/test/java/brooklyn/location/jclouds/LiveTestEntity.java
index feb4aca..837e7a6 100644
--- a/locations/jclouds/src/test/java/brooklyn/location/jclouds/LiveTestEntity.java
+++ b/locations/jclouds/src/test/java/brooklyn/location/jclouds/LiveTestEntity.java
@@ -28,6 +28,7 @@ import brooklyn.entity.proxying.ImplementedBy;
import brooklyn.location.Location;
import brooklyn.location.MachineProvisioningLocation;
import brooklyn.location.NoMachinesAvailableException;
+import brooklyn.location.basic.LocationInternal;
import brooklyn.test.entity.TestEntity;
import brooklyn.test.entity.TestEntityImpl;
@@ -57,7 +58,7 @@ public interface LiveTestEntity extends TestEntity {
addLocations(locs);
provisioningLocation = (JcloudsLocation) Iterables.find(locs, Predicates.instanceOf(JcloudsLocation.class));
try {
- obtainedLocation = provisioningLocation.obtain(provisioningLocation.getAllConfig(true));
+ obtainedLocation = provisioningLocation.obtain(((LocationInternal)provisioningLocation).config().getBag().getAllConfig());
} catch (NoMachinesAvailableException e) {
throw Throwables.propagate(e);
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationLiveTest.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationLiveTest.java b/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationLiveTest.java
index 14aa1fa..da27ab2 100644
--- a/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationLiveTest.java
+++ b/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationLiveTest.java
@@ -102,7 +102,7 @@ public class RebindJcloudsLocationLiveTest extends AbstractJcloudsLiveTest {
assertOsDetailEquals(actual.getOsDetails(), expected.getOsDetails());
assertEquals(actual.getSshHostAndPort(), expected.getSshHostAndPort());
assertEquals(actual.getPrivateAddress(), expected.getPrivateAddress());
- assertConfigBagEquals(actual.getAllConfigBag(), expected.getAllConfigBag(), errmsg);
+ assertConfigBagEquals(actual.config().getBag(), expected.config().getBag(), errmsg);
}
private void assertOsDetailEquals(OsDetails actual, OsDetails expected) {
@@ -125,7 +125,7 @@ public class RebindJcloudsLocationLiveTest extends AbstractJcloudsLiveTest {
assertEquals(actual.getIdentity(), expected.getIdentity(), errmsg);
assertEquals(actual.getCredential(), expected.getCredential(), errmsg);
assertEquals(actual.getHostGeoInfo(), expected.getHostGeoInfo(), errmsg);
- assertConfigBagEquals(actual.getAllConfigBag(), expected.getAllConfigBag(), errmsg);
+ assertConfigBagEquals(actual.config().getBag(), expected.config().getBag(), errmsg);
}
private void assertConfigBagEquals(ConfigBag actual, ConfigBag expected, String errmsg) {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationTest.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationTest.java b/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationTest.java
index e779ddb..7ce0ad3 100644
--- a/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationTest.java
+++ b/locations/jclouds/src/test/java/brooklyn/location/jclouds/RebindJcloudsLocationTest.java
@@ -52,7 +52,7 @@ public class RebindJcloudsLocationTest extends RebindTestFixtureWithApp {
JcloudsLocation newLoc = (JcloudsLocation) newManagementContext.getLocationManager().getLocation(origLoc.getId());
- ConfigBag newLocConfig = newLoc.getAllConfigBag();
+ ConfigBag newLocConfig = newLoc.config().getBag();
ConfigBag config = ConfigBag.newInstanceCopying(newLocConfig);
assertNull(newLocConfig.getStringKey(("id")));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java
----------------------------------------------------------------------
diff --git a/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java b/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java
index a5f0ded..835e9b7 100644
--- a/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java
+++ b/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java
@@ -435,12 +435,12 @@ public class AutoScalerPolicy extends AbstractPolicy {
public void setMetricLowerBound(Number val) {
if (LOG.isInfoEnabled()) LOG.info("{} changing metricLowerBound from {} to {}", new Object[] {this, getMetricLowerBound(), val});
- setConfig(METRIC_LOWER_BOUND, checkNotNull(val));
+ config().set(METRIC_LOWER_BOUND, checkNotNull(val));
}
public void setMetricUpperBound(Number val) {
if (LOG.isInfoEnabled()) LOG.info("{} changing metricUpperBound from {} to {}", new Object[] {this, getMetricUpperBound(), val});
- setConfig(METRIC_UPPER_BOUND, checkNotNull(val));
+ config().set(METRIC_UPPER_BOUND, checkNotNull(val));
}
/**
@@ -452,7 +452,7 @@ public class AutoScalerPolicy extends AbstractPolicy {
public void setMinPeriodBetweenExecs(Duration val) {
if (LOG.isInfoEnabled()) LOG.info("{} changing minPeriodBetweenExecs from {} to {}", new Object[] {this, getMinPeriodBetweenExecs(), val});
- setConfig(MIN_PERIOD_BETWEEN_EXECS, val);
+ config().set(MIN_PERIOD_BETWEEN_EXECS, val);
}
/**
@@ -464,7 +464,7 @@ public class AutoScalerPolicy extends AbstractPolicy {
public void setResizeUpStabilizationDelay(Duration val) {
if (LOG.isInfoEnabled()) LOG.info("{} changing resizeUpStabilizationDelay from {} to {}", new Object[] {this, getResizeUpStabilizationDelay(), val});
- setConfig(RESIZE_UP_STABILIZATION_DELAY, val);
+ config().set(RESIZE_UP_STABILIZATION_DELAY, val);
}
/**
@@ -476,17 +476,17 @@ public class AutoScalerPolicy extends AbstractPolicy {
public void setResizeDownStabilizationDelay(Duration val) {
if (LOG.isInfoEnabled()) LOG.info("{} changing resizeDownStabilizationDelay from {} to {}", new Object[] {this, getResizeDownStabilizationDelay(), val});
- setConfig(RESIZE_DOWN_STABILIZATION_DELAY, val);
+ config().set(RESIZE_DOWN_STABILIZATION_DELAY, val);
}
public void setMinPoolSize(int val) {
if (LOG.isInfoEnabled()) LOG.info("{} changing minPoolSize from {} to {}", new Object[] {this, getMinPoolSize(), val});
- setConfig(MIN_POOL_SIZE, val);
+ config().set(MIN_POOL_SIZE, val);
}
public void setMaxPoolSize(int val) {
if (LOG.isInfoEnabled()) LOG.info("{} changing maxPoolSize from {} to {}", new Object[] {this, getMaxPoolSize(), val});
- setConfig(MAX_POOL_SIZE, val);
+ config().set(MAX_POOL_SIZE, val);
}
private AttributeSensor<? extends Number> getMetric() {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/policy/src/test/java/brooklyn/policy/autoscaling/AutoScalerPolicyReconfigurationTest.java
----------------------------------------------------------------------
diff --git a/policy/src/test/java/brooklyn/policy/autoscaling/AutoScalerPolicyReconfigurationTest.java b/policy/src/test/java/brooklyn/policy/autoscaling/AutoScalerPolicyReconfigurationTest.java
index 6591977..e801803 100644
--- a/policy/src/test/java/brooklyn/policy/autoscaling/AutoScalerPolicyReconfigurationTest.java
+++ b/policy/src/test/java/brooklyn/policy/autoscaling/AutoScalerPolicyReconfigurationTest.java
@@ -65,7 +65,7 @@ public class AutoScalerPolicyReconfigurationTest {
.build();
tc.addPolicy(policy);
- policy.setConfig(AutoScalerPolicy.MIN_POOL_SIZE, 3);
+ policy.config().set(AutoScalerPolicy.MIN_POOL_SIZE, 3);
Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), currentSizeAsserter(tc, 3));
}
@@ -85,7 +85,7 @@ public class AutoScalerPolicyReconfigurationTest {
Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), currentSizeAsserter(tc, 2));
// Decreases to new min-size
- policy.setConfig(AutoScalerPolicy.MIN_POOL_SIZE, 1);
+ policy.config().set(AutoScalerPolicy.MIN_POOL_SIZE, 1);
tc.setAttribute(MY_ATTRIBUTE, 0);
Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), currentSizeAsserter(tc, 1));
}
@@ -100,7 +100,7 @@ public class AutoScalerPolicyReconfigurationTest {
.build();
tc.addPolicy(policy);
- policy.setConfig(AutoScalerPolicy.MAX_POOL_SIZE, 4);
+ policy.config().set(AutoScalerPolicy.MAX_POOL_SIZE, 4);
Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), currentSizeAsserter(tc, 4));
}
@@ -119,7 +119,7 @@ public class AutoScalerPolicyReconfigurationTest {
tc.setAttribute(MY_ATTRIBUTE, 200);
Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), currentSizeAsserter(tc, 6));
- policy.setConfig(AutoScalerPolicy.MAX_POOL_SIZE, 8);
+ policy.config().set(AutoScalerPolicy.MAX_POOL_SIZE, 8);
// Increases to max-size only
tc.setAttribute(MY_ATTRIBUTE, 100000);
@@ -135,7 +135,7 @@ public class AutoScalerPolicyReconfigurationTest {
.build();
tc.addPolicy(policy);
- policy.setConfig(AutoScalerPolicy.METRIC_LOWER_BOUND, 51);
+ policy.config().set(AutoScalerPolicy.METRIC_LOWER_BOUND, 51);
tc.setAttribute(MY_ATTRIBUTE, 50);
Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), currentSizeAsserter(tc, 1));
@@ -150,7 +150,7 @@ public class AutoScalerPolicyReconfigurationTest {
.build();
tc.addPolicy(policy);
- policy.setConfig(AutoScalerPolicy.METRIC_UPPER_BOUND, 99);
+ policy.config().set(AutoScalerPolicy.METRIC_UPPER_BOUND, 99);
tc.setAttribute(MY_ATTRIBUTE, 100);
Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), currentSizeAsserter(tc, 2));
@@ -166,7 +166,7 @@ public class AutoScalerPolicyReconfigurationTest {
.build();
tc.addPolicy(policy);
- policy.setConfig(AutoScalerPolicy.RESIZE_UP_STABILIZATION_DELAY, Duration.ZERO);
+ policy.config().set(AutoScalerPolicy.RESIZE_UP_STABILIZATION_DELAY, Duration.ZERO);
tc.setAttribute(MY_ATTRIBUTE, 101);
Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), currentSizeAsserter(tc, 2));
@@ -182,7 +182,7 @@ public class AutoScalerPolicyReconfigurationTest {
.build();
tc.addPolicy(policy);
- policy.setConfig(AutoScalerPolicy.RESIZE_DOWN_STABILIZATION_DELAY, Duration.ZERO);
+ policy.config().set(AutoScalerPolicy.RESIZE_DOWN_STABILIZATION_DELAY, Duration.ZERO);
tc.setAttribute(MY_ATTRIBUTE, 1);
Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), currentSizeAsserter(tc, 1));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java b/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java
index 378e662..a4b3f5d 100644
--- a/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java
+++ b/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java
@@ -292,7 +292,7 @@ public abstract class MachineLifecycleEffectorTasks {
if (log.isDebugEnabled())
log.debug("While starting {}, obtained new location instance {}", entity(),
(machine instanceof SshMachineLocation ?
- machine+", details "+((SshMachineLocation)machine).getUser()+":"+Entities.sanitize(((SshMachineLocation)machine).getLocalConfigBag())
+ machine+", details "+((SshMachineLocation)machine).getUser()+":"+Entities.sanitize(((SshMachineLocation)machine).config().getLocalBag())
: machine));
return machine;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/software/base/src/main/java/brooklyn/entity/software/SshEffectorTasks.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/software/SshEffectorTasks.java b/software/base/src/main/java/brooklyn/entity/software/SshEffectorTasks.java
index c2b0bb9..7d1474f 100644
--- a/software/base/src/main/java/brooklyn/entity/software/SshEffectorTasks.java
+++ b/software/base/src/main/java/brooklyn/entity/software/SshEffectorTasks.java
@@ -290,7 +290,7 @@ public class SshEffectorTasks {
allConfig.putAll(globalConfig.getAllConfig());
if (optionalLocation!=null)
- allConfig.putAll(((LocationInternal)optionalLocation).getAllConfigBag());
+ allConfig.putAll(((LocationInternal)optionalLocation).config().getBag());
allConfig.putAll(((EntityInternal)entity).getAllConfig());
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/software/webapp/src/test/java/brooklyn/entity/dns/AbstractGeoDnsServiceTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/brooklyn/entity/dns/AbstractGeoDnsServiceTest.java b/software/webapp/src/test/java/brooklyn/entity/dns/AbstractGeoDnsServiceTest.java
index 8e453ba..0984071 100644
--- a/software/webapp/src/test/java/brooklyn/entity/dns/AbstractGeoDnsServiceTest.java
+++ b/software/webapp/src/test/java/brooklyn/entity/dns/AbstractGeoDnsServiceTest.java
@@ -221,7 +221,7 @@ public class AbstractGeoDnsServiceTest {
SshMachineLocation l = Machines.findUniqueSshMachineLocation(e.getLocations()).get();
if (includeAddress)
((EntityInternal)e).setAttribute(Attributes.ADDRESS, l.getAddress().getHostAddress());
- String h = (String) l.getAllConfigBag().getStringKey("hostname");
+ String h = (String) l.config().getBag().getStringKey("hostname");
if (h==null) h = l.getAddress().getHostName();
if (includeHostname)
((EntityInternal)e).setAttribute(Attributes.HOSTNAME, h);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/LocationsYamlTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/LocationsYamlTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/LocationsYamlTest.java
index dce5d6f..d22b73e 100644
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/LocationsYamlTest.java
+++ b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/LocationsYamlTest.java
@@ -113,7 +113,7 @@ public class LocationsYamlTest extends AbstractYamlTest {
Entity app = createStartWaitAndLogApplication(new StringReader(yaml));
LocalhostMachineProvisioningLocation loc = (LocalhostMachineProvisioningLocation) Iterables.getOnlyElement(app.getLocations());
assertEquals(loc.getDisplayName(), "myname");
- assertEquals(loc.getAllConfig(false).get("myconfkey"), "myconfval");
+ assertEquals(loc.config().getLocalBag().getStringKey("myconfkey"), "myconfval");
}
@Test
@@ -135,9 +135,9 @@ public class LocationsYamlTest extends AbstractYamlTest {
LocalhostMachineProvisioningLocation loc1 = (LocalhostMachineProvisioningLocation) locs.get(0);
LocalhostMachineProvisioningLocation loc2 = (LocalhostMachineProvisioningLocation) locs.get(1);
assertEquals(loc1.getDisplayName(), "myname1");
- assertEquals(loc1.getAllConfig(false).get("myconfkey"), "myconfval1");
+ assertEquals(loc1.config().getLocalBag().getStringKey("myconfkey"), "myconfval1");
assertEquals(loc2.getDisplayName(), "myname2");
- assertEquals(loc2.getAllConfig(false).get("myconfkey"), "myconfval2");
+ assertEquals(loc2.config().getLocalBag().getStringKey("myconfkey"), "myconfval2");
}
// TODO Fails because PlanInterpretationContext constructor throws NPE on location's value (using ImmutableMap).
[8/9] incubator-brooklyn git commit: Configurable.config():
incorporate review comments
Posted by al...@apache.org.
Configurable.config(): incorporate review comments
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/1ed5484e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/1ed5484e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/1ed5484e
Branch: refs/heads/master
Commit: 1ed5484e07b580e1daca7cbd3ce8ba9f9c2243fd
Parents: 73c4985
Author: Aled Sage <al...@gmail.com>
Authored: Thu Jan 8 23:04:09 2015 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Feb 18 11:02:35 2015 +0000
----------------------------------------------------------------------
.../java/brooklyn/basic/BrooklynObject.java | 57 +-----------------
.../java/brooklyn/entity/basic/EntityLocal.java | 2 +-
.../brooklyn/entity/trait/Configurable.java | 59 ++++++++++++++++++-
.../brooklyn/basic/BasicConfigurableObject.java | 55 +++++++++++++++---
.../catalog/internal/CatalogItemDo.java | 6 ++
.../internal/CatalogItemDtoAbstract.java | 8 ++-
.../access/PortForwardManagerClient.java | 10 ++++
...DynamicClusterWithAvailabilityZonesTest.java | 1 +
.../brooklyn/util/internal/FlagUtilsTest.java | 45 ++++++++++++++-
.../brooklyn/camp/brooklyn/ObjectsYamlTest.java | 61 +++++++++++++++++---
10 files changed, 230 insertions(+), 74 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/api/src/main/java/brooklyn/basic/BrooklynObject.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/BrooklynObject.java b/api/src/main/java/brooklyn/basic/BrooklynObject.java
index 798d454..cb80695 100644
--- a/api/src/main/java/brooklyn/basic/BrooklynObject.java
+++ b/api/src/main/java/brooklyn/basic/BrooklynObject.java
@@ -22,18 +22,15 @@ import java.util.Set;
import javax.annotation.Nonnull;
-import brooklyn.config.ConfigKey;
-import brooklyn.config.ConfigKey.HasConfigKey;
+import brooklyn.entity.trait.Configurable;
import brooklyn.entity.trait.Identifiable;
-import brooklyn.management.Task;
-import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableMap;
/**
* Super-type of entity, location, policy and enricher.
*/
-public interface BrooklynObject extends Identifiable {
+public interface BrooklynObject extends Identifiable, Configurable {
/**
* A display name; recommended to be a concise single-line description.
@@ -67,8 +64,6 @@ public interface BrooklynObject extends Identifiable {
@Deprecated
TagSupport getTagSupport();
- ConfigurationSupport config();
-
public interface TagSupport {
/**
* @return An immutable copy of the set of tags on this entity.
@@ -85,52 +80,4 @@ public interface BrooklynObject extends Identifiable {
boolean removeTag(@Nonnull Object tag);
}
-
- @Beta
- public interface ConfigurationSupport {
-
- /**
- * Gets the given configuration value for this entity, in the following order of preference:
- * <ol>
- * <li> value (including null) explicitly set on the entity
- * <li> value (including null) explicitly set on an ancestor (inherited)
- * <li> a default value (including null) on the best equivalent static key of the same name declared on the entity
- * (where best equivalence is defined as preferring a config key which extends another,
- * as computed in EntityDynamicType.getConfigKeys)
- * <li> a default value (including null) on the key itself
- * <li> null
- * </ol>
- */
- <T> T get(ConfigKey<T> key);
-
- /**
- * @see {@link #getConfig(ConfigKey)}
- */
- <T> T get(HasConfigKey<T> key);
-
- /**
- * Sets the config to the given value.
- */
- <T> T set(ConfigKey<T> key, T val);
-
- /**
- * @see {@link #setConfig(HasConfigKey, Object)}
- */
- <T> T set(HasConfigKey<T> key, T val);
-
- /**
- * Sets the config to the value returned by the task.
- *
- * Returns immediately without blocking; subsequent calls to {@link #getConfig(ConfigKey)}
- * will execute the task, and block until the task completes.
- *
- * @see {@link #setConfig(ConfigKey, Object)}
- */
- <T> T set(ConfigKey<T> key, Task<T> val);
-
- /**
- * @see {@link #setConfig(ConfigKey, Task)}
- */
- <T> T set(HasConfigKey<T> key, Task<T> val);
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/api/src/main/java/brooklyn/entity/basic/EntityLocal.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/basic/EntityLocal.java b/api/src/main/java/brooklyn/entity/basic/EntityLocal.java
index 266e572..dd7affc 100644
--- a/api/src/main/java/brooklyn/entity/basic/EntityLocal.java
+++ b/api/src/main/java/brooklyn/entity/basic/EntityLocal.java
@@ -48,7 +48,7 @@ import com.google.common.base.Function;
* FIXME Add {@link setAttribute(AttributeSensorAndConfigKey<?,T>)} back in if/when move it back,
* or if we extract an interface for AttributeSensorAndConfigKey.
*/
-public interface EntityLocal extends Entity, Configurable {
+public interface EntityLocal extends Entity {
// FIXME Rename to something other than EntityLocal.
// Separate out what is specific to "local jvm", and what is here for an SPI rather than API.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/api/src/main/java/brooklyn/entity/trait/Configurable.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/trait/Configurable.java b/api/src/main/java/brooklyn/entity/trait/Configurable.java
index 11f22ae..84f1922 100644
--- a/api/src/main/java/brooklyn/entity/trait/Configurable.java
+++ b/api/src/main/java/brooklyn/entity/trait/Configurable.java
@@ -19,6 +19,10 @@
package brooklyn.entity.trait;
import brooklyn.config.ConfigKey;
+import brooklyn.config.ConfigKey.HasConfigKey;
+import brooklyn.management.Task;
+
+import com.google.common.annotations.Beta;
/**
* Something that has mutable config, such as an entity or policy.
@@ -30,7 +34,60 @@ public interface Configurable {
// FIXME Moved from core project to api project, as part of moving EntityLocal.
// (though maybe it's fine here?)
- /** returns the old value, or null if there was not one */
+ /**
+ * @return the old value, or null if there was not one
+ * @deprecated since 0.7.0; use {@link ConfigurationSupport#set(ConfigKey, Object)}, such as {@code config().set(key, val)}
+ */
+ @Deprecated
public <T> T setConfig(ConfigKey<T> key, T val);
+ ConfigurationSupport config();
+
+ @Beta
+ public interface ConfigurationSupport {
+
+ /**
+ * Gets the given configuration value for this entity, in the following order of preference:
+ * <ol>
+ * <li> value (including null) explicitly set on the entity
+ * <li> value (including null) explicitly set on an ancestor (inherited)
+ * <li> a default value (including null) on the best equivalent static key of the same name declared on the entity
+ * (where best equivalence is defined as preferring a config key which extends another,
+ * as computed in EntityDynamicType.getConfigKeys)
+ * <li> a default value (including null) on the key itself
+ * <li> null
+ * </ol>
+ */
+ <T> T get(ConfigKey<T> key);
+
+ /**
+ * @see {@link #getConfig(ConfigKey)}
+ */
+ <T> T get(HasConfigKey<T> key);
+
+ /**
+ * Sets the config to the given value.
+ */
+ <T> T set(ConfigKey<T> key, T val);
+
+ /**
+ * @see {@link #setConfig(HasConfigKey, Object)}
+ */
+ <T> T set(HasConfigKey<T> key, T val);
+
+ /**
+ * Sets the config to the value returned by the task.
+ *
+ * Returns immediately without blocking; subsequent calls to {@link #getConfig(ConfigKey)}
+ * will execute the task, and block until the task completes.
+ *
+ * @see {@link #setConfig(ConfigKey, Object)}
+ */
+ <T> T set(ConfigKey<T> key, Task<T> val);
+
+ /**
+ * @see {@link #setConfig(ConfigKey, Task)}
+ */
+ <T> T set(HasConfigKey<T> key, Task<T> val);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java b/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
index f4910f1..5d1bc95 100644
--- a/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
+++ b/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
@@ -20,6 +20,8 @@ package brooklyn.basic;
import brooklyn.camp.brooklyn.api.HasBrooklynManagementContext;
import brooklyn.config.ConfigKey;
+import brooklyn.config.ConfigKey.HasConfigKey;
+import brooklyn.config.ConfigMap;
import brooklyn.entity.trait.Configurable;
import brooklyn.entity.trait.Identifiable;
import brooklyn.management.ManagementContext;
@@ -44,10 +46,10 @@ public class BasicConfigurableObject implements Configurable, Identifiable, Mana
private String id = Identifiers.makeRandomId(8);
private volatile ManagementContext managementContext;
- private ConfigBag config;
-
+ private BasicConfigurationSupport config;
+
public BasicConfigurableObject() {
- config = ConfigBag.newInstance();
+ config = new BasicConfigurationSupport();
}
@Override
@@ -65,14 +67,53 @@ public class BasicConfigurableObject implements Configurable, Identifiable, Mana
}
@Override
+ public ConfigurationSupport config() {
+ return config;
+ }
+
+ @Override
+ @Deprecated
public <T> T setConfig(ConfigKey<T> key, T value) {
- T old = config.get(key);
- config.configure(key, value);
- return old;
+ return config().set(key, value);
}
public <T> T getConfig(ConfigKey<T> key) {
- return config.get(key);
+ return config().get(key);
}
+ private static class BasicConfigurationSupport implements ConfigurationSupport {
+ private final ConfigBag config = ConfigBag.newInstance();
+
+ @Override
+ public <T> T get(ConfigKey<T> key) {
+ return config.get(key);
+ }
+
+ @Override
+ public <T> T get(HasConfigKey<T> key) {
+ return get(key.getConfigKey());
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, T val) {
+ T old = config.get(key);
+ config.configure(key, val);
+ return old;
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, T val) {
+ return set(key.getConfigKey(), val);
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, Task<T> val) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, Task<T> val) {
+ return set(key.getConfigKey(), val);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
index 494bfb0..b38d560 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -25,6 +25,7 @@ import javax.annotation.Nullable;
import brooklyn.basic.BrooklynObjectInternal;
import brooklyn.catalog.CatalogItem;
+import brooklyn.config.ConfigKey;
import brooklyn.entity.rebind.RebindSupport;
import brooklyn.management.ManagementContext;
import brooklyn.mementos.CatalogItemMemento;
@@ -56,6 +57,11 @@ public class CatalogItemDo<T,SpecT> implements CatalogItem<T,SpecT>, BrooklynObj
}
@Override
+ public <U> U setConfig(ConfigKey<U> key, U val) {
+ return config().set(key, val);
+ }
+
+ @Override
public CatalogItemType getCatalogItemType() {
return itemDto.getCatalogItemType();
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
index cf23c26..521f4d6 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
@@ -31,6 +31,7 @@ import org.slf4j.LoggerFactory;
import brooklyn.basic.AbstractBrooklynObject;
import brooklyn.catalog.CatalogItem;
+import brooklyn.config.ConfigKey;
import brooklyn.entity.rebind.BasicCatalogItemRebindSupport;
import brooklyn.entity.rebind.RebindSupport;
import brooklyn.mementos.CatalogItemMemento;
@@ -69,7 +70,12 @@ public abstract class CatalogItemDtoAbstract<T, SpecT> extends AbstractBrooklynO
public ConfigurationSupportInternal config() {
throw new UnsupportedOperationException();
}
-
+
+ @Override
+ public <U> U setConfig(ConfigKey<U> key, U val) {
+ return config().set(key, val);
+ }
+
@Override
public String getId() {
return getCatalogItemId();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/core/src/main/java/brooklyn/location/access/PortForwardManagerClient.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/access/PortForwardManagerClient.java b/core/src/main/java/brooklyn/location/access/PortForwardManagerClient.java
index 7b7c091..ddd1040 100644
--- a/core/src/main/java/brooklyn/location/access/PortForwardManagerClient.java
+++ b/core/src/main/java/brooklyn/location/access/PortForwardManagerClient.java
@@ -387,4 +387,14 @@ public class PortForwardManagerClient implements PortForwardManager {
public TagSupport getTagSupport() {
return getDelegate().getTagSupport();
}
+
+ @Override
+ public <T> T setConfig(ConfigKey<T> key, T val) {
+ return getDelegate().setConfig(key, val);
+ }
+
+ @Override
+ public ConfigurationSupport config() {
+ return getDelegate().config();
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java b/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java
index dc16335..c2b8dec 100644
--- a/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java
+++ b/core/src/test/java/brooklyn/entity/group/DynamicClusterWithAvailabilityZonesTest.java
@@ -33,6 +33,7 @@ import org.testng.annotations.Test;
import brooklyn.entity.BrooklynAppUnitTestSupport;
import brooklyn.entity.Entity;
+import brooklyn.entity.basic.EntityLocal;
import brooklyn.entity.basic.EntityPredicates;
import brooklyn.entity.group.zoneaware.ProportionalZoneFailureDetector;
import brooklyn.entity.proxying.EntitySpec;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/core/src/test/java/brooklyn/util/internal/FlagUtilsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/util/internal/FlagUtilsTest.java b/core/src/test/java/brooklyn/util/internal/FlagUtilsTest.java
index 2510eda..3dda990 100644
--- a/core/src/test/java/brooklyn/util/internal/FlagUtilsTest.java
+++ b/core/src/test/java/brooklyn/util/internal/FlagUtilsTest.java
@@ -33,9 +33,11 @@ import org.slf4j.LoggerFactory;
import org.testng.annotations.Test;
import brooklyn.config.ConfigKey;
+import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.entity.basic.ConfigKeys;
import brooklyn.entity.trait.Configurable;
import brooklyn.event.basic.BasicConfigKey;
+import brooklyn.management.Task;
import brooklyn.util.collections.MutableMap;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.flags.FlagUtils;
@@ -264,8 +266,49 @@ public class FlagUtilsTest {
int f1;
ConfigBag bag = new ConfigBag();
+ BasicConfigurationSupport configSupport = new BasicConfigurationSupport();
+
+ @Override
+ public ConfigurationSupport config() {
+ return configSupport;
+ }
+
public <T> T setConfig(ConfigKey<T> key, T val) {
- return bag.put(key, val);
+ return config().set(key, val);
+ }
+
+ private class BasicConfigurationSupport implements ConfigurationSupport {
+ @Override
+ public <T> T get(ConfigKey<T> key) {
+ return bag.get(key);
+ }
+
+ @Override
+ public <T> T get(HasConfigKey<T> key) {
+ return get(key.getConfigKey());
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, T val) {
+ T old = bag.get(key);
+ bag.configure(key, val);
+ return old;
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, T val) {
+ return set(key.getConfigKey(), val);
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, Task<T> val) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, Task<T> val) {
+ return set(key.getConfigKey(), val);
+ }
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ed5484e/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/ObjectsYamlTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/ObjectsYamlTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/ObjectsYamlTest.java
index 21eb7a6..6f5a968 100644
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/ObjectsYamlTest.java
+++ b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/ObjectsYamlTest.java
@@ -26,9 +26,8 @@ import org.slf4j.LoggerFactory;
import org.testng.Assert;
import org.testng.annotations.Test;
-import com.google.common.collect.Lists;
-
import brooklyn.config.ConfigKey;
+import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.entity.Entity;
import brooklyn.entity.basic.ConfigKeys;
import brooklyn.entity.basic.Entities;
@@ -36,10 +35,14 @@ import brooklyn.entity.proxy.ProxySslConfig;
import brooklyn.entity.trait.Configurable;
import brooklyn.management.ManagementContext;
import brooklyn.management.ManagementContextInjectable;
+import brooklyn.management.Task;
import brooklyn.test.entity.TestEntity;
+import brooklyn.util.config.ConfigBag;
import brooklyn.util.flags.SetFromFlag;
import brooklyn.util.flags.TypeCoercions;
+import com.google.common.collect.Lists;
+
@Test
public class ObjectsYamlTest extends AbstractYamlTest {
private static final Logger log = LoggerFactory.getLogger(ObjectsYamlTest.class);
@@ -81,7 +84,8 @@ public class ObjectsYamlTest extends AbstractYamlTest {
private Integer number;
private Object object;
private Double value;
-
+ BasicConfigurationSupport configSupport = new BasicConfigurationSupport();
+
public ConfigurableObject() { }
public String getString() { return string; }
@@ -95,11 +99,52 @@ public class ObjectsYamlTest extends AbstractYamlTest {
@Override
public <T> T setConfig(ConfigKey<T> key, T value) {
- log.info("Detected configuration injection for {}: {}", key.getName(), value);
- configKeys.add(key.getName());
- if ("config.number".equals(key.getName())) number = TypeCoercions.coerce(value, Integer.class);
- if ("config.object".equals(key.getName())) object = value;
- return value;
+ return config().set(key, value);
+ }
+
+ @Override
+ public ConfigurationSupport config() {
+ return configSupport;
+ }
+
+ private class BasicConfigurationSupport implements ConfigurationSupport {
+ private final ConfigBag bag = new ConfigBag();
+
+ @Override
+ public <T> T get(ConfigKey<T> key) {
+ return bag.get(key);
+ }
+
+ @Override
+ public <T> T get(HasConfigKey<T> key) {
+ return get(key.getConfigKey());
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, T val) {
+ log.info("Detected configuration injection for {}: {}", key.getName(), val);
+ configKeys.add(key.getName());
+ if ("config.number".equals(key.getName())) number = TypeCoercions.coerce(val, Integer.class);
+ if ("config.object".equals(key.getName())) object = val;
+ T old = bag.get(key);
+ bag.configure(key, val);
+ return old;
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, T val) {
+ return set(key.getConfigKey(), val);
+ }
+
+ @Override
+ public <T> T set(ConfigKey<T> key, Task<T> val) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public <T> T set(HasConfigKey<T> key, Task<T> val) {
+ return set(key.getConfigKey(), val);
+ }
}
}
[2/9] incubator-brooklyn git commit: config: cleanup usage + deprecate
Posted by al...@apache.org.
config: cleanup usage + deprecate
- Deprecates ConfigMap.getConfig(HasConfigKey, defaultVal) and
ConfigMap.getConfig(ConfigKey, defaultVal).
- Remove more usages of deprecated methods
- Declare
- EntityTransientCopyInternal: mark methods as deprecated, and adds
TODO about feeds() / config() which return objects that have mutator
methods.
- AbstractEntityAdjunct.configsInternal and .adjunctType: deprecate,
so can make private or change in future version.
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/b944f83f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/b944f83f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/b944f83f
Branch: refs/heads/master
Commit: b944f83f67872e717c7cd66bdab93d7560dd65f3
Parents: b12e08d
Author: Aled Sage <al...@gmail.com>
Authored: Tue Feb 10 08:38:21 2015 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Feb 18 11:02:35 2015 +0000
----------------------------------------------------------------------
.../java/brooklyn/entity/basic/Entities.java | 7 ++---
.../basic/EntityTransientCopyInternal.java | 10 ++++---
.../location/basic/AbstractLocation.java | 2 +-
.../policy/basic/AbstractEntityAdjunct.java | 9 ++++++-
.../policy/autoscaling/AutoScalerPolicy.java | 2 +-
.../main/java/brooklyn/config/ConfigMap.java | 28 ++++++++++++++------
6 files changed, 40 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b944f83f/core/src/main/java/brooklyn/entity/basic/Entities.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/Entities.java b/core/src/main/java/brooklyn/entity/basic/Entities.java
index cdf1a01..f8fff24 100644
--- a/core/src/main/java/brooklyn/entity/basic/Entities.java
+++ b/core/src/main/java/brooklyn/entity/basic/Entities.java
@@ -42,6 +42,7 @@ import java.util.concurrent.atomic.AtomicReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import brooklyn.basic.BrooklynObjectInternal;
import brooklyn.config.BrooklynProperties;
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
@@ -316,7 +317,7 @@ public class Entities {
ConfigKey<?> realKey = e.getEntityType().getConfigKey(it.getName());
if (realKey!=null) it = realKey;
- Maybe<Object> mv = ((EntityInternal)e).getConfigMap().getConfigRaw(it, false);
+ Maybe<Object> mv = ((EntityInternal)e).config().getLocalRaw(it);
if (!isTrivial(mv)) {
Object v = mv.get();
out.append(currentIndentation+tab+tab+it.getName());
@@ -456,7 +457,7 @@ public class Entities {
out.append(currentIndentation+enr.toString()+"\n");
for (ConfigKey<?> key : sortConfigKeys(enr.getEnricherType().getConfigKeys())) {
- Maybe<Object> val = ((AbstractEnricher)enr).getConfigMap().getConfigRaw(key, true);
+ Maybe<Object> val = ((BrooklynObjectInternal)enr).config().getRaw(key);
if (!isTrivial(val)) {
out.append(currentIndentation+tab+tab+key);
out.append(" = ");
@@ -487,7 +488,7 @@ public class Entities {
out.append(currentIndentation+pol.toString()+"\n");
for (ConfigKey<?> key : sortConfigKeys(pol.getPolicyType().getConfigKeys())) {
- Maybe<Object> val = ((AbstractPolicy)pol).getConfigMap().getConfigRaw(key, true);
+ Maybe<Object> val = ((BrooklynObjectInternal)pol).config().getRaw(key);
if (!isTrivial(val)) {
out.append(currentIndentation+tab+tab+key);
out.append(" = ");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b944f83f/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java b/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
index ef2a9ee..14b9736 100644
--- a/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
+++ b/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
@@ -60,6 +60,8 @@ import com.google.common.annotations.Beta;
@Beta
public interface EntityTransientCopyInternal {
+ // TODO For feeds() and config(), need to ensure mutator methods on returned object are not invoked.
+
// from Entity
String getId();
@@ -95,11 +97,11 @@ public interface EntityTransientCopyInternal {
// from EntityInternal:
- EntityConfigMap getConfigMap();
- Map<ConfigKey<?>,Object> getAllConfig();
+ @Deprecated EntityConfigMap getConfigMap();
+ @Deprecated Map<ConfigKey<?>,Object> getAllConfig();
// for rebind mainly:
- ConfigBag getAllConfigBag();
- ConfigBag getLocalConfigBag();
+ @Deprecated ConfigBag getAllConfigBag();
+ @Deprecated ConfigBag getLocalConfigBag();
@SuppressWarnings("rawtypes")
Map<AttributeSensor, Object> getAllAttributes();
EntityManagementSupport getManagementSupport();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b944f83f/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 9513cde..a576a60 100644
--- a/core/src/main/java/brooklyn/location/basic/AbstractLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/AbstractLocation.java
@@ -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).config().getBag().getAllConfig());
+ if (p!=null) result.putIfAbsent(((LocationInternal)p).config().getBag());
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b944f83f/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 4488560..bbd589d 100644
--- a/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java
+++ b/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java
@@ -82,10 +82,17 @@ public abstract class AbstractEntityAdjunct extends AbstractBrooklynObject imple
/**
* The config values of this entity. Updating this map should be done
- * via getConfig/setConfig.
+ * via {@link #config()}.
+ *
+ * @deprecated since 0.7.0; use {@link #config()} instead; this field may be made private or deleted in a future release.
*/
+ @Deprecated
protected final ConfigMapImpl configsInternal = new ConfigMapImpl(this);
+ /**
+ * @deprecated since 0.7.0; use {@link #getAdjunctType()} instead; this field may be made private or deleted in a future release.
+ */
+ @Deprecated
protected final AdjunctType adjunctType = new AdjunctType(this);
@SetFromFlag
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b944f83f/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java
----------------------------------------------------------------------
diff --git a/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java b/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java
index 835e9b7..8727f54 100644
--- a/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java
+++ b/policy/src/main/java/brooklyn/policy/autoscaling/AutoScalerPolicy.java
@@ -599,7 +599,7 @@ public class AutoScalerPolicy extends AbstractPolicy {
@Override
public void setEntity(EntityLocal entity) {
- if (!configsInternal.getConfigRaw(RESIZE_OPERATOR, true).isPresentAndNonNull()) {
+ if (!config().getRaw(RESIZE_OPERATOR).isPresentAndNonNull()) {
Preconditions.checkArgument(entity instanceof Resizable, "Provided entity must be an instance of Resizable, because no custom-resizer operator supplied");
}
super.setEntity(entity);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b944f83f/utils/common/src/main/java/brooklyn/config/ConfigMap.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/config/ConfigMap.java b/utils/common/src/main/java/brooklyn/config/ConfigMap.java
index c223b6e..eeb0fd0 100644
--- a/utils/common/src/main/java/brooklyn/config/ConfigMap.java
+++ b/utils/common/src/main/java/brooklyn/config/ConfigMap.java
@@ -29,14 +29,26 @@ public interface ConfigMap {
/** @see #getConfig(ConfigKey, Object), with default value as per the key, or null */
public <T> T getConfig(ConfigKey<T> key);
- /** @see #getConfig(ConfigKey, Object), with default value as per the key, or null */
+
+ /** @see #getConfig(ConfigKey, Object), with default value as per the key, or null */
public <T> T getConfig(HasConfigKey<T> key);
- /** @see #getConfig(ConfigKey, Object), with provided default value if not set */
+
+ /**
+ * @see #getConfig(ConfigKey, Object), with provided default value if not set
+ * @deprecated since 0.7.0; use {@link #getConfig(HasConfigKey)}
+ */
+ @Deprecated
public <T> T getConfig(HasConfigKey<T> key, T defaultValue);
- /** returns value stored against the given key,
+
+ /**
+ * Returns value stored against the given key,
* resolved (if it is a Task, possibly blocking), and coerced to the appropriate type,
* or given default value if not set,
- * unless the default value is null in which case it returns the default*/
+ * unless the default value is null in which case it returns the default.
+ *
+ * @deprecated since 0.7.0; use {@link #getConfig(ConfigKey)}
+ */
+ @Deprecated
public <T> T getConfig(ConfigKey<T> key, T defaultValue);
/** as {@link #getConfigRaw(ConfigKey)} but returning null if not present
@@ -46,13 +58,13 @@ public interface ConfigMap {
/** returns the value stored against the given key,
* <b>not</b> any default,
- * <b>not</b> resolved (and guaranteed non-blocking)
- * and <b>not</b> type-coerced
+ * <b>not</b> resolved (and guaranteed non-blocking),
+ * and <b>not</b> type-coerced.
* @param key key to look up
* @param includeInherited for {@link ConfigMap} instances which have an inheritance hierarchy,
- * whether to traverse it or not; has no effects where there is no inheritance
+ * whether to traverse it or not; has no effects where there is no inheritance
* @return raw, unresolved, uncoerced value of key in map,
- * but <b>not</b> any default on the key
+ * but <b>not</b> any default on the key
*/
public Maybe<Object> getConfigRaw(ConfigKey<?> key, boolean includeInherited);
[6/9] incubator-brooklyn git commit: Config refactor: minor fixes to
javadoc
Posted by al...@apache.org.
Config refactor: minor fixes to javadoc
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/7a4e46b3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/7a4e46b3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/7a4e46b3
Branch: refs/heads/master
Commit: 7a4e46b3ed771f204ba8ca1f10c9d4a6f92d886c
Parents: b944f83
Author: Aled Sage <al...@gmail.com>
Authored: Wed Feb 18 11:02:09 2015 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Feb 18 11:02:35 2015 +0000
----------------------------------------------------------------------
api/src/main/java/brooklyn/entity/trait/Configurable.java | 2 +-
core/src/main/java/brooklyn/location/basic/LocationInternal.java | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7a4e46b3/api/src/main/java/brooklyn/entity/trait/Configurable.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/trait/Configurable.java b/api/src/main/java/brooklyn/entity/trait/Configurable.java
index 84f1922..2f49014 100644
--- a/api/src/main/java/brooklyn/entity/trait/Configurable.java
+++ b/api/src/main/java/brooklyn/entity/trait/Configurable.java
@@ -47,7 +47,7 @@ public interface Configurable {
public interface ConfigurationSupport {
/**
- * Gets the given configuration value for this entity, in the following order of preference:
+ * Gets the given configuration value for this entity, in the following order of precedence:
* <ol>
* <li> value (including null) explicitly set on the entity
* <li> value (including null) explicitly set on an ancestor (inherited)
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7a4e46b3/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 f54d0f1..3d9bc5d 100644
--- a/core/src/main/java/brooklyn/location/basic/LocationInternal.java
+++ b/core/src/main/java/brooklyn/location/basic/LocationInternal.java
@@ -72,7 +72,8 @@ public interface LocationInternal extends BrooklynObjectInternal, Location {
/**
* Returns all config, including that inherited from parents.
- * TODO this method does not respect {@link ConfigInheritance} and so usage is discouraged.
+ *
+ * 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()}
*/
[3/9] incubator-brooklyn git commit: Deprecate *Config methods in
Location/Enricher/Policy
Posted by al...@apache.org.
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 <al...@gmail.com>
Authored: Tue Nov 11 16:50:17 2014 +0000
Committer: Aled Sage <al...@gmail.com>
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;
}
[9/9] incubator-brooklyn git commit: This closes #320
Posted by al...@apache.org.
This closes #320
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/1d1cfe71
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/1d1cfe71
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/1d1cfe71
Branch: refs/heads/master
Commit: 1d1cfe713732292c95ae8fa71771f1bd2c4ff336
Parents: 6c72bd4 7a4e46b
Author: Aled Sage <al...@gmail.com>
Authored: Wed Feb 18 11:31:48 2015 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Feb 18 11:31:48 2015 +0000
----------------------------------------------------------------------
.../java/brooklyn/basic/BrooklynObject.java | 6 +-
api/src/main/java/brooklyn/entity/Entity.java | 26 +-
.../java/brooklyn/entity/basic/EntityLocal.java | 20 +-
.../brooklyn/entity/trait/Configurable.java | 59 +++-
.../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 +
.../brooklyn/basic/BasicConfigurableObject.java | 55 +++-
.../brooklyn/basic/BrooklynObjectInternal.java | 67 +++++
.../catalog/internal/CatalogItemDo.java | 14 +
.../internal/CatalogItemDtoAbstract.java | 14 +
.../brooklyn/entity/basic/AbstractEntity.java | 280 ++++++++++++++-----
.../java/brooklyn/entity/basic/Entities.java | 9 +-
.../brooklyn/entity/basic/EntityInternal.java | 23 +-
.../basic/EntityTransientCopyInternal.java | 10 +-
.../group/AbstractMembershipTrackingPolicy.java | 2 +-
.../entity/proxying/InternalPolicyFactory.java | 4 +-
.../rebind/BasicLocationRebindSupport.java | 7 +-
.../entity/rebind/dto/MementosGenerators.java | 2 +-
.../access/PortForwardManagerClient.java | 10 +
.../location/basic/AbstractLocation.java | 175 +++++++++---
.../FixedListMachineProvisioningLocation.java | 3 +-
.../LocalhostMachineProvisioningLocation.java | 2 +-
.../location/basic/LocationInternal.java | 14 +-
.../brooklyn/location/basic/MultiLocation.java | 2 +-
.../location/basic/SimulatedLocation.java | 2 +-
.../location/basic/SshMachineLocation.java | 7 +-
...bstractCloudMachineProvisioningLocation.java | 2 +-
.../internal/LocalLocationManager.java | 3 +-
.../policy/basic/AbstractEntityAdjunct.java | 128 ++++++++-
.../brooklyn/policy/basic/ConfigMapImpl.java | 7 +
.../java/brooklyn/util/task/ssh/SshTasks.java | 2 +-
.../enricher/basic/BasicEnricherTest.java | 4 +-
.../enricher/basic/EnricherConfigTest.java | 8 +-
...DynamicClusterWithAvailabilityZonesTest.java | 3 +-
.../entity/rebind/RebindLocationTest.java | 2 +-
.../entity/rebind/RebindPolicyTest.java | 2 +-
.../basic/ByonLocationResolverTest.java | 22 +-
.../basic/HostLocationResolverTest.java | 2 +-
.../basic/LocalhostLocationResolverTest.java | 16 +-
.../location/basic/LocationConfigTest.java | 32 +--
.../SingleMachineLocationResolverTest.java | 2 +-
.../brooklyn/policy/basic/BasicPolicyTest.java | 4 +-
.../brooklyn/policy/basic/PolicyConfigTest.java | 8 +-
.../brooklyn/util/internal/FlagUtilsTest.java | 45 ++-
...lusterDatabaseExampleAppIntegrationTest.java | 4 +-
.../jclouds/JcloudsByonLocationResolver.java | 2 +-
.../location/jclouds/JcloudsLocation.java | 31 +-
.../jclouds/JcloudsSshMachineLocation.java | 4 +-
.../JcloudsByonLocationResolverAwsLiveTest.java | 4 +-
.../jclouds/JcloudsLocationResolverTest.java | 20 +-
.../location/jclouds/LiveTestEntity.java | 3 +-
.../jclouds/RebindJcloudsLocationLiveTest.java | 4 +-
.../jclouds/RebindJcloudsLocationTest.java | 2 +-
.../policy/autoscaling/AutoScalerPolicy.java | 16 +-
.../AutoScalerPolicyReconfigurationTest.java | 16 +-
.../software/MachineLifecycleEffectorTasks.java | 2 +-
.../entity/software/SshEffectorTasks.java | 2 +-
.../entity/dns/AbstractGeoDnsServiceTest.java | 2 +-
.../camp/brooklyn/LocationsYamlTest.java | 6 +-
.../brooklyn/camp/brooklyn/ObjectsYamlTest.java | 61 +++-
.../main/java/brooklyn/cli/CloudExplorer.java | 2 +-
.../webcluster/SinusoidalLoadGenerator.java | 8 +-
.../rest/resources/PolicyConfigResource.java | 7 +-
.../rest/transform/LocationTransformer.java | 22 +-
.../rest/resources/ApplicationResourceTest.java | 6 +-
.../rest/util/EntityLocationUtilsTest.java | 3 +-
.../main/java/brooklyn/config/ConfigMap.java | 28 +-
68 files changed, 1093 insertions(+), 318 deletions(-)
----------------------------------------------------------------------
[7/9] incubator-brooklyn git commit: fixes for non-inherited config
Posted by al...@apache.org.
fixes for non-inherited config
- Fix Location’s getRaw(ConfigKey)
- Add comments
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/b12e08de
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/b12e08de
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/b12e08de
Branch: refs/heads/master
Commit: b12e08de992a00daad4178325f25f8d41d705313
Parents: 1ed5484
Author: Aled Sage <al...@gmail.com>
Authored: Tue Feb 10 08:10:23 2015 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Feb 18 11:02:35 2015 +0000
----------------------------------------------------------------------
.../brooklyn/basic/BrooklynObjectInternal.java | 5 ++++
.../location/basic/AbstractLocation.java | 24 +++++++++++---------
2 files changed, 18 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b12e08de/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java b/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
index 9575246..6115dd3 100644
--- a/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
+++ b/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
@@ -44,6 +44,11 @@ public interface BrooklynObjectInternal extends BrooklynObject, Rebindable {
/**
* Returns a read-only view of all the config key/value pairs on this entity, backed by a string-based map,
* including config names that did not match anything on this entity.
+ *
+ * TODO This method gives no information about which config is inherited versus local;
+ * this means {@link ConfigKey#getInheritance()} cannot be respected. This is an unsolvable problem
+ * for "config names that did not match anything on this entity". Therefore consider using
+ * alternative getters.
*/
@Beta
ConfigBag getBag();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b12e08de/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 c6dde27..9513cde 100644
--- a/core/src/main/java/brooklyn/location/basic/AbstractLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/AbstractLocation.java
@@ -413,7 +413,7 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements
@Override
public Maybe<Object> getRaw(ConfigKey<?> key) {
if (hasConfig(key, false)) return Maybe.of(getLocalBag().getStringKey(key.getName()));
- if (getParent() != null) return ((AbstractLocation)getParent()).config().getRaw(key);
+ if (getParent() != null && isInherited(key)) return ((LocationInternal)getParent()).config().getRaw(key);
return Maybe.absent();
}
@@ -455,6 +455,16 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements
return getLocalBag().containsKey(key);
}
}
+
+ private boolean isInherited(ConfigKey<?> key) {
+ ConfigInheritance inheritance = key.getInheritance();
+ if (inheritance==null) inheritance = getDefaultInheritance();
+ return inheritance.isInherited(key, getParent(), AbstractLocation.this);
+ }
+
+ private ConfigInheritance getDefaultInheritance() {
+ return ConfigInheritance.ALWAYS;
+ }
}
@Override
@@ -473,19 +483,11 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements
return config.hasConfig(key, includeInherited);
}
- private boolean isInherited(ConfigKey<?> key) {
- ConfigInheritance inheritance = key.getInheritance();
- if (inheritance==null) inheritance = getDefaultInheritance();
- return inheritance.isInherited(key, getParent(), this);
- }
-
- private ConfigInheritance getDefaultInheritance() {
- return ConfigInheritance.ALWAYS;
- }
-
@Override
@Deprecated
public Map<String,Object> getAllConfig(boolean includeInherited) {
+ // TODO Have no information about what to include/exclude inheritance wise.
+ // however few things use getAllConfigBag()
ConfigBag bag = (includeInherited ? config().getBag() : config().getLocalBag());
return bag.getAllConfig();
}
[4/9] incubator-brooklyn git commit: Use {location, policy,
enricher}.config(), instead of newly deprecated methods
Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/usage/cli/src/main/java/brooklyn/cli/CloudExplorer.java
----------------------------------------------------------------------
diff --git a/usage/cli/src/main/java/brooklyn/cli/CloudExplorer.java b/usage/cli/src/main/java/brooklyn/cli/CloudExplorer.java
index 8f2f375..3dd8462 100644
--- a/usage/cli/src/main/java/brooklyn/cli/CloudExplorer.java
+++ b/usage/cli/src/main/java/brooklyn/cli/CloudExplorer.java
@@ -245,7 +245,7 @@ public class CloudExplorer {
failIfArguments();
ComputeService computeService = loc.getComputeService();
- Template template = loc.buildTemplate(computeService, loc.getAllConfigBag());
+ Template template = loc.buildTemplate(computeService, loc.config().getBag());
Image image = template.getImage();
Hardware hardware = template.getHardware();
org.jclouds.domain.Location location = template.getLocation();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/usage/qa/src/test/java/brooklyn/qa/longevity/webcluster/SinusoidalLoadGenerator.java
----------------------------------------------------------------------
diff --git a/usage/qa/src/test/java/brooklyn/qa/longevity/webcluster/SinusoidalLoadGenerator.java b/usage/qa/src/test/java/brooklyn/qa/longevity/webcluster/SinusoidalLoadGenerator.java
index 0d4d9fd..392b976 100644
--- a/usage/qa/src/test/java/brooklyn/qa/longevity/webcluster/SinusoidalLoadGenerator.java
+++ b/usage/qa/src/test/java/brooklyn/qa/longevity/webcluster/SinusoidalLoadGenerator.java
@@ -57,10 +57,10 @@ public class SinusoidalLoadGenerator extends AbstractEnricher {
}
public SinusoidalLoadGenerator(AttributeSensor<Double> target, long publishPeriodMs, long sinPeriodMs, double sinAmplitude) {
- setConfig(TARGET, target);
- setConfig(PUBLISH_PERIOD_MS, publishPeriodMs);
- setConfig(SIN_PERIOD_MS, sinPeriodMs);
- setConfig(SIN_AMPLITUDE, sinAmplitude);
+ config().set(TARGET, target);
+ config().set(PUBLISH_PERIOD_MS, publishPeriodMs);
+ config().set(SIN_PERIOD_MS, sinPeriodMs);
+ config().set(SIN_AMPLITUDE, sinAmplitude);
this.executor = Executors.newSingleThreadScheduledExecutor();
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyConfigResource.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyConfigResource.java b/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyConfigResource.java
index 5c2a1ba..842be53 100644
--- a/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyConfigResource.java
+++ b/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyConfigResource.java
@@ -23,6 +23,7 @@ import java.util.Map;
import javax.ws.rs.core.Response;
+import brooklyn.basic.BrooklynObjectInternal;
import brooklyn.config.ConfigKey;
import brooklyn.entity.Entity;
import brooklyn.entity.basic.EntityLocal;
@@ -59,10 +60,10 @@ public class PolicyConfigResource extends AbstractBrooklynRestResource implement
public Map<String, Object> batchConfigRead(String application, String entityToken, String policyToken) {
// TODO: add test
Policy policy = brooklyn().getPolicy(application, entityToken, policyToken);
- Map<ConfigKey<?>, Object> source = policy.getAllConfig();
+ Map<String, Object> source = ((BrooklynObjectInternal)policy).config().getBag().getAllConfig();
Map<String, Object> result = Maps.newLinkedHashMap();
- for (Map.Entry<ConfigKey<?>, Object> ek : source.entrySet()) {
- result.put(ek.getKey().getName(), getStringValueForDisplay(brooklyn(), policy, ek.getValue()));
+ for (Map.Entry<String, Object> ek : source.entrySet()) {
+ result.put(ek.getKey(), getStringValueForDisplay(brooklyn(), policy, ek.getValue()));
}
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/usage/rest-server/src/main/java/brooklyn/rest/transform/LocationTransformer.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/main/java/brooklyn/rest/transform/LocationTransformer.java b/usage/rest-server/src/main/java/brooklyn/rest/transform/LocationTransformer.java
index a77e386..accb59a 100644
--- a/usage/rest-server/src/main/java/brooklyn/rest/transform/LocationTransformer.java
+++ b/usage/rest-server/src/main/java/brooklyn/rest/transform/LocationTransformer.java
@@ -57,14 +57,14 @@ public class LocationTransformer {
if (mgmt != null && (level==LocationDetailLevel.FULL_EXCLUDING_SECRET || level==LocationDetailLevel.FULL_INCLUDING_SECRET)) {
LocationDefinition ld = new BasicLocationDefinition(id, locationSpec.getName(), locationSpec.getSpec(), locationSpec.getConfig());
Location ll = mgmt.getLocationRegistry().resolve(ld, false, null).orNull();
- if (ll!=null) config = ll.getAllConfig(true);
+ if (ll!=null) config = ((LocationInternal)ll).config().getBag().getAllConfig();
} else if (level==LocationDetailLevel.LOCAL_EXCLUDING_SECRET) {
// get displayName
if (!config.containsKey(LocationConfigKeys.DISPLAY_NAME.getName()) && mgmt!=null) {
LocationDefinition ld = new BasicLocationDefinition(id, locationSpec.getName(), locationSpec.getSpec(), locationSpec.getConfig());
Location ll = mgmt.getLocationRegistry().resolve(ld, false, null).orNull();
if (ll!=null) {
- Map<String, Object> configExtra = ll.getAllConfig(true);
+ Map<String, Object> configExtra = ((LocationInternal)ll).config().getBag().getAllConfig();
if (configExtra.containsKey(LocationConfigKeys.DISPLAY_NAME.getName())) {
ConfigBag configNew = ConfigBag.newInstance(config);
configNew.configure(LocationConfigKeys.DISPLAY_NAME, (String)configExtra.get(LocationConfigKeys.DISPLAY_NAME.getName()));
@@ -93,13 +93,13 @@ public class LocationTransformer {
Map<String, Object> config = l.getConfig();
if (mgmt != null && (level==LocationDetailLevel.FULL_EXCLUDING_SECRET || level==LocationDetailLevel.FULL_INCLUDING_SECRET)) {
Location ll = mgmt.getLocationRegistry().resolve(l, false, null).orNull();
- if (ll!=null) config = ll.getAllConfig(true);
+ if (ll!=null) config = ((LocationInternal)ll).config().getBag().getAllConfig();
} else if (level==LocationDetailLevel.LOCAL_EXCLUDING_SECRET) {
// get displayName
if (mgmt != null && !config.containsKey(LocationConfigKeys.DISPLAY_NAME.getName())) {
Location ll = mgmt.getLocationRegistry().resolve(l, false, null).orNull();
if (ll!=null) {
- Map<String, Object> configExtra = ll.getAllConfig(true);
+ Map<String, Object> configExtra = ((LocationInternal)ll).config().getBag().getAllConfig();
if (configExtra.containsKey(LocationConfigKeys.DISPLAY_NAME.getName())) {
ConfigBag configNew = ConfigBag.newInstance(config);
configNew.configure(LocationConfigKeys.DISPLAY_NAME, (String)configExtra.get(LocationConfigKeys.DISPLAY_NAME.getName()));
@@ -137,8 +137,9 @@ public class LocationTransformer {
while (lp!=null && (spec==null || specId==null)) {
// walk parent locations
// TODO not sure this is the best strategy, or if it's needed, as the spec config is inherited anyway...
- if (spec==null)
- spec = Strings.toString( lp.getAllConfig(true).get(LocationInternal.ORIGINAL_SPEC.getName()) );
+ if (spec==null) {
+ spec = Strings.toString( ((LocationInternal)lp).config().getRaw(LocationInternal.ORIGINAL_SPEC) );
+ }
if (specId==null) {
LocationDefinition ld = null;
// prefer looking it up by name as this loads the canonical definition
@@ -159,11 +160,16 @@ public class LocationTransformer {
if (ll!=null) specId = ll.getId();
}
- Map<String, Object> configOrig = l.getAllConfig(level!=LocationDetailLevel.LOCAL_EXCLUDING_SECRET);
+ Map<String, Object> configOrig;
+ if (level == LocationDetailLevel.LOCAL_EXCLUDING_SECRET) {
+ configOrig = MutableMap.copyOf(((LocationInternal)l).config().getLocalBag().getAllConfig());
+ } else {
+ configOrig = MutableMap.copyOf(((LocationInternal)l).config().getBag().getAllConfig());
+ }
if (level==LocationDetailLevel.LOCAL_EXCLUDING_SECRET) {
// for LOCAL, also get the display name
if (!configOrig.containsKey(LocationConfigKeys.DISPLAY_NAME.getName())) {
- Map<String, Object> configExtra = l.getAllConfig(true);
+ Map<String, Object> configExtra = ((LocationInternal)l).config().getBag().getAllConfig();
if (configExtra.containsKey(LocationConfigKeys.DISPLAY_NAME.getName()))
configOrig.put(LocationConfigKeys.DISPLAY_NAME.getName(), configExtra.get(LocationConfigKeys.DISPLAY_NAME.getName()));
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceTest.java b/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceTest.java
index a6c26ab..21d9bac 100644
--- a/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceTest.java
+++ b/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceTest.java
@@ -45,9 +45,9 @@ import brooklyn.entity.basic.BasicEntity;
import brooklyn.entity.basic.Entities;
import brooklyn.entity.basic.EntityFunctions;
import brooklyn.entity.basic.Lifecycle;
-import brooklyn.location.Location;
import brooklyn.location.basic.AbstractLocation;
import brooklyn.location.basic.LocationConfigKeys;
+import brooklyn.location.basic.LocationInternal;
import brooklyn.location.geo.HostGeoInfo;
import brooklyn.rest.domain.ApiError;
import brooklyn.rest.domain.ApplicationSpec;
@@ -533,8 +533,8 @@ public class ApplicationResourceTest extends BrooklynRestResourceTest {
log.info("starting testLocatedLocations");
testListApplications();
- Location l = getManagementContext().getApplications().iterator().next().getLocations().iterator().next();
- if (!l.hasConfig(LocationConfigKeys.LATITUDE, false)) {
+ LocationInternal l = (LocationInternal) getManagementContext().getApplications().iterator().next().getLocations().iterator().next();
+ if (l.config().getLocalRaw(LocationConfigKeys.LATITUDE).isAbsent()) {
log.info("Supplying fake locations for localhost because could not be autodetected");
((AbstractLocation) l).setHostGeoInfo(new HostGeoInfo("localhost", "localhost", 50, 0));
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/73c49852/usage/rest-server/src/test/java/brooklyn/rest/util/EntityLocationUtilsTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/util/EntityLocationUtilsTest.java b/usage/rest-server/src/test/java/brooklyn/rest/util/EntityLocationUtilsTest.java
index 10d1a99..8a6d212 100644
--- a/usage/rest-server/src/test/java/brooklyn/rest/util/EntityLocationUtilsTest.java
+++ b/usage/rest-server/src/test/java/brooklyn/rest/util/EntityLocationUtilsTest.java
@@ -34,6 +34,7 @@ import brooklyn.entity.basic.SoftwareProcess;
import brooklyn.entity.proxying.EntitySpec;
import brooklyn.location.Location;
import brooklyn.location.basic.AbstractLocation;
+import brooklyn.location.basic.LocationInternal;
import brooklyn.location.geo.HostGeoInfo;
import brooklyn.rest.testing.mocks.RestMockSimpleEntity;
@@ -63,7 +64,7 @@ public class EntityLocationUtilsTest extends BrooklynAppUnitTestSupport {
Entities.dumpInfo(app);
log.info("r2loc: "+r2.getLocations());
- log.info("props: "+r2.getLocations().iterator().next().getAllConfig(false));
+ log.info("props: "+((LocationInternal)r2.getLocations().iterator().next()).config().getBag().getAllConfig());
Map<Location, Integer> counts = new EntityLocationUtils(mgmt).countLeafEntitiesByLocatedLocations();
log.info("count: "+counts);