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);
     }