brooklyn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aleds...@apache.org
Subject [2/5] incubator-brooklyn git commit: Adds ConfigKeys.newConfigKeyWithPrefixRemoved
Date Thu, 12 Nov 2015 13:46:16 GMT
Adds ConfigKeys.newConfigKeyWithPrefixRemoved


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

Branch: refs/heads/master
Commit: bbecf36662d79719d37777bebbd43f983ee834e5
Parents: 531effb
Author: Aled Sage <aled.sage@gmail.com>
Authored: Tue Nov 10 00:34:20 2015 +0000
Committer: Aled Sage <aled.sage@gmail.com>
Committed: Thu Nov 12 13:11:42 2015 +0000

----------------------------------------------------------------------
 .../apache/brooklyn/core/config/ConfigKeys.java |  8 ++++++++
 .../brooklyn/core/config/ConfigKeysTest.java    | 21 ++++++++++++++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/bbecf366/core/src/main/java/org/apache/brooklyn/core/config/ConfigKeys.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/config/ConfigKeys.java b/core/src/main/java/org/apache/brooklyn/core/config/ConfigKeys.java
index df03c29..ecc1ec0 100644
--- a/core/src/main/java/org/apache/brooklyn/core/config/ConfigKeys.java
+++ b/core/src/main/java/org/apache/brooklyn/core/config/ConfigKeys.java
@@ -157,6 +157,14 @@ public class ConfigKeys {
         return newConfigKeyRenamed(prefix+key.getName(), key);
     }
 
+    public static <T> ConfigKey<T> newConfigKeyWithPrefixRemoved(String prefix,
ConfigKey<T> key) {
+        if (key.getName().startsWith(prefix)) {
+            return newConfigKeyRenamed(key.getName().substring(prefix.length()), key);
+        } else {
+            throw new IllegalArgumentException("key "+key+" does not start with prefix "+prefix);
+        }
+    }
+
     /** converts the name of the key from one case-strategy (e.g. lowerCamel) to andother
(e.g. lower-hyphen) */
     public static <T> ConfigKey<T> convert(ConfigKey<T> key, CaseFormat
inputCaseStrategy, CaseFormat outputCaseStrategy) {
         return newConfigKeyRenamed(inputCaseStrategy.to(outputCaseStrategy, key.getName()),
key);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/bbecf366/core/src/test/java/org/apache/brooklyn/core/config/ConfigKeysTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/config/ConfigKeysTest.java b/core/src/test/java/org/apache/brooklyn/core/config/ConfigKeysTest.java
index 12f713f..bb5a323 100644
--- a/core/src/test/java/org/apache/brooklyn/core/config/ConfigKeysTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/config/ConfigKeysTest.java
@@ -19,11 +19,10 @@
 package org.apache.brooklyn.core.config;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.fail;
 
 import org.apache.brooklyn.config.ConfigInheritance;
 import org.apache.brooklyn.config.ConfigKey;
-import org.apache.brooklyn.core.config.BasicConfigKey;
-import org.apache.brooklyn.core.config.ConfigKeys;
 import org.testng.annotations.Test;
 
 import com.google.common.base.CaseFormat;
@@ -61,6 +60,24 @@ public class ConfigKeysTest {
     }
     
     @Test
+    public void testConfigKeyWithoutPrefix() throws Exception {
+        ConfigKey<String> key = ConfigKeys.newStringConfigKey("a.b.mykey", "my descr",
"my default val");
+        ConfigKey<String> key2 = ConfigKeys.newConfigKeyWithPrefixRemoved("a.b.", key);
+        
+        assertEquals(key2.getName(), "mykey");
+        assertEquals(key2.getType(), String.class);
+        assertEquals(key2.getDescription(), "my descr");
+        assertEquals(key2.getDefaultValue(), "my default val");
+        
+        try {
+            ConfigKey<String> key3 = ConfigKeys.newConfigKeyWithPrefixRemoved("wrong.prefix.",
key);
+            fail("key="+key3);
+        } catch (IllegalArgumentException e) {
+            // success
+        }
+    }
+    
+    @Test
     public void testConfigKeyBuilder() throws Exception {
         ConfigKey<String> key = ConfigKeys.builder(String.class, "mykey")
             .description("my descr")


Mime
View raw message