introduce new distinct "application" itemType on catalog BOM files, which don't 
set template tag


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

Branch: refs/heads/master
Commit: 5dbf70de77518c7ad0a3ae3e8520ee48c8833b32
Parents: ed08ff1
Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com>
Authored: Thu Nov 15 17:59:13 2018 +0000
Committer: Alex Heneveld <alex.henev...@cloudsoftcorp.com>
Committed: Thu Nov 15 17:59:13 2018 +0000

----------------------------------------------------------------------
 .../brooklyn/api/catalog/CatalogItem.java       |  3 +-
 .../brooklyn/api/objs/BrooklynObjectType.java   |  3 +-
 .../core/catalog/CatalogPredicates.java         |  4 +-
 .../catalog/internal/BasicBrooklynCatalog.java  |  6 ++-
 .../internal/CatalogApplicationItemDto.java     | 42 ++++++++++++++++++++
 .../catalog/internal/CatalogItemBuilder.java    |  7 ++++
 .../stock/aggregator/AggregationJob.java        |  2 +-
 .../core/plan/XmlPlanToSpecTransformer.java     |  2 +-
 .../failover/PropagatePrimaryEnricher.java      |  3 +-
 .../rest/transform/CatalogTransformer.java      |  2 +
 .../org/apache/brooklyn/cli/ItemLister.java     |  2 +-
 11 files changed, 68 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogItem.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogItem.java 
b/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogItem.java
index 90eff4b..104fdbf 100644
--- a/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogItem.java
+++ b/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogItem.java
@@ -45,6 +45,7 @@ public interface CatalogItem<T,SpecT> extends BrooklynObject, 
Rebindable {
     
     public static enum CatalogItemType {
         TEMPLATE, 
+        APPLICATION,
         ENTITY, 
         POLICY,
         ENRICHER,
@@ -63,7 +64,7 @@ public interface CatalogItem<T,SpecT> extends BrooklynObject, 
Rebindable {
             if (Policy.class.isAssignableFrom(type)) return POLICY;
             if (Enricher.class.isAssignableFrom(type)) return ENRICHER;
             if (Location.class.isAssignableFrom(type)) return LOCATION;
-            if (Application.class.isAssignableFrom(type)) return TEMPLATE;
+            if (Application.class.isAssignableFrom(type)) return APPLICATION;
             if (Entity.class.isAssignableFrom(type)) return ENTITY;
             return null;
         }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObjectType.java
----------------------------------------------------------------------
diff --git 
a/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObjectType.java 
b/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObjectType.java
index f4a1756..4bde7d6 100644
--- a/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObjectType.java
+++ b/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObjectType.java
@@ -99,9 +99,10 @@ public enum BrooklynObjectType {
         switch (t) {
         case ENRICHER: return BrooklynObjectType.ENRICHER;
         case ENTITY: return BrooklynObjectType.ENTITY;
+        case APPLICATION: return BrooklynObjectType.ENTITY;
+        case TEMPLATE: return BrooklynObjectType.ENTITY;
         case LOCATION: return BrooklynObjectType.LOCATION;
         case POLICY: return BrooklynObjectType.POLICY;
-        case TEMPLATE: return BrooklynObjectType.ENTITY;
         default: return BrooklynObjectType.UNKNOWN;
         }
     }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogPredicates.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogPredicates.java 
b/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogPredicates.java
index 4756007..eb44df4 100644
--- a/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogPredicates.java
+++ b/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogPredicates.java
@@ -141,8 +141,10 @@ public class CatalogPredicates {
 
     public static final Predicate<CatalogItem<Application,EntitySpec<? extends 
Application>>> IS_TEMPLATE = 
             CatalogPredicates.<Application,EntitySpec<? extends 
Application>>isCatalogItemType(CatalogItemType.TEMPLATE);
+    public static final Predicate<CatalogItem<Entity,EntitySpec<?>>> 
IS_APPLICATION = 
+        
CatalogPredicates.<Entity,EntitySpec<?>>isCatalogItemType(CatalogItemType.APPLICATION);
     public static final Predicate<CatalogItem<Entity,EntitySpec<?>>> IS_ENTITY 
= 
-            
CatalogPredicates.<Entity,EntitySpec<?>>isCatalogItemType(CatalogItemType.ENTITY);
+        
CatalogPredicates.<Entity,EntitySpec<?>>isCatalogItemType(CatalogItemType.ENTITY);
     public static final Predicate<CatalogItem<Policy,PolicySpec<?>>> IS_POLICY 
= 
             
CatalogPredicates.<Policy,PolicySpec<?>>isCatalogItemType(CatalogItemType.POLICY);
     public static final Predicate<CatalogItem<Enricher,EnricherSpec<?>>> 
IS_ENRICHER =

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
index 5b98cb0..504baeb 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
@@ -954,6 +954,9 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
 
             if (itemType==CatalogItemType.TEMPLATE) {
                 tags.add(BrooklynTags.CATALOG_TEMPLATE);
+                itemType = CatalogItemType.APPLICATION;
+            }
+            if (itemType==CatalogItemType.APPLICATION) {
                 itemType = CatalogItemType.ENTITY;
                 superTypes.add(Application.class);
             }
@@ -1371,7 +1374,7 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
             } catch (Exception e) {
                 Exceptions.propagateIfFatal(e);
                 // record the error if we have reason to expect this guess to 
succeed
-                if (item.containsKey("services") && 
(candidateCiType==CatalogItemType.ENTITY || 
candidateCiType==CatalogItemType.TEMPLATE)) {
+                if (item.containsKey("services") && 
(candidateCiType==CatalogItemType.ENTITY || 
candidateCiType==CatalogItemType.APPLICATION || 
candidateCiType==CatalogItemType.TEMPLATE)) {
                     // explicit services supplied, so plan should have been 
parseable for an entity or a a service
                     errors.add(e);
                 } else if (catalogItemType!=null && key!=null) {
@@ -2079,6 +2082,7 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
                 dto.setSymbolicName(dto.getJavaType());
                 switch (dto.getCatalogItemType()) {
                     case TEMPLATE:
+                    case APPLICATION:
                     case ENTITY:
                         dto.setPlanYaml("services: [{ type: 
"+dto.getJavaType()+" }]");
                         break;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogApplicationItemDto.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogApplicationItemDto.java
 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogApplicationItemDto.java
new file mode 100644
index 0000000..eabcd6d
--- /dev/null
+++ 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogApplicationItemDto.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.brooklyn.core.catalog.internal;
+
+import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.api.entity.EntitySpec;
+
+public class CatalogApplicationItemDto extends 
CatalogItemDtoAbstract<Application,EntitySpec<? extends Application>> {
+
+    @Override
+    public CatalogItemType getCatalogItemType() {
+        return CatalogItemType.APPLICATION;
+    }
+
+    @Override
+    public Class<Application> getCatalogItemJavaType() {
+        return Application.class;
+    }
+
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    @Override
+    public Class<EntitySpec<? extends Application>> getSpecType() {
+        return (Class)EntitySpec.class;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemBuilder.java
 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemBuilder.java
index f08ef17..28f9090 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemBuilder.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemBuilder.java
@@ -33,6 +33,7 @@ public class CatalogItemBuilder<CIConcreteType extends 
CatalogItemDtoAbstract<?,
         Preconditions.checkNotNull(itemType, "itemType required");
         switch (itemType) {
         case ENTITY: return newEntity(symbolicName, version);
+        case APPLICATION: return newApplication(symbolicName, version);
         case TEMPLATE: return newTemplate(symbolicName, version);
         case POLICY: return newPolicy(symbolicName, version);
         case ENRICHER: return newEnricher(symbolicName, version);
@@ -47,6 +48,12 @@ public class CatalogItemBuilder<CIConcreteType extends 
CatalogItemDtoAbstract<?,
                 .version(version);
     }
 
+    public static CatalogItemBuilder<CatalogApplicationItemDto> 
newApplication(String symbolicName, String version) {
+        return new CatalogItemBuilder<CatalogApplicationItemDto>(new 
CatalogApplicationItemDto())
+                .symbolicName(symbolicName)
+                .version(version);
+    }
+
     public static CatalogItemBuilder<CatalogTemplateItemDto> 
newTemplate(String symbolicName, String version) {
         return new CatalogItemBuilder<CatalogTemplateItemDto>(new 
CatalogTemplateItemDto())
                 .symbolicName(symbolicName)

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/core/src/main/java/org/apache/brooklyn/enricher/stock/aggregator/AggregationJob.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/enricher/stock/aggregator/AggregationJob.java
 
b/core/src/main/java/org/apache/brooklyn/enricher/stock/aggregator/AggregationJob.java
index ed8c006..a7027ff 100644
--- 
a/core/src/main/java/org/apache/brooklyn/enricher/stock/aggregator/AggregationJob.java
+++ 
b/core/src/main/java/org/apache/brooklyn/enricher/stock/aggregator/AggregationJob.java
@@ -52,7 +52,7 @@ public final class AggregationJob implements Runnable {
 
     public static BasicAttributeSensorAndConfigKey<List<Map<String, String>>> 
DASHBOARD_POLICY_HIGHLIGHTS = new BasicAttributeSensorAndConfigKey(List.class,
             "dashboard.policyHighlights",
-            "Highlights from policies. List of Masps, where each map should 
contain text and category");
+            "Highlights from policies. List of Maps, where each map should 
contain text and category");
 
     private final Entity entity;
 

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/core/src/test/java/org/apache/brooklyn/core/plan/XmlPlanToSpecTransformer.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/plan/XmlPlanToSpecTransformer.java
 
b/core/src/test/java/org/apache/brooklyn/core/plan/XmlPlanToSpecTransformer.java
index 404d4f8..065cbd4 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/plan/XmlPlanToSpecTransformer.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/plan/XmlPlanToSpecTransformer.java
@@ -84,7 +84,7 @@ public class XmlPlanToSpecTransformer implements 
PlanToSpecTransformer {
         if (item.getCatalogItemType()==CatalogItemType.ENTITY) {
             return (SpecT)toEntitySpec(parseXml(item.getPlanYaml()), 1);
         }
-        if (item.getCatalogItemType()==CatalogItemType.TEMPLATE) {
+        if (item.getCatalogItemType()==CatalogItemType.TEMPLATE || 
item.getCatalogItemType()==CatalogItemType.APPLICATION) {
             return (SpecT)toEntitySpec(parseXml(item.getPlanYaml()), 0);
         }
         throw new UnsupportedTypePlanException("Type 
"+item.getCatalogItemType()+" not supported");

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/policy/src/main/java/org/apache/brooklyn/policy/failover/PropagatePrimaryEnricher.java
----------------------------------------------------------------------
diff --git 
a/policy/src/main/java/org/apache/brooklyn/policy/failover/PropagatePrimaryEnricher.java
 
b/policy/src/main/java/org/apache/brooklyn/policy/failover/PropagatePrimaryEnricher.java
index ca2a99a..6ecdca2 100644
--- 
a/policy/src/main/java/org/apache/brooklyn/policy/failover/PropagatePrimaryEnricher.java
+++ 
b/policy/src/main/java/org/apache/brooklyn/policy/failover/PropagatePrimaryEnricher.java
@@ -90,6 +90,7 @@ public class PropagatePrimaryEnricher extends 
AbstractEnricher implements Sensor
             Collection<? extends Sensor<?>> sensorsToRemove = 
config().get(PROPAGATING);
             if (sensorsToRemove!=null) {
                 for (Sensor<?> s: sensorsToRemove) {
+                    // TODO - allow strings above also
                     if (s instanceof AttributeSensor) {
                         
((EntityInternal)entity).sensors().remove((AttributeSensor<?>)s);
                     }
@@ -119,7 +120,7 @@ public class PropagatePrimaryEnricher extends 
AbstractEnricher implements Sensor
         
         Collection<? extends Sensor<?>> sensorsToPropagate = 
getConfig(PROPAGATING);
         if (sensorsToPropagate==null || sensorsToPropagate.isEmpty()) {
-            log.warn("");
+            log.warn("Nothing found to propagate from primary "+primary+" at 
"+entity);
             return;
         }
         spec.configure(Propagator.PROPAGATING, sensorsToPropagate);

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
----------------------------------------------------------------------
diff --git 
a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
 
b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
index 3684a3e..d559a44 100644
--- 
a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
+++ 
b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
@@ -294,6 +294,7 @@ public class CatalogTransformer {
         try {
             switch (item.getCatalogItemType()) {
             case TEMPLATE:
+            case APPLICATION:
             case ENTITY:
                 return catalogEntitySummary(b, item, ub);
             case POLICY:
@@ -369,6 +370,7 @@ public class CatalogTransformer {
         String itemId = item.getId();
         switch (item.getCatalogItemType()) {
         case TEMPLATE:
+        case APPLICATION:
             return serviceUriBuilder(ub, CatalogApi.class, 
"getApplication").build(itemId, item.getVersion());
         case ENTITY:
             return serviceUriBuilder(ub, CatalogApi.class, 
"getEntity").build(itemId, item.getVersion());

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5dbf70de/server-cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java
----------------------------------------------------------------------
diff --git a/server-cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java 
b/server-cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java
index 6e31e53..4c22a6c 100644
--- a/server-cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java
+++ b/server-cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java
@@ -239,7 +239,7 @@ public class ItemLister {
                         Map<String,Object> itemDescriptor = 
ItemDescriptors.toItemDescriptor(catalog, item, headingsOnly);
 
                         itemCount++;
-                        if (item.getCatalogItemType() == 
CatalogItem.CatalogItemType.ENTITY || item.getCatalogItemType() == 
CatalogItem.CatalogItemType.TEMPLATE) {
+                        if (item.getCatalogItemType() == 
CatalogItem.CatalogItemType.ENTITY || item.getCatalogItemType() == 
CatalogItem.CatalogItemType.TEMPLATE || item.getCatalogItemType() == 
CatalogItem.CatalogItemType.APPLICATION) {
                             entities.add(itemDescriptor);
                         } else if (item.getCatalogItemType() == 
CatalogItem.CatalogItemType.POLICY) {
                             policies.add(itemDescriptor);

Reply via email to