You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/07/04 11:51:16 UTC

[34/45] git commit: address @aledsage's code review comments, and fix some failing tests (libraries sometimes null, and name not taken from template when app is promoted)

address @aledsage's code review comments, and fix some failing tests (libraries sometimes null, and name not taken from template when app is promoted)


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

Branch: refs/heads/master
Commit: e96af92dc69e7dd97d3187d3c296290da9326d58
Parents: 13aa4af
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Jul 3 16:08:48 2014 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Jul 3 16:08:48 2014 +0100

----------------------------------------------------------------------
 .../main/java/brooklyn/catalog/CatalogItem.java |  6 ++-
 .../catalog/internal/BasicBrooklynCatalog.java  |  2 +-
 .../catalog/internal/CatalogItemDo.java         |  6 ++-
 .../internal/CatalogItemDtoAbstract.java        | 53 +-----------------
 .../brooklyn/catalog/internal/CatalogItems.java | 56 ++++++++++++++++++++
 .../catalog/internal/CatalogLibrariesDto.java   |  2 +-
 .../brooklyn/camp/lite/CampYamlLiteTest.java    |  2 +-
 .../catalog/internal/CatalogDtoTest.java        |  6 +--
 .../BrooklynAssemblyTemplateInstantiator.java   | 44 +++++++--------
 .../brooklyn/launcher/BrooklynLauncher.java     |  2 -
 .../rest/transform/CatalogTransformer.java      |  4 +-
 .../rest/resources/CatalogResourceTest.java     |  2 +-
 12 files changed, 95 insertions(+), 90 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/api/src/main/java/brooklyn/catalog/CatalogItem.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/catalog/CatalogItem.java b/api/src/main/java/brooklyn/catalog/CatalogItem.java
index 7cfbdd6..ebcdae8 100644
--- a/api/src/main/java/brooklyn/catalog/CatalogItem.java
+++ b/api/src/main/java/brooklyn/catalog/CatalogItem.java
@@ -5,6 +5,9 @@ import java.util.List;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import com.google.common.annotations.Beta;
+
+@Beta
 public interface CatalogItem<T,SpecT> {
     
     public static enum CatalogItemType {
@@ -24,7 +27,8 @@ public interface CatalogItem<T,SpecT> {
     /** the explicit ID of this item, or the type if not supplied */
     public String getId();
     
-    /** the type name registered in the catalog for this item */ 
+    /** the type name registered in the catalog for this item */
+    @Nonnull
     public String getRegisteredTypeName();
     
     /** the underlying java type of the item represented, or null if not known (e.g. if it comes from yaml) */

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
index f4f0150..2f45bb7 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -208,7 +208,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
         // TODO applications / templates
         // TODO long-term support policies etc
         
-        return CatalogItemDtoAbstract.newEntityFromPlan(name, libraries, plan, yaml);
+        return CatalogItems.newEntityFromPlan(name, libraries, plan, yaml);
     }
 
     private DeploymentPlan makePlanFromYaml(String yaml) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
index 65133fe..6939a55 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -75,7 +75,7 @@ public class CatalogItemDo<T,SpecT> implements CatalogItem<T,SpecT> {
         return itemDto.getVersion();
     }
 
-    @Nonnull
+    @Nonnull  // but it is still null sometimes, see in CatalogDo.loadJavaClass
     @Override
     public CatalogItemLibraries getLibraries() {
         return itemDto.getLibraries();
@@ -97,7 +97,9 @@ public class CatalogItemDo<T,SpecT> implements CatalogItem<T,SpecT> {
 
             if (mgmt!=null) {
                 Maybe<OsgiManager> osgi = ((ManagementContextInternal)mgmt).getOsgiManager();
-                if (osgi.isPresent()) {
+                if (osgi.isPresent() && getLibraries()!=null) {
+                    // TODO getLibraries() should never be null but sometimes it is still
+                    // e.g. run CatalogResourceTest without the above check
                     List<String> bundles = getLibraries().getBundles();
                     if (bundles!=null && !bundles.isEmpty()) {
                         clazz = osgi.get().tryResolveClass(getJavaType(), bundles);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
index b9b633d..21f0091 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
@@ -1,8 +1,7 @@
 package brooklyn.catalog.internal;
 
-import io.brooklyn.camp.spi.pdp.DeploymentPlan;
-
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 import brooklyn.catalog.CatalogItem;
 
@@ -70,59 +69,11 @@ public abstract class CatalogItemDtoAbstract<T,SpecT> implements CatalogItem<T,S
         return libraries;
     }
 
-    @Override
+    @Nullable @Override
     public String getPlanYaml() {
         return planYaml;
     }
 
-    public static CatalogTemplateItemDto newTemplateFromJava(String javaType, String name) {
-        return newTemplateFromJava(null, javaType, name, null);
-    }
-    public static CatalogTemplateItemDto newTemplateFromJava(String id, String javaType, String name, String description) {
-        return newTemplateFromJava(id, javaType, name, description, null);
-    }
-    public static CatalogTemplateItemDto newTemplateFromJava(String id, String javaType, String name, String description, CatalogLibrariesDto libraries) {
-        return set(new CatalogTemplateItemDto(), id, javaType, javaType, name, description, libraries);
-    }
-
-    public static CatalogEntityItemDto newEntityFromPlan(String registeredTypeName, CatalogLibrariesDto libraries, DeploymentPlan plan, String underlyingPlanYaml) {
-        CatalogEntityItemDto target = set(new CatalogEntityItemDto(), null, registeredTypeName, null, plan.getName(), plan.getDescription(), libraries);
-        target.planYaml = underlyingPlanYaml;
-        return target;
-    }
-    
-    public static CatalogEntityItemDto newEntityFromJava(String javaType, String name) {
-        return newEntityFromJava(null, javaType, name, null);
-    }
-    public static CatalogEntityItemDto newEntityFromJava(String id, String javaType, String name, String description) {
-        return newEntityFromJava(id, javaType, name, description, null);
-    }
-    public static CatalogEntityItemDto newEntityFromJava(String id, String javaType, String name, String description, CatalogLibrariesDto libraries) {
-        return set(new CatalogEntityItemDto(), id, javaType, javaType, name, description, libraries);
-    }
-
-    public static CatalogPolicyItemDto newPolicyFromJava(String javaType, String name) {
-        return newPolicyFromJava(null, javaType, name, null);
-    }
-    public static CatalogPolicyItemDto newPolicyFromJava(String id, String javaType, String name, String description) {
-        return newPolicyFromJava(id, javaType, name, description, null);
-    }
-    public static CatalogPolicyItemDto newPolicyFromJava(String id, String javaType, String name, String description, CatalogLibrariesDto libraries) {
-        return set(new CatalogPolicyItemDto(), id, javaType, javaType, name, description, libraries);
-    }
-
-    @SuppressWarnings({ "rawtypes", "unchecked" })
-    private static <T extends CatalogItemDtoAbstract> T set(T target, String id, String registeredType, String javaType, String name,
-            String description, CatalogLibrariesDto libraries) {
-        target.id = id;
-        target.registeredType = registeredType;
-        target.javaType = javaType;
-        target.name = name;
-        target.description = description;
-        target.libraries = libraries != null ? libraries : new CatalogLibrariesDto();
-        return target;
-    }
-
     @Override
     public String toString() {
         return getClass().getSimpleName()+"["+getId()+"/"+getName()+"]";

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/core/src/main/java/brooklyn/catalog/internal/CatalogItems.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItems.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItems.java
new file mode 100644
index 0000000..18fc571
--- /dev/null
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItems.java
@@ -0,0 +1,56 @@
+package brooklyn.catalog.internal;
+
+import io.brooklyn.camp.spi.pdp.DeploymentPlan;
+
+/** Deliberately package-private. Only for internal use. */
+class CatalogItems {
+
+    public static CatalogTemplateItemDto newTemplateFromJava(String javaType, String name) {
+        return newTemplateFromJava(null, javaType, name, null);
+    }
+    public static CatalogTemplateItemDto newTemplateFromJava(String id, String javaType, String name, String description) {
+        return newTemplateFromJava(id, javaType, name, description, null);
+    }
+    public static CatalogTemplateItemDto newTemplateFromJava(String id, String javaType, String name, String description, CatalogLibrariesDto libraries) {
+        return set(new CatalogTemplateItemDto(), id, javaType, javaType, name, description, libraries);
+    }
+
+    public static CatalogEntityItemDto newEntityFromPlan(String registeredTypeName, CatalogLibrariesDto libraries, DeploymentPlan plan, String underlyingPlanYaml) {
+        CatalogEntityItemDto target = set(new CatalogEntityItemDto(), null, registeredTypeName, null, plan.getName(), plan.getDescription(), libraries);
+        target.planYaml = underlyingPlanYaml;
+        return target;
+    }
+    
+    public static CatalogEntityItemDto newEntityFromJava(String javaType, String name) {
+        return newEntityFromJava(null, javaType, name, null);
+    }
+    public static CatalogEntityItemDto newEntityFromJava(String id, String javaType, String name, String description) {
+        return newEntityFromJava(id, javaType, name, description, null);
+    }
+    public static CatalogEntityItemDto newEntityFromJava(String id, String javaType, String name, String description, CatalogLibrariesDto libraries) {
+        return set(new CatalogEntityItemDto(), id, javaType, javaType, name, description, libraries);
+    }
+
+    public static CatalogPolicyItemDto newPolicyFromJava(String javaType, String name) {
+        return newPolicyFromJava(null, javaType, name, null);
+    }
+    public static CatalogPolicyItemDto newPolicyFromJava(String id, String javaType, String name, String description) {
+        return newPolicyFromJava(id, javaType, name, description, null);
+    }
+    public static CatalogPolicyItemDto newPolicyFromJava(String id, String javaType, String name, String description, CatalogLibrariesDto libraries) {
+        return set(new CatalogPolicyItemDto(), id, javaType, javaType, name, description, libraries);
+    }
+ 
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    private static <T extends CatalogItemDtoAbstract> T set(T target, String id, String registeredType, String javaType, String name,
+            String description, CatalogLibrariesDto libraries) {
+        target.id = id;
+        target.registeredType = registeredType;
+        target.javaType = javaType;
+        target.name = name;
+        target.description = description;
+        target.libraries = libraries != null ? libraries : new CatalogLibrariesDto();
+        return target;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java b/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java
index a408921..4df1333 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java
@@ -14,7 +14,7 @@ public class CatalogLibrariesDto implements CatalogItem.CatalogItemLibraries {
     private List<String> bundles = new CopyOnWriteArrayList<String>();
 
     public void addBundle(String url) {
-        Preconditions.checkNotNull(url, "Cannot add a bundle to a deserialized DTO");
+        Preconditions.checkNotNull(bundles, "Cannot add a bundle to a deserialized DTO");
         bundles.add( Preconditions.checkNotNull(url) );
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java b/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java
index 9bbadf7..c1bfefc 100644
--- a/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java
+++ b/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java
@@ -78,7 +78,7 @@ public class CampYamlLiteTest {
         Assert.assertEquals( map.get("desc"), MockWebPlatform.APPSERVER.getDescription() );
     }
 
-    @Test(groups="WIP")
+    @Test
     public void testYamlServiceForCatalog() {
         MockWebPlatform.populate(platform, TestAppAssemblyInstantiator.class);
         

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java b/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java
index 1989cb2..88bb020 100644
--- a/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java
+++ b/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java
@@ -71,9 +71,9 @@ public class CatalogDtoTest {
         CatalogDo testEntitiesJavaCatalog = new CatalogDo(CatalogDto.newNamedInstance("Test Entities from Java", null));
         testEntitiesJavaCatalog.setClasspathScanForEntities(CatalogScanningModes.NONE);
         testEntitiesJavaCatalog.addToClasspath(MavenRetriever.localUrl(BrooklynMavenArtifacts.artifact("", "brooklyn-core", "jar", "tests")));
-        testEntitiesJavaCatalog.addEntry(CatalogItemDtoAbstract.newTemplateFromJava(
+        testEntitiesJavaCatalog.addEntry(CatalogItems.newTemplateFromJava(
                 TestApplication.class.getCanonicalName(), "Test App from JAR"));
-        testEntitiesJavaCatalog.addEntry(CatalogItemDtoAbstract.newEntityFromJava(
+        testEntitiesJavaCatalog.addEntry(CatalogItems.newEntityFromJava(
                 TestEntity.class.getCanonicalName(), "Test Entity from JAR"));
         root.addCatalog(testEntitiesJavaCatalog.dto);
 
@@ -85,7 +85,7 @@ public class CatalogDtoTest {
         CatalogDo osgiCatalog = new CatalogDo(CatalogDto.newNamedInstance("Test Entities from OSGi",
                 "A catalog whose entries define their libraries as a list of OSGi bundles"));
         osgiCatalog.setClasspathScanForEntities(CatalogScanningModes.NONE);
-        CatalogEntityItemDto osgiEntity = CatalogItemDtoAbstract.newEntityFromJava(TestEntity.class.getCanonicalName(), "Test Entity from OSGi");
+        CatalogEntityItemDto osgiEntity = CatalogItems.newEntityFromJava(TestEntity.class.getCanonicalName(), "Test Entity from OSGi");
         // NB: this is not actually an OSGi bundle, but it's okay as we don't instantiate the bundles ahead of time (currently)
         osgiEntity.libraries.addBundle(MavenRetriever.localUrl(BrooklynMavenArtifacts.artifact("", "brooklyn-core", "jar", "tests")));
         testEntitiesJavaCatalog.addEntry(osgiEntity);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
index cc9dd44..7633fb7 100644
--- a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
+++ b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
@@ -221,30 +221,6 @@ public class BrooklynAssemblyTemplateInstantiator implements AssemblyTemplateSpe
         final ManagementContext mgmt = getBrooklynManagementContext(platform);
 
         Map<Entity, EntitySpec<?>> allEntities = Maps.newLinkedHashMap();
-//<<<<<<< HEAD
-//        /* FIXME there is a subtlety here, and tests failing;
-//         * OT1H we might not want/need the wrapper application if we are creating a single one,   
-//         * but OTOH we might need a guarantee of an app at root, if we are creating certain nested entities
-//         * 
-//         * i (alex) think the solution is to use the new createSpec(...) and interrogate it
-//         * to see if we need the wrapper or not
-//         */
-//        buildEntities(template, rootEntities, allEntities, mgmt);
-//        
-//        EntitySpec<StartableApplication> appSpec;
-//        StartableApplication app;
-//        if(shouldWrapInApp(template, rootEntities)) {
-//            BrooklynComponentTemplateResolver appResolver = BrooklynComponentTemplateResolver.Factory.newInstance(mgmt, template);
-//            appSpec = appResolver.resolveSpec(StartableApplication.class, BasicApplicationImpl.class);
-//            app = appResolver.newEntity(appSpec);
-//            setEntitiesParent(rootEntities, app);
-//            allEntities.put(app, appSpec);
-//        } else {
-//            Entry<Entity, EntitySpec<?>> entry = rootEntities.entrySet().iterator().next();
-//            app = (StartableApplication)entry.getKey();
-//            appSpec = (EntitySpec<StartableApplication>)entry.getValue();
-//            applyLocations(mgmt, template, app);
-//=======
         StartableApplication rootApp = buildRootApp(template, platform, allEntities);
         initEntities(mgmt, allEntities);
         log.info("CAMP placing '{}' under management", allEntities.get(rootApp));
@@ -277,7 +253,16 @@ public class BrooklynAssemblyTemplateInstantiator implements AssemblyTemplateSpe
         final ManagementContext mgmt = getBrooklynManagementContext(platform);
         
         ResolvableLink<PlatformComponentTemplate> promotedAppTemplate = template.getPlatformComponentTemplates().links().get(0);
-        StartableApplication app = (StartableApplication)buildEntity(null, promotedAppTemplate, allEntities, mgmt);
+        
+        PlatformComponentTemplate appChildComponentTemplate = promotedAppTemplate.resolve();
+        BrooklynComponentTemplateResolver entityResolver = BrooklynComponentTemplateResolver.Factory.newInstance(mgmt, appChildComponentTemplate);
+        EntitySpec<?> spec = buildEntitySpecNonHierarchical(null, appChildComponentTemplate, allEntities, mgmt, entityResolver);
+
+        // and this is needed in case 'name' was set at template level (eg ApplicationResourceTest.testDeployApplicationYaml)
+        if (spec.getDisplayName()==null && template.getName()!=null)
+            spec.displayName(template.getName());
+            
+        StartableApplication app = (StartableApplication) buildEntityHierarchical(spec, appChildComponentTemplate, allEntities, mgmt, entityResolver);
         
         // TODO i (alex) think we need this because locations defined at the root of the template could have been lost otherwise?
         applyLocations(mgmt, template, app);
@@ -296,10 +281,19 @@ public class BrooklynAssemblyTemplateInstantiator implements AssemblyTemplateSpe
             Map<Entity, EntitySpec<?>> allEntities, ManagementContext mgmt) {
         PlatformComponentTemplate appChildComponentTemplate = ctl.resolve();
         BrooklynComponentTemplateResolver entityResolver = BrooklynComponentTemplateResolver.Factory.newInstance(mgmt, appChildComponentTemplate);
+        EntitySpec<?> spec = buildEntitySpecNonHierarchical(parent, appChildComponentTemplate, allEntities, mgmt, entityResolver);
+        return buildEntityHierarchical(spec, appChildComponentTemplate, allEntities, mgmt, entityResolver);
+    }
+    private EntitySpec<?> buildEntitySpecNonHierarchical(StartableApplication parent, PlatformComponentTemplate appChildComponentTemplate,
+            Map<Entity, EntitySpec<?>> allEntities, ManagementContext mgmt, BrooklynComponentTemplateResolver entityResolver) {
         EntitySpec<? extends Entity> spec = entityResolver.resolveSpec();
         if(parent != null) {
             spec.parent(parent);
         }
+        return spec;
+    }
+    private Entity buildEntityHierarchical(EntitySpec<?> spec, PlatformComponentTemplate appChildComponentTemplate,
+            Map<Entity, EntitySpec<?>> allEntities, ManagementContext mgmt, BrooklynComponentTemplateResolver entityResolver) {
         Entity entity = entityResolver.newEntity(spec);
         allEntities.put(entity, spec);
         buildEntityHierarchy(mgmt, allEntities, entity, entityResolver.getChildren(appChildComponentTemplate.getCustomAttributes()));

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java
----------------------------------------------------------------------
diff --git a/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java b/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java
index 7d94e9e..64ef089 100644
--- a/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java
+++ b/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java
@@ -32,7 +32,6 @@ import brooklyn.entity.Application;
 import brooklyn.entity.basic.ApplicationBuilder;
 import brooklyn.entity.basic.BrooklynShutdownHooks;
 import brooklyn.entity.basic.Entities;
-import brooklyn.entity.basic.EntityInternal;
 import brooklyn.entity.basic.StartableApplication;
 import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.entity.rebind.PersistenceExceptionHandler;
@@ -645,7 +644,6 @@ public class BrooklynLauncher {
             throw Exceptions.propagate(e);
         }
         Application app = instantiator.create(at, campPlatform);
-//        ((EntityInternal)app).addLocations(XXX);
         return app;
     }
     

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/usage/rest-server/src/main/java/brooklyn/rest/transform/CatalogTransformer.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/main/java/brooklyn/rest/transform/CatalogTransformer.java b/usage/rest-server/src/main/java/brooklyn/rest/transform/CatalogTransformer.java
index 4d24974..76cc02a 100644
--- a/usage/rest-server/src/main/java/brooklyn/rest/transform/CatalogTransformer.java
+++ b/usage/rest-server/src/main/java/brooklyn/rest/transform/CatalogTransformer.java
@@ -50,7 +50,7 @@ public class CatalogTransformer {
 
         return new CatalogEntitySummary(item.getId(), item.getName(), 
             item.getRegisteredTypeName(), item.getJavaType(), 
-            item.getRegisteredTypeName()!=null ? item.getRegisteredTypeName() : item.getJavaType(),
+            item.getRegisteredTypeName(),
             item.getPlanYaml(),
                 item.getDescription(), tidyIconLink(b, item, item.getIconUrl()),
                 config, sensors, effectors,
@@ -60,7 +60,7 @@ public class CatalogTransformer {
     public static CatalogItemSummary catalogItemSummary(BrooklynRestResourceUtils b, CatalogItem<?,?> item) {
         return new CatalogItemSummary(item.getId(), item.getName(), 
                 item.getRegisteredTypeName(), item.getJavaType(), 
-                item.getRegisteredTypeName()!=null ? item.getRegisteredTypeName() : item.getJavaType(),
+                item.getRegisteredTypeName(),
                 item.getPlanYaml(),
                 item.getDescription(), tidyIconLink(b, item, item.getIconUrl()), makeLinks(item));
     }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e96af92d/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java b/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java
index 810e6e3..84e60f3 100644
--- a/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java
+++ b/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java
@@ -49,7 +49,7 @@ public class CatalogResourceTest extends BrooklynRestResourceTest {
     String registeredTypeName = "my.catalog.app.id";
     String yaml =
         "name: "+registeredTypeName+"\n"+
-        // TODO name above should be unnecessary when brooklyn.catalog below is working
+        // FIXME name above should be unnecessary when brooklyn.catalog below is working
         "brooklyn.catalog:\n"+
         "- id: " + registeredTypeName + "\n"+
         "- name: My Catalog App\n"+