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) {