Add catalog item super id support.

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

Branch: refs/heads/master
Commit: 8c4427299f77de91258d8d653d8d6d1e75644328
Parents: 7e88322
Author: Geoff Macartney <[email protected]>
Authored: Tue Sep 20 11:16:36 2016 +0100
Committer: Geoff Macartney <[email protected]>
Committed: Thu Apr 20 11:18:42 2017 +0100

----------------------------------------------------------------------
 .../internal/AbstractBrooklynObjectSpec.java    |  4 +-
 .../brooklyn/api/objs/BrooklynObject.java       | 13 +++++++
 .../core/catalog/internal/CatalogItemDo.java    | 16 ++++++++
 .../internal/CatalogItemDtoAbstract.java        |  2 +
 .../core/catalog/internal/CatalogUtils.java     |  4 +-
 .../access/PortForwardManagerClient.java        |  7 ++++
 .../core/mgmt/rebind/RebindIteration.java       |  1 +
 .../core/objs/AbstractBrooklynObject.java       | 41 ++++++++++++++++++--
 .../core/objs/AbstractEntityAdjunct.java        |  8 ++--
 .../core/objs/BrooklynObjectInternal.java       |  4 ++
 .../core/objs/proxy/InternalEntityFactory.java  |  5 ++-
 .../objs/proxy/InternalLocationFactory.java     |  2 +-
 .../core/objs/proxy/InternalPolicyFactory.java  |  4 +-
 .../util/core/ClassLoaderUtilsTest.java         |  2 +-
 14 files changed, 96 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java
----------------------------------------------------------------------
diff --git 
a/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java
 
b/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java
index 95f791b..048a440 100644
--- 
a/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java
+++ 
b/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java
@@ -218,7 +218,7 @@ public abstract class AbstractBrooklynObjectSpec<T,SpecT 
extends AbstractBrookly
     }
 
     /**
-     * Get immutable list of ids of this object's catalog item and its nested 
catalog items.
+     * An immutable list of ids of this object's catalog item and its defining 
catalog items.
      * e.g. if the catalog item is defined as
      * <pre>
      *     items:
@@ -227,7 +227,7 @@ public abstract class AbstractBrooklynObjectSpec<T,SpecT 
extends AbstractBrookly
      * </pre>
      * then the list will contain X, Y.
      */
-    public final List<String> getNestedCatalogItemIds() {
+    public final List<String> getCatalogItemSuperIds() {
         return ImmutableList.copyOf(catalogItemIdStack);
     }
 

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObject.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObject.java 
b/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObject.java
index b42bc58..6167288 100644
--- a/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObject.java
+++ b/api/src/main/java/org/apache/brooklyn/api/objs/BrooklynObject.java
@@ -18,6 +18,7 @@
  */
 package org.apache.brooklyn.api.objs;
 
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -57,6 +58,18 @@ public interface BrooklynObject extends Identifiable, 
Configurable {
      * Callers can set an explicit catalog item ID if inferencing is not 
correct.
      */
     String getCatalogItemId();
+
+    /**
+     * An immutable list of ids of this object's catalog item and its defining 
catalog items.
+     * e.g. if the catalog item is defined as
+     * <pre>
+     *     items:
+     *     - id: X
+     *       item: Y
+     * </pre>
+     * then the list will contain X, Y.
+     */
+    List<String> getCatalogItemSuperIds();
     
     /** 
      * Tags are arbitrary objects which can be attached to an entity for 
subsequent reference.

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java
 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java
index 1766ad7..6699e39 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java
@@ -19,6 +19,7 @@
 package org.apache.brooklyn.core.catalog.internal;
 
 import java.util.Collection;
+import java.util.List;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -131,6 +132,21 @@ public class CatalogItemDo<T,SpecT> implements 
CatalogItem<T,SpecT>, BrooklynObj
     }
 
     @Override
+    public void setCatalogItemIds(List<String> ids) {
+        itemDto.setCatalogItemIds(ids);
+    }
+
+    @Override
+    public List<String> getCatalogItemSuperIds() {
+        return itemDto.getCatalogItemSuperIds();
+    }
+
+    @Override
+    public void nestCatalogItemId(String id) {
+        itemDto.nestCatalogItemId(id);
+    }
+
+    @Override
     public String getJavaType() {
         return itemDto.getJavaType();
     }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java
 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java
index df0d2e4..41ed6a1 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java
@@ -45,6 +45,8 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Sets;
 
+// TODO add support for nested catalog items, implement nestCatalogItemId in 
terms of symbolicName/Version
+// TODO also getCatalogItemSuperIds.
 public abstract class CatalogItemDtoAbstract<T, SpecT> extends 
AbstractBrooklynObject implements CatalogItem<T, SpecT> {
 
     private static Logger LOG = 
LoggerFactory.getLogger(CatalogItemDtoAbstract.class);

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java
 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java
index 8b7555b..42e8766 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java
@@ -20,9 +20,11 @@ package org.apache.brooklyn.core.catalog.internal;
 
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.ListIterator;
 
 import javax.annotation.Nullable;
 
+import com.google.common.collect.Lists;
 import org.apache.brooklyn.api.catalog.BrooklynCatalog;
 import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
@@ -191,7 +193,7 @@ public class CatalogUtils {
                 if (log.isDebugEnabled())
                     BrooklynLogging.log(log, 
BrooklynLogging.levelDebugOrTraceIfReadOnly(entity),
                         "Catalog item addition: "+entity+" from 
"+entity.getCatalogItemId()+" applying its catalog item ID to "+itemBeingAdded);
-                
((BrooklynObjectInternal)itemBeingAdded).setCatalogItemId(entity.getCatalogItemId());
+                
((BrooklynObjectInternal)itemBeingAdded).setCatalogItemIds(entity.getCatalogItemSuperIds());
             } else {
                 if 
(!itemBeingAdded.getCatalogItemId().equals(entity.getCatalogItemId())) {
                     // not a problem, but something to watch out for

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/location/access/PortForwardManagerClient.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/location/access/PortForwardManagerClient.java
 
b/core/src/main/java/org/apache/brooklyn/core/location/access/PortForwardManagerClient.java
index b0baa01..1fb6ef5 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/location/access/PortForwardManagerClient.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/location/access/PortForwardManagerClient.java
@@ -19,6 +19,7 @@
 package org.apache.brooklyn.core.location.access;
 
 import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.brooklyn.api.entity.Entity;
@@ -26,6 +27,7 @@ import org.apache.brooklyn.api.location.Location;
 import org.apache.brooklyn.api.sensor.AttributeSensor;
 import org.apache.brooklyn.config.ConfigKey;
 import org.apache.brooklyn.config.ConfigKey.HasConfigKey;
+import org.apache.brooklyn.core.location.AbstractLocation;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 
 import com.google.common.base.Preconditions;
@@ -387,6 +389,11 @@ public class PortForwardManagerClient implements 
PortForwardManager {
     }
 
     @Override
+    public List<String> getCatalogItemSuperIds() {
+        return getDelegate().getCatalogItemSuperIds();
+    }
+
+    @Override
     public TagSupport tags() {
         return getDelegate().tags();
     }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
index 6df8232..0585f9b 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
@@ -931,6 +931,7 @@ public abstract class RebindIteration {
 
         protected void setCatalogItemId(BrooklynObject item, String 
catalogItemId) {
             if (catalogItemId!=null) {
+                // TODO add support for nested catalog superids here.
                 ((BrooklynObjectInternal)item).setCatalogItemId(catalogItemId);
             }
         }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java 
b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
index d435135..fdfc624 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
@@ -18,10 +18,22 @@
  */
 package org.apache.brooklyn.core.objs;
 
+import java.util.ArrayDeque;
 import java.util.Collections;
+import java.util.Deque;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.google.common.collect.ImmutableList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
 import org.apache.brooklyn.api.internal.ApiObjectsFactory;
 import org.apache.brooklyn.api.mgmt.ManagementContext;
 import org.apache.brooklyn.core.entity.AbstractEntity;
@@ -50,7 +62,7 @@ public abstract class AbstractBrooklynObject implements 
BrooklynObjectInternal {
     @SetFromFlag("id")
     private String id = Identifiers.makeRandomLowercaseId(10);
 
-    private String catalogItemId;
+    private Deque<String> catalogItemIdStack = new ArrayDeque<>();
 
     /** callers (only in TagSupport) should synchronize on this for all access 
*/
     @SetFromFlag("tags")
@@ -83,7 +95,7 @@ public abstract class AbstractBrooklynObject implements 
BrooklynObjectInternal {
         // correct behaviour should be to inherit context's search path, 
perhaps, though maybe that's better done as spec?
         // in any case, should not define it as _the_ catalog item ID; also 
see assignment based on parent
         // in CatalogUtils.setCatalogItemIdOnAddition
-        catalogItemId = ApiObjectsFactory.get().getCatalogItemIdFromContext();
+        
setCatalogItemId(ApiObjectsFactory.get().getCatalogItemIdFromContext());
 
         // rely on sub-class to call configure(properties), because otherwise 
its fields will not have been initialised
     }
@@ -190,12 +202,33 @@ public abstract class AbstractBrooklynObject implements 
BrooklynObjectInternal {
 
     @Override
     public void setCatalogItemId(String id) {
-        this.catalogItemId = id;
+        catalogItemIdStack.clear();
+        nestCatalogItemId(id);
+    }
+
+    @Override
+    public void setCatalogItemIds(List<String> ids) {
+        catalogItemIdStack.clear();
+        catalogItemIdStack.addAll(ids);
+    }
+
+        @Override
+    public void nestCatalogItemId(String id) {
+        if (null != id) {
+            catalogItemIdStack.addFirst(id);
+        }
+    }
+
+    public List<String> getCatalogItemSuperIds() {
+        return ImmutableList.copyOf(catalogItemIdStack);
     }
 
     @Override
     public String getCatalogItemId() {
-        return catalogItemId;
+        if (catalogItemIdStack.size() != 0) {
+            return catalogItemIdStack.getFirst();
+        }
+        return null;
     }
 
     protected void onTagsChanged() {

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/objs/AbstractEntityAdjunct.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractEntityAdjunct.java 
b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractEntityAdjunct.java
index 21956f8..c9bdc35 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractEntityAdjunct.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractEntityAdjunct.java
@@ -288,7 +288,7 @@ public abstract class AbstractEntityAdjunct extends 
AbstractBrooklynObject imple
                 doReconfigureConfig(key, (T)val);
             }
         }
-        
+
         @Override
         protected <T> void onConfigChanged(ConfigKey<T> key, Object val) {
             onChanged();
@@ -308,7 +308,7 @@ public abstract class AbstractEntityAdjunct extends 
AbstractBrooklynObject imple
         protected ExecutionContext getContext() {
             return AbstractEntityAdjunct.this.execution;
         }
-        
+
         @Override
         protected AbstractConfigMapImpl<?> getConfigsInternal() {
             return configsInternal;
@@ -342,7 +342,7 @@ public abstract class AbstractEntityAdjunct extends 
AbstractBrooklynObject imple
     public <T> T setConfig(ConfigKey<T> key, T val) {
         return config().set(key, val);
     }
-    
+
     /**
      * Invoked whenever a config change is applied after management is started.
      * Default implementation throws an exception to disallow the change. 
@@ -379,7 +379,7 @@ public abstract class AbstractEntityAdjunct extends 
AbstractBrooklynObject imple
         this.entity = entity;
         this.execution = ((EntityInternal) entity).getExecutionContext();
         if (entity!=null && getCatalogItemId() == null) {
-            setCatalogItemId(entity.getCatalogItemId());
+            setCatalogItemIds(entity.getCatalogItemSuperIds());
         }
     }
     

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java 
b/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java
index 3fc2c99..4dcbf1a 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java
@@ -18,6 +18,7 @@
  */
 package org.apache.brooklyn.core.objs;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.brooklyn.api.mgmt.rebind.RebindSupport;
@@ -37,6 +38,9 @@ import com.google.common.annotations.Beta;
 public interface BrooklynObjectInternal extends BrooklynObject, Rebindable {
     
     void setCatalogItemId(String id);
+    void setCatalogItemIds(List<String> id);
+
+    void nestCatalogItemId(String id);
     
     // subclasses typically apply stronger typing
     @Override

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
 
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
index 6090c5b..77dfcf4 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
@@ -33,6 +33,7 @@ import org.apache.brooklyn.api.entity.EntityLocal;
 import org.apache.brooklyn.api.entity.EntitySpec;
 import org.apache.brooklyn.api.entity.EntityTypeRegistry;
 import org.apache.brooklyn.api.entity.Group;
+import org.apache.brooklyn.api.location.Location;
 import org.apache.brooklyn.api.location.LocationSpec;
 import org.apache.brooklyn.api.objs.SpecParameter;
 import org.apache.brooklyn.api.policy.Policy;
@@ -246,7 +247,7 @@ public class InternalEntityFactory extends InternalFactory {
                 ((AbstractEntity)entity).setDisplayName(spec.getDisplayName());
             
             if (spec.getCatalogItemId()!=null) {
-                
((AbstractEntity)entity).setCatalogItemId(spec.getCatalogItemId());
+                
((AbstractEntity)entity).setCatalogItemIds(spec.getCatalogItemSuperIds());
             }
             
             entity.tags().addTags(spec.getTags());
@@ -344,7 +345,7 @@ public class InternalEntityFactory extends InternalFactory {
                     // are already accessible through the REST API.
                     LocationSpec<?> taggedSpec = 
LocationSpec.create(locationSpec)
                             
.tag(BrooklynTags.newOwnerEntityTag(entity.getId()));
-                    ((AbstractEntity)entity).addLocations(MutableList.of(
+                    
((AbstractEntity)entity).addLocations(MutableList.<Location>of(
                         
managementContext.getLocationManager().createLocation(taggedSpec)));
                 }
                 ((AbstractEntity)entity).addLocations(spec.getLocations());

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalLocationFactory.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalLocationFactory.java
 
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalLocationFactory.java
index 4ba0658..57098b3 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalLocationFactory.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalLocationFactory.java
@@ -118,7 +118,7 @@ public class InternalLocationFactory extends 
InternalFactory {
                 ((AbstractLocation)loc).setDisplayName(spec.getDisplayName());
             
             if (spec.getCatalogItemId()!=null) {
-                
((AbstractLocation)loc).setCatalogItemId(spec.getCatalogItemId());
+                
((AbstractLocation)loc).setCatalogItemIds(spec.getCatalogItemSuperIds());
             }
             
             loc.tags().addTags(spec.getTags());

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java
 
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java
index 2fc91ef..fd444a0 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java
@@ -107,7 +107,7 @@ public class InternalPolicyFactory extends InternalFactory {
                 ((AbstractPolicy)pol).setDisplayName(spec.getDisplayName());
             }
             if (spec.getCatalogItemId()!=null) {
-                
((AbstractPolicy)pol).setCatalogItemId(spec.getCatalogItemId());
+                
((AbstractPolicy)pol).setCatalogItemIds(spec.getCatalogItemSuperIds());
             }
             
             pol.tags().addTags(spec.getTags());
@@ -148,7 +148,7 @@ public class InternalPolicyFactory extends InternalFactory {
                 
((AbstractEnricher)enricher).setDisplayName(spec.getDisplayName());
             
             if (spec.getCatalogItemId()!=null) {
-                
((AbstractEnricher)enricher).setCatalogItemId(spec.getCatalogItemId());
+                
((AbstractEnricher)enricher).setCatalogItemIds(spec.getCatalogItemSuperIds());
             }
             
             enricher.tags().addTags(spec.getTags());

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8c442729/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java 
b/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
index cee97ee..a6e75e2 100644
--- a/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
+++ b/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
@@ -325,7 +325,7 @@ public class ClassLoaderUtilsTest {
                 .plan("{\"services\":[{\"type\": \"" + clazz.getName() + 
"\"}]}")
                 .build();
         mgmt.getCatalog().addItem(item);
-        ((EntityInternal)entity).setCatalogItemId(item.getId());
+        
((EntityInternal)entity).setCatalogItemIds(item.getCatalogItemSuperIds());
         return entity;
     }
 

Reply via email to