DslObject: remove strange TypeCoercion attempt!

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

Branch: refs/heads/master
Commit: 68877f9c81568c65a9e2ddbdc45b3ac89542c481
Parents: 90c9a13
Author: Aled Sage <aled.s...@gmail.com>
Authored: Tue Aug 16 10:44:48 2016 +0100
Committer: Aled Sage <aled.s...@gmail.com>
Committed: Tue Aug 16 10:45:20 2016 +0100

----------------------------------------------------------------------
 .../spi/dsl/methods/BrooklynDslCommon.java      | 46 ++++++++++----------
 1 file changed, 24 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/68877f9c/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
 
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
index d3af653..84441db 100644
--- 
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
+++ 
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
@@ -448,17 +448,17 @@ public class BrooklynDslCommon {
 
         public static <T> T create(Class<T> type, List<?> constructorArgs, 
Map<String,?> fields, Map<String,?> config) {
             try {
-                T bean;
-                try {
-                    bean = (T) TypeCoercions.coerce(fields, type);
-                } catch (ClassCoercionException ex) {
-                    bean = Reflections.invokeConstructorFromArgs(type, 
constructorArgs.toArray()).get();
-                    BeanUtils.populate(bean, fields);
-                }
-                if (bean instanceof Configurable && config.size() > 0) {
-                    ConfigBag configBag = ConfigBag.newInstance(config);
-                    FlagUtils.setFieldsFromFlags(bean, configBag);
-                    FlagUtils.setAllConfigKeys((Configurable) bean, configBag, 
true);
+                T bean = Reflections.invokeConstructorFromArgs(type, 
constructorArgs.toArray()).get();
+                BeanUtils.populate(bean, fields);
+
+                if (config.size() > 0) {
+                    if (bean instanceof Configurable) {
+                        ConfigBag configBag = ConfigBag.newInstance(config);
+                        FlagUtils.setFieldsFromFlags(bean, configBag);
+                        FlagUtils.setAllConfigKeys((Configurable) bean, 
configBag, true);
+                    } else {
+                        LOG.warn("While building object, type "+type+" is not 
'Configurable'; cannot apply supplied config (continuing)");
+                    }
                 }
                 return bean;
             } catch (Exception e) {
@@ -468,17 +468,19 @@ public class BrooklynDslCommon {
 
         public static Object create(Class<?> type, String factoryMethodName, 
List<Object> factoryMethodArgs, Map<String,?> fields, Map<String,?> config) {
             try {
-                Object bean;
-                try {
-                    bean = TypeCoercions.coerce(fields, type);
-                } catch (ClassCoercionException ex) {
-                    bean = Reflections.invokeMethodFromArgs(type, 
factoryMethodName, factoryMethodArgs).get();
-                    BeanUtils.populate(bean, fields);
-                }
-                if (bean instanceof Configurable && config.size() > 0) {
-                    ConfigBag configBag = ConfigBag.newInstance(config);
-                    FlagUtils.setFieldsFromFlags(bean, configBag);
-                    FlagUtils.setAllConfigKeys((Configurable) bean, configBag, 
true);
+                Object bean = Reflections.invokeMethodFromArgs(type, 
factoryMethodName, factoryMethodArgs).get();
+                BeanUtils.populate(bean, fields);
+
+                if (config.size() > 0) {
+                    if (bean instanceof Configurable) {
+                        ConfigBag configBag = ConfigBag.newInstance(config);
+                        FlagUtils.setFieldsFromFlags(bean, configBag);
+                        FlagUtils.setAllConfigKeys((Configurable) bean, 
configBag, true);
+                    } else {
+                        LOG.warn("While building object via factory method 
'"+factoryMethodName+"', type "
+                                + (bean == null ? "<null>" : 
bean.getClass())+" is not 'Configurable'; cannot apply "
+                                + "supplied config (continuing)");
+                    }
                 }
                 return bean;
             } catch (Exception e) {

Reply via email to