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/11/04 15:29:57 UTC
[03/18] git commit: Use explicit property for context catalog id
bookkeeping
Use explicit property for context catalog id bookkeeping
Move from using tags to set the context catalog id to explicit properties.
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/d716e2fa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/d716e2fa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/d716e2fa
Branch: refs/heads/master
Commit: d716e2fa37ffd4444b304ffcacdcf87be29666a2
Parents: 405842d
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Wed Oct 29 18:27:17 2014 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Wed Oct 29 18:56:21 2014 +0200
----------------------------------------------------------------------
.../basic/AbstractBrooklynObjectSpec.java | 10 ++++++++
.../java/brooklyn/basic/BrooklynObject.java | 5 ++++
.../main/java/brooklyn/mementos/Memento.java | 2 ++
.../brooklyn/basic/AbstractBrooklynObject.java | 11 +++++++++
.../catalog/internal/BasicBrooklynCatalog.java | 2 +-
.../catalog/internal/CatalogItemDo.java | 5 ++++
.../brooklyn/entity/basic/BrooklynTags.java | 2 --
.../entity/proxying/InternalEntityFactory.java | 4 +++
.../AbstractBrooklynObjectRebindSupport.java | 1 +
.../entity/rebind/RebindManagerImpl.java | 26 ++++----------------
.../entity/rebind/dto/AbstractMemento.java | 13 ++++++++++
.../entity/rebind/dto/MementosGenerators.java | 1 +
.../AbstractBrooklynMementoPersister.java | 19 +-------------
.../BrooklynMementoPersisterToMultiFile.java | 4 +--
.../BrooklynMementoPersisterToObjectStore.java | 4 +--
.../BrooklynAssemblyTemplateInstantiator.java | 2 +-
16 files changed, 62 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java b/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java
index 0efb0a6..2ef4d67 100644
--- a/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java
+++ b/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java
@@ -35,6 +35,7 @@ public abstract class AbstractBrooklynObjectSpec<T,K extends AbstractBrooklynObj
private final Class<? extends T> type;
private String displayName;
+ private String contextCatalogItemId;
private Set<Object> tags = MutableSet.of();
protected AbstractBrooklynObjectSpec(Class<? extends T> type) {
@@ -59,6 +60,11 @@ public abstract class AbstractBrooklynObjectSpec<T,K extends AbstractBrooklynObj
return self();
}
+ public K contextCatalogItemId(String val) {
+ contextCatalogItemId = val;
+ return self();
+ }
+
public K tag(Object tag) {
tags.add(tag);
return self();
@@ -83,6 +89,10 @@ public abstract class AbstractBrooklynObjectSpec<T,K extends AbstractBrooklynObj
public final String getDisplayName() {
return displayName;
}
+
+ public final String getContextCatalogItemId() {
+ return contextCatalogItemId;
+ }
public final Set<Object> getTags() {
return ImmutableSet.copyOf(tags);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/api/src/main/java/brooklyn/basic/BrooklynObject.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/BrooklynObject.java b/api/src/main/java/brooklyn/basic/BrooklynObject.java
index 600bcad..a31fbf8 100644
--- a/api/src/main/java/brooklyn/basic/BrooklynObject.java
+++ b/api/src/main/java/brooklyn/basic/BrooklynObject.java
@@ -35,6 +35,11 @@ public interface BrooklynObject extends Identifiable {
* A display name; recommended to be a concise single-line description.
*/
String getDisplayName();
+
+ /**
+ * The catalog item ID this object was loaded from.
+ */
+ String getContextCatalogItemId();
/**
* Tags are arbitrary objects which can be attached to an entity for subsequent reference.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/api/src/main/java/brooklyn/mementos/Memento.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/mementos/Memento.java b/api/src/main/java/brooklyn/mementos/Memento.java
index be8b629..6ab36b0 100644
--- a/api/src/main/java/brooklyn/mementos/Memento.java
+++ b/api/src/main/java/brooklyn/mementos/Memento.java
@@ -42,6 +42,8 @@ public interface Memento extends Serializable {
public String getType();
+ public String getContextCatalogItemId();
+
public String getDisplayName();
/**
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java b/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
index a32afaf..8c2608d 100644
--- a/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
+++ b/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
@@ -48,6 +48,8 @@ public abstract class AbstractBrooklynObject implements BrooklynObjectInternal {
@SetFromFlag(value = "id")
private String id = Identifiers.makeRandomId(8);
+ private String contextCatalogItemId;
+
/** subclasses should synchronize on this for all access */
@SetFromFlag(value = "tags")
private final Set<Object> tags = Sets.newLinkedHashSet();
@@ -167,6 +169,15 @@ public abstract class AbstractBrooklynObject implements BrooklynObjectInternal {
return id;
}
+ public void setContextCatalogItemId(String id) {
+ this.contextCatalogItemId = id;
+ }
+
+ @Override
+ public String getContextCatalogItemId() {
+ return contextCatalogItemId;
+ }
+
protected void onTagsChanged() {
requestPersist();
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/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 18a77f7..a0a8375 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -257,7 +257,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
break;
default: throw new RuntimeException("Only entity & policy catalog items are supported. Unsupported catalog item type " + item.getCatalogItemType());
}
- ((AbstractBrooklynObjectSpec<?, ?>)spec).tag(BrooklynTags.newContextCatalogItemIdTag(item.getId()));
+ ((AbstractBrooklynObjectSpec<?, ?>)spec).contextCatalogItemId(item.getId());
return spec;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/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 136a466..178ef90 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -59,6 +59,11 @@ public class CatalogItemDo<T,SpecT> implements CatalogItem<T,SpecT> {
}
@Override
+ public String getContextCatalogItemId() {
+ return null;
+ }
+
+ @Override
public String getRegisteredTypeName() {
return itemDto.getRegisteredTypeName();
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/entity/basic/BrooklynTags.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BrooklynTags.java b/core/src/main/java/brooklyn/entity/basic/BrooklynTags.java
index 67b4b42..01ac52e 100644
--- a/core/src/main/java/brooklyn/entity/basic/BrooklynTags.java
+++ b/core/src/main/java/brooklyn/entity/basic/BrooklynTags.java
@@ -29,7 +29,6 @@ import com.google.common.annotations.Beta;
public class BrooklynTags {
public static final String YAML_SPEC_KIND = "yaml_spec";
- public static final String CONTEXT_CATALOG_ITEM_ID_KIND = "context_catalog_item_id";
public static final String NOTES_KIND = "notes";
public static class NamedStringTag implements Serializable {
@@ -54,7 +53,6 @@ public class BrooklynTags {
}
public static NamedStringTag newYamlSpecTag(String contents) { return new NamedStringTag(YAML_SPEC_KIND, contents); }
- public static NamedStringTag newContextCatalogItemIdTag(String contents) { return new NamedStringTag(CONTEXT_CATALOG_ITEM_ID_KIND, contents); }
public static NamedStringTag newNotesTag(String contents) { return new NamedStringTag(NOTES_KIND, contents); }
public static NamedStringTag findFirst(String kind, Iterable<Object> tags) {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java b/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
index b292827..f4e18cf 100644
--- a/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
+++ b/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
@@ -241,6 +241,10 @@ public class InternalEntityFactory extends InternalFactory {
if (spec.getDisplayName()!=null)
((AbstractEntity)entity).setDisplayName(spec.getDisplayName());
+ if (spec.getContextCatalogItemId()!=null) {
+ ((AbstractEntity)entity).setContextCatalogItemId(spec.getContextCatalogItemId());
+ }
+
entity.tags().addTags(spec.getTags());
((AbstractEntity)entity).configure(MutableMap.copyOf(spec.getFlags()));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/entity/rebind/AbstractBrooklynObjectRebindSupport.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/AbstractBrooklynObjectRebindSupport.java b/core/src/main/java/brooklyn/entity/rebind/AbstractBrooklynObjectRebindSupport.java
index 9dc9645..3eb6c96 100644
--- a/core/src/main/java/brooklyn/entity/rebind/AbstractBrooklynObjectRebindSupport.java
+++ b/core/src/main/java/brooklyn/entity/rebind/AbstractBrooklynObjectRebindSupport.java
@@ -48,6 +48,7 @@ public abstract class AbstractBrooklynObjectRebindSupport<T extends Memento> imp
if (LOG.isTraceEnabled()) LOG.trace("Reconstructing: {}", memento.toVerboseString());
instance.setDisplayName(memento.getDisplayName());
+ instance.setContextCatalogItemId(memento.getContextCatalogItemId());
addConfig(rebindContext, memento);
addTags(rebindContext, memento);
addCustoms(rebindContext, memento);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java b/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
index 2691a5b..9f620d6 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
@@ -47,8 +47,6 @@ import brooklyn.entity.Entity;
import brooklyn.entity.Feed;
import brooklyn.entity.basic.AbstractApplication;
import brooklyn.entity.basic.AbstractEntity;
-import brooklyn.entity.basic.BrooklynTags;
-import brooklyn.entity.basic.BrooklynTags.NamedStringTag;
import brooklyn.entity.basic.ConfigKeys;
import brooklyn.entity.basic.EntityInternal;
import brooklyn.entity.proxying.InternalEntityFactory;
@@ -656,7 +654,7 @@ public class RebindManagerImpl implements RebindManager {
if (LOG.isDebugEnabled()) LOG.debug("RebindManager instantiating policy {}", policyMemento);
try {
- Policy policy = newPolicy(policyMemento, getPolicyLoadingContext(policyMemento.getId(), memento, classLoader, rebindContext));
+ Policy policy = newPolicy(policyMemento, getLoadingContextFromCatalogItemId(policyMemento.getContextCatalogItemId(), classLoader, rebindContext));
rebindContext.registerPolicy(policyMemento.getId(), policy);
} catch (Exception e) {
exceptionHandler.onCreateFailed(BrooklynObjectType.POLICY, policyMemento.getId(), policyMemento.getType(), e);
@@ -924,24 +922,10 @@ public class RebindManagerImpl implements RebindManager {
if (ptr.getContextCatalogItemId() != null) {
return ptr.getContextCatalogItemId();
}
- ptr = entityIdToManifest.get(ptr.getParent());
- }
- return null;
- }
-
- private BrooklynClassLoadingContext getPolicyLoadingContext(String policyId, BrooklynMemento memento, ClassLoader classLoader, RebindContextImpl rebindContext) {
- PolicyMemento policyMemento = memento.getPolicyMemento(policyId);
- String contextCatalogItemId = getContextCatalogItemIdFromTags(policyMemento.getTags());
- return getLoadingContextFromCatalogItemId(contextCatalogItemId, classLoader, rebindContext);
- }
-
- private String getContextCatalogItemIdFromTags(Collection<Object> tags) {
- for (Object obj : tags) {
- if (obj instanceof NamedStringTag) {
- NamedStringTag tag = (NamedStringTag) obj;
- if (BrooklynTags.CONTEXT_CATALOG_ITEM_ID_KIND.equals(tag.getKind())) {
- return tag.getContents();
- }
+ if (ptr.getParent() != null) {
+ ptr = entityIdToManifest.get(ptr.getParent());
+ } else {
+ ptr = null;
}
}
return null;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/entity/rebind/dto/AbstractMemento.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/dto/AbstractMemento.java b/core/src/main/java/brooklyn/entity/rebind/dto/AbstractMemento.java
index 67e35da..c07b991 100644
--- a/core/src/main/java/brooklyn/entity/rebind/dto/AbstractMemento.java
+++ b/core/src/main/java/brooklyn/entity/rebind/dto/AbstractMemento.java
@@ -43,6 +43,7 @@ public abstract class AbstractMemento implements Memento, Serializable {
protected String type;
protected Class<?> typeClass;
protected String displayName;
+ protected String contextCatalogItemId;
protected Map<String, Object> fields = Maps.newLinkedHashMap();
protected List<Object> tags = Lists.newArrayList();
@@ -56,6 +57,7 @@ public abstract class AbstractMemento implements Memento, Serializable {
type = other.getType();
typeClass = other.getTypeClass();
displayName = other.getDisplayName();
+ contextCatalogItemId = other.getContextCatalogItemId();
fields.putAll(other.getCustomFields());
tags.addAll(other.getTags());
return self();
@@ -75,6 +77,9 @@ public abstract class AbstractMemento implements Memento, Serializable {
public B displayName(String val) {
displayName = val; return self();
}
+ public B contextCatalogItemId(String val) {
+ contextCatalogItemId = val; return self();
+ }
/**
* @deprecated since 0.7.0; use config/attributes so generic persistence will work, rather than requiring "custom fields"
*/
@@ -88,6 +93,7 @@ public abstract class AbstractMemento implements Memento, Serializable {
private String type;
private String id;
private String displayName;
+ private String contextCatalogItemId;
private List<Object> tags;
private transient Class<?> typeClass;
@@ -103,6 +109,7 @@ public abstract class AbstractMemento implements Memento, Serializable {
type = builder.type;
typeClass = builder.typeClass;
displayName = builder.displayName;
+ contextCatalogItemId = builder.contextCatalogItemId;
setCustomFields(builder.fields);
tags = toPersistedList(builder.tags);
}
@@ -141,6 +148,12 @@ public abstract class AbstractMemento implements Memento, Serializable {
return displayName;
}
+ @Override
+ public String getContextCatalogItemId() {
+ return contextCatalogItemId;
+ }
+
+ @Override
public List<Object> getTags() {
return fromPersistedList(tags);
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
index d5e6724..8888f5c 100644
--- a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
+++ b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
@@ -378,6 +378,7 @@ public class MementosGenerators {
private static void populateBrooklynObjectMementoBuilder(BrooklynObject instance, AbstractMemento.Builder<?> builder) {
builder.id = instance.getId();
builder.displayName = instance.getDisplayName();
+ builder.contextCatalogItemId = instance.getContextCatalogItemId();
builder.type = instance.getClass().getName();
builder.typeClass = instance.getClass();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/entity/rebind/persister/AbstractBrooklynMementoPersister.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/AbstractBrooklynMementoPersister.java b/core/src/main/java/brooklyn/entity/rebind/persister/AbstractBrooklynMementoPersister.java
index 9758213..d185ab5 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/AbstractBrooklynMementoPersister.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/AbstractBrooklynMementoPersister.java
@@ -19,11 +19,6 @@
package brooklyn.entity.rebind.persister;
import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Collection;
-
-import brooklyn.entity.basic.BrooklynTags;
-import brooklyn.entity.basic.BrooklynTags.NamedStringTag;
import brooklyn.entity.rebind.PersistenceExceptionHandler;
import brooklyn.entity.rebind.RebindExceptionHandler;
import brooklyn.entity.rebind.dto.BrooklynMementoManifestImpl;
@@ -56,7 +51,7 @@ public abstract class AbstractBrooklynMementoPersister implements BrooklynMement
public BrooklynMementoManifest loadMementoManifest(RebindExceptionHandler exceptionHandler) {
BrooklynMementoManifestImpl.Builder builder = BrooklynMementoManifestImpl.builder();
for (EntityMemento entity : memento.getEntityMementos().values()) {
- builder.entity(entity.getId(), entity.getType(), entity.getParent(), getContextCatalogItemId(entity.getTags()));
+ builder.entity(entity.getId(), entity.getType(), entity.getParent(), entity.getContextCatalogItemId());
}
for (LocationMemento entity : memento.getLocationMementos().values()) {
builder.location(entity.getId(), entity.getType());
@@ -73,18 +68,6 @@ public abstract class AbstractBrooklynMementoPersister implements BrooklynMement
return builder.build();
}
- private String getContextCatalogItemId(Collection<Object> tags) {
- for (Object obj : tags) {
- if (obj instanceof NamedStringTag) {
- NamedStringTag tag = (NamedStringTag) obj;
- if (BrooklynTags.CONTEXT_CATALOG_ITEM_ID_KIND.equals(tag.getKind())) {
- return tag.getContents();
- }
- }
- }
- return null;
- }
-
@Override public void enableWriteAccess() {}
@Override public void disableWriteAccess(boolean graceful) {}
@Override public void stop(boolean graceful) {}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java
index cdd87b8..7e13d62 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java
@@ -32,8 +32,6 @@ import java.util.concurrent.TimeoutException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.entity.basic.BrooklynTags;
-import brooklyn.entity.basic.BrooklynTags.NamedStringTag;
import brooklyn.entity.rebind.BrooklynObjectType;
import brooklyn.entity.rebind.PersistenceExceptionHandler;
import brooklyn.entity.rebind.RebindExceptionHandler;
@@ -196,7 +194,7 @@ public class BrooklynMementoPersisterToMultiFile implements BrooklynMementoPersi
String id = (String) XmlUtil.xpath(contents, "/entity/id");
String type = (String) XmlUtil.xpath(contents, "/entity/type");
String parentId = (String) XmlUtil.xpath(contents, "/entity/parent");
- String contextCatalogItemId = (String) XmlUtil.xpath(contents, "/entity/tags/" + NamedStringTag.class.getName().replace("$", "_-") + "[kind='" + BrooklynTags.CONTEXT_CATALOG_ITEM_ID_KIND + "']/contents");
+ String contextCatalogItemId = (String) XmlUtil.xpath(contents, "/entity/contextCatalogItemId");
builder.entity(id, type, Strings.emptyToNull(parentId), Strings.emptyToNull(contextCatalogItemId));
} catch (Exception e) {
exceptionHandler.onLoadMementoFailed(BrooklynObjectType.ENTITY, "File "+file, e);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
index 09f58b7..cf03958 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
@@ -37,9 +37,7 @@ import org.slf4j.LoggerFactory;
import brooklyn.config.BrooklynProperties;
import brooklyn.config.ConfigKey;
-import brooklyn.entity.basic.BrooklynTags;
import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.entity.basic.BrooklynTags.NamedStringTag;
import brooklyn.entity.rebind.BrooklynObjectType;
import brooklyn.entity.rebind.PeriodicDeltaChangeListener;
import brooklyn.entity.rebind.PersistenceExceptionHandler;
@@ -255,7 +253,7 @@ public class BrooklynMementoPersisterToObjectStore implements BrooklynMementoPer
String id = (String) XmlUtil.xpath(contents, "/entity/id");
String objType = (String) XmlUtil.xpath(contents, "/entity/type");
String parentId = (String) XmlUtil.xpath(contents, "/entity/parent");
- String contextCatalogItemId = (String) XmlUtil.xpath(contents, "/entity/tags/" + NamedStringTag.class.getName().replace("$", "_-") + "[kind='" + BrooklynTags.CONTEXT_CATALOG_ITEM_ID_KIND + "']/contents");
+ String contextCatalogItemId = (String) XmlUtil.xpath(contents, "/entity/contextCatalogItemId");
builder.entity(id, objType, Strings.emptyToNull(parentId), Strings.emptyToNull(contextCatalogItemId));
break;
case LOCATION:
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d716e2fa/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 1d05811..346b19c 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
@@ -203,7 +203,7 @@ public class BrooklynAssemblyTemplateInstantiator implements AssemblyTemplateSpe
} else {
//TODO migrate to catalog.createSpec
spec = resolveCatalogYamlReferenceSpec(mgmt, item, encounteredCatalogTypes);
- spec.tag(BrooklynTags.newContextCatalogItemIdTag(item.getId()));
+ spec.contextCatalogItemId(item.getId());
entityResolver.populateSpec(spec);
}
}