Repository: incubator-brooklyn Updated Branches: refs/heads/master 21b74b450 -> 3082169da
yaml DSL: use class-renames for sensor/object Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/a566d32e Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/a566d32e Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/a566d32e Branch: refs/heads/master Commit: a566d32eb8a305591c2e27c693484913fb6bfc92 Parents: b10d23b Author: Aled Sage <[email protected]> Authored: Fri Sep 18 19:27:03 2015 +0100 Committer: Aled Sage <[email protected]> Committed: Mon Sep 21 14:33:19 2015 +0100 ---------------------------------------------------------------------- .../camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a566d32e/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java ---------------------------------------------------------------------- diff --git a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java index 8f1483c..92dc14e 100644 --- a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java +++ b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java @@ -38,6 +38,7 @@ import org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent.Scope; import org.apache.brooklyn.core.entity.EntityDynamicType; import org.apache.brooklyn.core.entity.EntityInternal; import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal; +import org.apache.brooklyn.core.mgmt.persist.DeserializingClassRenamesProvider; import org.apache.brooklyn.core.sensor.DependentConfiguration; import org.apache.brooklyn.util.collections.MutableMap; import org.apache.brooklyn.util.core.config.ConfigBag; @@ -47,6 +48,7 @@ import org.apache.brooklyn.util.core.flags.TypeCoercions; import org.apache.brooklyn.util.core.task.DeferredSupplier; import org.apache.brooklyn.util.core.task.Tasks; import org.apache.brooklyn.util.exceptions.Exceptions; +import org.apache.brooklyn.util.guava.Maybe; import org.apache.brooklyn.util.javalang.Reflections; import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes; import org.apache.brooklyn.util.text.Strings; @@ -111,7 +113,9 @@ public class BrooklynDslCommon { public static Sensor<?> sensor(String clazzName, String sensorName) { try { // TODO Should use catalog's classloader, rather than Class.forName; how to get that? Should we return a future?! - Class<?> clazz = Class.forName(clazzName); + String mappedClazzName = DeserializingClassRenamesProvider.findMappedName(clazzName); + Class<?> clazz = Class.forName(mappedClazzName); + Sensor<?> sensor; if (Entity.class.isAssignableFrom(clazz)) { sensor = new EntityDynamicType((Class<? extends Entity>) clazz).getSensor(sensorName); @@ -150,7 +154,9 @@ public class BrooklynDslCommon { Map<String,Object> brooklynConfig = (Map<String, Object>) config.getStringKeyMaybe(BrooklynCampReservedKeys.BROOKLYN_CONFIG).or(MutableMap.of()); try { // TODO Should use catalog's classloader, rather than Class.forName; how to get that? Should we return a future?! - Class<?> type = Class.forName(typeName); + String mappedTypeName = DeserializingClassRenamesProvider.findMappedName(typeName); + Class<?> type = Class.forName(mappedTypeName); + if (!Reflections.hasNoArgConstructor(type)) { throw new IllegalStateException(String.format("Cannot construct %s bean: No public no-arg constructor available", type)); }
