You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by gr...@apache.org on 2018/11/15 21:20:14 UTC

[1/3] brooklyn-server git commit: when getting details, get the raw value then resolve it immediately

Repository: brooklyn-server
Updated Branches:
  refs/heads/master 61ac3cc4a -> d0897b2db


when getting details, get the raw value then resolve it immediately

prevents delays while it tries to resolve things which aren't immediately available


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

Branch: refs/heads/master
Commit: ed08ff1899f6c25206f3d4dfeedf63acc002b4f8
Parents: 61ac3cc
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Nov 15 17:58:27 2018 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Nov 15 17:58:27 2018 +0000

----------------------------------------------------------------------
 .../apache/brooklyn/rest/resources/ApplicationResource.java    | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed08ff18/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
index 1b7fe35..abe783c 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
@@ -53,6 +53,7 @@ import org.apache.brooklyn.config.ConfigKey;
 import org.apache.brooklyn.core.config.ConfigPredicates;
 import org.apache.brooklyn.core.config.ConstraintViolationException;
 import org.apache.brooklyn.core.entity.Attributes;
+import org.apache.brooklyn.core.entity.EntityInternal;
 import org.apache.brooklyn.core.entity.EntityPredicates;
 import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
 import org.apache.brooklyn.core.entity.trait.Startable;
@@ -335,9 +336,10 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
             extraConfigGlobs.stream().forEach(g -> { extraConfigPreds.add( ConfigPredicates.nameMatchesGlob(g) ); });
             entity.config().findKeysDeclared(Predicates.or(extraConfigPreds)).forEach(key -> {
                 if (Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.SEE_CONFIG, new EntityAndItem<String>(entity, key.getName()))) {
-                    Object v = entity.config().get(key);
+                    Maybe<Object> vRaw = ((EntityInternal)entity).config().getRaw(key);
+                    Object v = vRaw.isPresent() ? vRaw.get() : entity.config().get(key);
                     if (v!=null) {
-                        v = resolving(v).preferJson(true).asJerseyOutermostReturnValue(false).raw(true).context(entity).immediately(true).timeout(Duration.ZERO).resolve();
+                        v = resolving(v, mgmt()).preferJson(true).asJerseyOutermostReturnValue(false).raw(true).context(entity).immediately(true).timeout(Duration.ZERO).resolve();
                         configs.put(key.getName(), v);
                     }
                 }


[3/3] brooklyn-server git commit: Closes #1015

Posted by gr...@apache.org.
Closes #1015

* origin/pr/1015:
  introduce new distinct "application" itemType on catalog BOM files, which don't set template tag
  when getting details, get the raw value then resolve it immediately


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

Branch: refs/heads/master
Commit: d0897b2db06d00e249a907a368beaebd476b6551
Parents: 61ac3cc 5dbf70d
Author: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Authored: Thu Nov 15 21:19:53 2018 +0000
Committer: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Committed: Thu Nov 15 21:19:53 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/resources/ApplicationResource.java     |  6 ++-
 .../rest/transform/CatalogTransformer.java      |  2 +
 .../org/apache/brooklyn/cli/ItemLister.java     |  2 +-
 12 files changed, 72 insertions(+), 10 deletions(-)
----------------------------------------------------------------------



[2/3] brooklyn-server git commit: introduce new distinct "application" itemType on catalog BOM files, which don't set template tag

Posted by gr...@apache.org.
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 <al...@cloudsoftcorp.com>
Authored: Thu Nov 15 17:59:13 2018 +0000
Committer: Alex Heneveld <al...@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);