You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2014/07/09 23:46:23 UTC
[10/50] git commit: temporary fix for yaml/java-type resolution,
and notes on the better solution
temporary fix for yaml/java-type resolution, and notes on the better solution
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/a1dfb3a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/a1dfb3a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/a1dfb3a3
Branch: refs/heads/master
Commit: a1dfb3a3ed012d8994a03a4e93ab8652bb0ef129
Parents: 5328b60
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Jul 7 11:04:37 2014 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Jul 9 22:34:43 2014 +0100
----------------------------------------------------------------------
.../BrooklynComponentTemplateResolver.java | 22 ++++++++++++++++++++
1 file changed, 22 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a1dfb3a3/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
index 026350e..1bfc308 100644
--- a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
+++ b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
@@ -18,12 +18,15 @@
*/
package io.brooklyn.camp.brooklyn.spi.creation;
+import io.brooklyn.camp.CampPlatform;
import io.brooklyn.camp.brooklyn.BrooklynCampConstants;
import io.brooklyn.camp.spi.AbstractResource;
import io.brooklyn.camp.spi.ApplicationComponentTemplate;
+import io.brooklyn.camp.spi.Assembly;
import io.brooklyn.camp.spi.AssemblyTemplate;
import io.brooklyn.camp.spi.PlatformComponentTemplate;
+import java.io.StringReader;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
@@ -32,7 +35,9 @@ import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.Nullable;
+import brooklyn.camp.brooklyn.api.AssemblyTemplateSpecInstantiator;
import brooklyn.catalog.CatalogItem;
+import brooklyn.config.BrooklynServerConfig;
import brooklyn.config.ConfigKey;
import brooklyn.entity.Application;
import brooklyn.entity.Entity;
@@ -188,9 +193,26 @@ public class BrooklynComponentTemplateResolver {
CatalogItem<Entity, EntitySpec<?>> item = getCatalogItem();
String typeName = getCatalogIdOrJavaType();
if (item!=null) {
+ // add additional bundles
loader = new BrooklynClassLoadingContextSequential(mgmt, item.newClassLoadingContext(mgmt), loader);
+
+// if (item.getPlanYaml()!=null) {
+// // TODO if yaml refers to *another* catalog item, or remote yaml reference, or even have config
+// // then we will need to parse that YAML
+// // (but NB as it stands this code might cause infinite looping?)
+// CampPlatform platform = BrooklynServerConfig.getCampPlatform(mgmt).get();
+// AssemblyTemplate template2 = platform.pdp().registerDeploymentPlan( new StringReader(item.getPlanYaml()) );
+// return ((AssemblyTemplateSpecInstantiator) template2.getInstantiator().newInstance()).createSpec(template2, platform);
+// }
+
typeName = item.getJavaType();
+ if (typeName==null) {
+ // FIXME temporary fix, until we parse the YAML above
+ // i think even config items in yaml on the catalog item will be ignored if we don't do the above
+ typeName = item.getRegisteredTypeName();
+ }
}
+
return loader.loadClass(typeName, Entity.class);
}