Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master e8e0fced3 -> ba5dece6a


Fix AbstractEntity.config()

- When return type of config() was changed to BasicConfigurationSupport,
  it broke any entity impls that tried to call config().set(...) etc
- Solution is to change BasicConfigurationSupport to be protected
  rather than private, and mark as @Beta because we’ll change it
  back to private at some point.

Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/6d548e9a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/6d548e9a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/6d548e9a

Branch: refs/heads/master
Commit: 6d548e9a9722de1a7adcefbb3b9ae1365b33c728
Parents: e8e0fce
Author: Aled Sage <[email protected]>
Authored: Fri Mar 13 09:47:11 2015 +0000
Committer: Aled Sage <[email protected]>
Committed: Fri Mar 13 09:47:11 2015 +0000

----------------------------------------------------------------------
 .../src/main/java/brooklyn/entity/basic/AbstractEntity.java | 9 ++++++++-
 .../test/java/brooklyn/entity/basic/EntityConfigTest.java   | 9 +++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6d548e9a/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 8c90065..27311a1 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
@@ -970,7 +970,14 @@ public abstract class AbstractEntity extends 
AbstractBrooklynObject implements E
         return config;
     }
 
-    private class BasicConfigurationSupport implements 
ConfigurationSupportInternal {
+    /**
+     * Direct use of this class is strongly discouraged. It will become 
private in a future release,
+     * once {@link #config()} is reverted to return {@link 
ConfigurationSupportInternal} instead of
+     * {@link BasicConfigurationSupport}.
+     */
+    @Beta
+    // TODO revert to private when config() is reverted to return 
ConfigurationSupportInternal
+    protected class BasicConfigurationSupport implements 
ConfigurationSupportInternal {
 
         @Override
         public <T> T get(ConfigKey<T> key) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6d548e9a/core/src/test/java/brooklyn/entity/basic/EntityConfigTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/basic/EntityConfigTest.java 
b/core/src/test/java/brooklyn/entity/basic/EntityConfigTest.java
index da27c61..c941af6 100644
--- a/core/src/test/java/brooklyn/entity/basic/EntityConfigTest.java
+++ b/core/src/test/java/brooklyn/entity/basic/EntityConfigTest.java
@@ -155,6 +155,15 @@ public class EntityConfigTest {
 
         @SetFromFlag("myconfigflagname")
         public static final ConfigKey<String> MY_CONFIG_WITH_FLAGNAME = 
ConfigKeys.newStringConfigKey("myentity.myconfigwithflagname");
+        
+        @Override
+        public void init() {
+            super.init();
+            
+            // Just calling this to prove we can! When config() was changed to 
return BasicConfigurationSupport,
+            // it broke because BasicConfigurationSupport was private.
+            config().getLocalBag();
+        }
     }
     
     public static class MyChildEntity extends AbstractEntity {

Reply via email to