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:30:05 UTC
[11/18] git commit: Catalog Item ID field renaming and
ApiObjectsFactory tweaks
Catalog Item ID field renaming and ApiObjectsFactory tweaks
* catalogItemId rather than contextCatalogItemId
* ApiObjectsFactory moved to internal package, inner class promoted so services file is nicer
* safer initialization of ApiObjectsFactory
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/72ac1296
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/72ac1296
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/72ac1296
Branch: refs/heads/master
Commit: 72ac1296dde17d5a80a5496d8f81273e07bd3bf1
Parents: e832ee4
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Oct 31 10:19:57 2014 -0500
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Nov 3 18:57:19 2014 +0000
----------------------------------------------------------------------
.../basic/AbstractBrooklynObjectSpec.java | 13 +++--
.../java/brooklyn/basic/ApiObjectsFactory.java | 41 -------------
.../java/brooklyn/basic/BrooklynObject.java | 10 +++-
.../basic/internal/ApiObjectsFactory.java | 60 ++++++++++++++++++++
.../internal/ApiObjectsFactoryInterface.java | 29 ++++++++++
.../main/java/brooklyn/catalog/CatalogItem.java | 9 ++-
.../mementos/BrooklynMementoManifest.java | 2 +-
.../main/java/brooklyn/mementos/Memento.java | 2 +-
.../brooklyn/basic/AbstractBrooklynObject.java | 13 +++--
.../brooklyn/basic/ApiObjectsFactoryImpl.java | 41 -------------
.../basic/internal/ApiObjectsFactoryImpl.java | 41 +++++++++++++
.../catalog/internal/BasicBrooklynCatalog.java | 2 +-
.../brooklyn/catalog/internal/CatalogDo.java | 3 +-
.../catalog/internal/CatalogItemDo.java | 2 +-
.../brooklyn/catalog/internal/CatalogUtils.java | 5 +-
.../brooklyn/entity/basic/AbstractEntity.java | 4 +-
.../entity/proxying/InternalEntityFactory.java | 4 +-
.../proxying/InternalLocationFactory.java | 4 +-
.../entity/proxying/InternalPolicyFactory.java | 8 +--
.../AbstractBrooklynObjectRebindSupport.java | 2 +-
.../entity/rebind/RebindManagerImpl.java | 14 ++---
.../entity/rebind/dto/AbstractMemento.java | 16 +++---
.../rebind/dto/EntityMementoManifestImpl.java | 10 ++--
.../entity/rebind/dto/MementosGenerators.java | 2 +-
.../AbstractBrooklynMementoPersister.java | 2 +-
.../BrooklynMementoPersisterToMultiFile.java | 4 +-
.../BrooklynMementoPersisterToObjectStore.java | 4 +-
.../OsgiBrooklynClassLoadingContext.java | 12 ++--
.../policy/basic/AbstractEntityAdjunct.java | 4 +-
...ApiObjectsFactory$ApiObjectsFactoryInterface | 19 -------
...yn.basic.internal.ApiObjectsFactoryInterface | 19 +++++++
.../BrooklynAssemblyTemplateInstantiator.java | 2 +-
.../BrooklynComponentTemplateResolver.java | 4 +-
33 files changed, 236 insertions(+), 171 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 867b509..c0a4ccc 100644
--- a/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java
+++ b/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java
@@ -22,6 +22,7 @@ import java.io.Serializable;
import java.lang.reflect.Modifier;
import java.util.Set;
+import brooklyn.basic.internal.ApiObjectsFactory;
import brooklyn.util.collections.MutableSet;
import brooklyn.util.exceptions.Exceptions;
@@ -35,13 +36,13 @@ public abstract class AbstractBrooklynObjectSpec<T,K extends AbstractBrooklynObj
private final Class<? extends T> type;
private String displayName;
- private String contextCatalogItemId;
+ private String catalogItemId;
private Set<Object> tags = MutableSet.of();
protected AbstractBrooklynObjectSpec(Class<? extends T> type) {
checkValidType(type);
this.type = type;
- this.contextCatalogItemId = ApiObjectsFactory.get().getContextCatalogItemId();
+ this.catalogItemId = ApiObjectsFactory.get().getCatalogItemIdFromContext();
}
@SuppressWarnings("unchecked")
@@ -61,8 +62,8 @@ public abstract class AbstractBrooklynObjectSpec<T,K extends AbstractBrooklynObj
return self();
}
- public K contextCatalogItemId(String val) {
- contextCatalogItemId = val;
+ public K catalogItemId(String val) {
+ catalogItemId = val;
return self();
}
@@ -91,8 +92,8 @@ public abstract class AbstractBrooklynObjectSpec<T,K extends AbstractBrooklynObj
return displayName;
}
- public final String getContextCatalogItemId() {
- return contextCatalogItemId;
+ public final String getCatalogItemId() {
+ return catalogItemId;
}
public final Set<Object> getTags() {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/api/src/main/java/brooklyn/basic/ApiObjectsFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/ApiObjectsFactory.java b/api/src/main/java/brooklyn/basic/ApiObjectsFactory.java
deleted file mode 100644
index f85e9c7..0000000
--- a/api/src/main/java/brooklyn/basic/ApiObjectsFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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 brooklyn.basic;
-
-import java.util.ServiceLoader;
-
-public class ApiObjectsFactory {
- public interface ApiObjectsFactoryInterface {
- public String getContextCatalogItemId();
- }
-
- private static ApiObjectsFactoryInterface INSTANCE = getFactoryInstance();
-
- private static ApiObjectsFactoryInterface getFactoryInstance() {
- ServiceLoader<ApiObjectsFactoryInterface> LOADER = ServiceLoader.load(ApiObjectsFactoryInterface.class);
- for (ApiObjectsFactoryInterface item : LOADER) {
- return item;
- }
- throw new IllegalStateException("Implementation of " + ApiObjectsFactoryInterface.class + " not found on classpath");
- }
-
- public static ApiObjectsFactoryInterface get() {
- return INSTANCE;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 a31fbf8..4698780 100644
--- a/api/src/main/java/brooklyn/basic/BrooklynObject.java
+++ b/api/src/main/java/brooklyn/basic/BrooklynObject.java
@@ -38,8 +38,16 @@ public interface BrooklynObject extends Identifiable {
/**
* The catalog item ID this object was loaded from.
+ * <p>
+ * This can be used to understand the appropriate classloading context,
+ * such as for versioning purposes, as well as meta-information such as
+ * branding (maybe you can even get an icon) and
+ * potentially things like resource lifecycle (if a software version is being sunsetted).
+ * <p>
+ * In some cases this may be set heuristically from context and so may not be accurate.
+ * Callers can set an explicit catalog item ID if inferencing is not correct.
*/
- String getContextCatalogItemId();
+ String getCatalogItemId();
/**
* 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/72ac1296/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactory.java b/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactory.java
new file mode 100644
index 0000000..ecbb7fb
--- /dev/null
+++ b/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactory.java
@@ -0,0 +1,60 @@
+/*
+ * 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 brooklyn.basic.internal;
+
+import java.util.ServiceLoader;
+
+import brooklyn.util.guava.Maybe;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * This class grants access to implementations in core for operations needed in API classes.
+ * The majority of the API classes are interfaces or have minimal behaviour, but there are a
+ * few instances where more complex behaviour from core is desired.
+ * <p>
+ * This class acts as a bridge for those instances. See the concrete implementation of the
+ * {@link ApiObjectsFactoryInterface} in brooklyn-core class ApiObjectsFactoryImpl.
+ */
+@Beta
+public class ApiObjectsFactory {
+
+ private static Maybe<ApiObjectsFactoryInterface> INSTANCE;
+
+ private static synchronized ApiObjectsFactoryInterface getFactoryInstance() {
+ // defer initialization to allow any other static initialization to complete,
+ // and use maybe so we (1) don't check multiple times, but (2) do throw error in the caller's stack
+ if (INSTANCE!=null) return INSTANCE.get();
+
+ ServiceLoader<ApiObjectsFactoryInterface> LOADER = ServiceLoader.load(ApiObjectsFactoryInterface.class);
+ for (ApiObjectsFactoryInterface item : LOADER) {
+ INSTANCE = Maybe.of(item);
+ return INSTANCE.get();
+ }
+ INSTANCE = Maybe.absent("Implementation of " + ApiObjectsFactoryInterface.class + " not found on classpath");
+ return INSTANCE.get();
+ }
+
+ /**
+ * Create (if necessary) and return the concrete implementation from core for the
+ * methods exposed here. */
+ public static ApiObjectsFactoryInterface get() {
+ return getFactoryInstance();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryInterface.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryInterface.java b/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryInterface.java
new file mode 100644
index 0000000..275e102
--- /dev/null
+++ b/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryInterface.java
@@ -0,0 +1,29 @@
+/*
+ * 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 brooklyn.basic.internal;
+
+/**
+ * Methods from downstream projects used in API classes at runtime.
+ * See {@link ApiObjectsFactory}.
+ */
+public interface ApiObjectsFactoryInterface {
+
+ public String getCatalogItemIdFromContext();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 3a6c2fb..409bd7e 100644
--- a/api/src/main/java/brooklyn/catalog/CatalogItem.java
+++ b/api/src/main/java/brooklyn/catalog/CatalogItem.java
@@ -77,5 +77,12 @@ public interface CatalogItem<T,SpecT> extends BrooklynObject, Rebindable {
@Override
RebindSupport<CatalogItemMemento> getRebindSupport();
-}
+
+ /** Built up from {@link #getId()} and {@link #getVersion()}.
+ *
+ * (It is a bit self-referential having this method on this type of {@link BrooklynObject},
+ * but it is easier this than making the interface hierarchy more complicated.) */
+ @Override
+ public String getCatalogItemId();
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/api/src/main/java/brooklyn/mementos/BrooklynMementoManifest.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/mementos/BrooklynMementoManifest.java b/api/src/main/java/brooklyn/mementos/BrooklynMementoManifest.java
index 418c59b..6187e29 100644
--- a/api/src/main/java/brooklyn/mementos/BrooklynMementoManifest.java
+++ b/api/src/main/java/brooklyn/mementos/BrooklynMementoManifest.java
@@ -34,7 +34,7 @@ public interface BrooklynMementoManifest extends Serializable {
public String getId();
public String getType();
public String getParent();
- public String getContextCatalogItemId();
+ public String getCatalogItemId();
}
public Map<String, EntityMementoManifest> getEntityIdToManifest();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 6ab36b0..bb6f8b1 100644
--- a/api/src/main/java/brooklyn/mementos/Memento.java
+++ b/api/src/main/java/brooklyn/mementos/Memento.java
@@ -42,7 +42,7 @@ public interface Memento extends Serializable {
public String getType();
- public String getContextCatalogItemId();
+ public String getCatalogItemId();
public String getDisplayName();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 8ff8776..9d1cd88 100644
--- a/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
+++ b/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
@@ -25,6 +25,7 @@ import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import brooklyn.basic.internal.ApiObjectsFactory;
import brooklyn.entity.proxying.InternalFactory;
import brooklyn.entity.rebind.RebindManagerImpl;
import brooklyn.management.ManagementContext;
@@ -48,7 +49,7 @@ public abstract class AbstractBrooklynObject implements BrooklynObjectInternal {
@SetFromFlag(value = "id")
private String id = Identifiers.makeRandomId(8);
- private String contextCatalogItemId;
+ private String catalogItemId;
/** subclasses should synchronize on this for all access */
@SetFromFlag(value = "tags")
@@ -74,7 +75,7 @@ public abstract class AbstractBrooklynObject implements BrooklynObjectInternal {
_legacyConstruction = true;
}
- contextCatalogItemId = ApiObjectsFactory.get().getContextCatalogItemId();
+ catalogItemId = ApiObjectsFactory.get().getCatalogItemIdFromContext();
// rely on sub-class to call configure(properties), because otherwise its fields will not have been initialised
}
@@ -171,13 +172,13 @@ public abstract class AbstractBrooklynObject implements BrooklynObjectInternal {
return id;
}
- public void setContextCatalogItemId(String id) {
- this.contextCatalogItemId = id;
+ public void setCatalogItemId(String id) {
+ this.catalogItemId = id;
}
@Override
- public String getContextCatalogItemId() {
- return contextCatalogItemId;
+ public String getCatalogItemId() {
+ return catalogItemId;
}
protected void onTagsChanged() {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/basic/ApiObjectsFactoryImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/ApiObjectsFactoryImpl.java b/core/src/main/java/brooklyn/basic/ApiObjectsFactoryImpl.java
deleted file mode 100644
index 8c95442..0000000
--- a/core/src/main/java/brooklyn/basic/ApiObjectsFactoryImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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 brooklyn.basic;
-
-import brooklyn.basic.ApiObjectsFactory.ApiObjectsFactoryInterface;
-import brooklyn.entity.Entity;
-import brooklyn.entity.basic.BrooklynTaskTags;
-import brooklyn.management.Task;
-import brooklyn.util.task.Tasks;
-
-public class ApiObjectsFactoryImpl implements ApiObjectsFactoryInterface {
-
- @Override
- public String getContextCatalogItemId() {
- Task<?> currentTask = Tasks.current();
- if (currentTask != null) {
- Entity contextEntity = BrooklynTaskTags.getContextEntity(currentTask);
- if (contextEntity != null) {
- return contextEntity.getContextCatalogItemId();
- }
- }
- return null;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java b/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
new file mode 100644
index 0000000..f705494
--- /dev/null
+++ b/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
@@ -0,0 +1,41 @@
+/*
+ * 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 brooklyn.basic.internal;
+
+import brooklyn.basic.internal.ApiObjectsFactoryInterface;
+import brooklyn.entity.Entity;
+import brooklyn.entity.basic.BrooklynTaskTags;
+import brooklyn.management.Task;
+import brooklyn.util.task.Tasks;
+
+public class ApiObjectsFactoryImpl implements ApiObjectsFactoryInterface {
+
+ @Override
+ public String getCatalogItemIdFromContext() {
+ Task<?> currentTask = Tasks.current();
+ if (currentTask != null) {
+ Entity contextEntity = BrooklynTaskTags.getContextEntity(currentTask);
+ if (contextEntity != null) {
+ return contextEntity.getCatalogItemId();
+ }
+ }
+ return null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 bdb73d7..53cb2de 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -256,7 +256,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).contextCatalogItemId(item.getId());
+ ((AbstractBrooklynObjectSpec<?, ?>)spec).catalogItemId(item.getId());
return spec;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
index cb40839..749c275 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
@@ -20,6 +20,7 @@ package brooklyn.catalog.internal;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -233,7 +234,7 @@ public class CatalogDo {
mgmt.getRebindManager().getChangeListener().onManaged(entry);
}
}
-
+
/**
* Removes the given entry from the catalog.
*/
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 cb409fa..7bcf9ec 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -59,7 +59,7 @@ public class CatalogItemDo<T,SpecT> implements CatalogItem<T,SpecT> {
}
@Override
- public String getContextCatalogItemId() {
+ public String getCatalogItemId() {
return null;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java b/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
index c32d913..f5bf6bc 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
@@ -97,9 +97,10 @@ public class CatalogUtils {
}
}
- public static String getContextCatalogItemIdFromLoader(BrooklynClassLoadingContext loader) {
+ /** Scans the given {@link BrooklynClassLoadingContext} to detect what catalog item id is in effect. */
+ public static String getCatalogItemIdFromLoader(BrooklynClassLoadingContext loader) {
if (loader instanceof OsgiBrooklynClassLoadingContext) {
- return ((OsgiBrooklynClassLoadingContext)loader).getContextCatalogId();
+ return ((OsgiBrooklynClassLoadingContext)loader).getCatalogItemId();
} else {
return null;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
index 1474c1b..d97255b 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
@@ -556,8 +556,8 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
getApplication();
- if (getContextCatalogItemId() == null) {
- setContextCatalogItemId(entity.getContextCatalogItemId());
+ if (getCatalogItemId() == null) {
+ setCatalogItemId(entity.getCatalogItemId());
}
return this;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 b831651..50e15e6 100644
--- a/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
+++ b/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
@@ -241,8 +241,8 @@ public class InternalEntityFactory extends InternalFactory {
if (spec.getDisplayName()!=null)
((AbstractEntity)entity).setDisplayName(spec.getDisplayName());
- if (spec.getContextCatalogItemId()!=null) {
- ((AbstractEntity)entity).setContextCatalogItemId(spec.getContextCatalogItemId());
+ if (spec.getCatalogItemId()!=null) {
+ ((AbstractEntity)entity).setCatalogItemId(spec.getCatalogItemId());
}
entity.tags().addTags(spec.getTags());
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java b/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java
index 14ea05f..4e6c0d7 100644
--- a/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java
+++ b/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java
@@ -105,8 +105,8 @@ public class InternalLocationFactory extends InternalFactory {
if (spec.getDisplayName()!=null)
((AbstractLocation)loc).setDisplayName(spec.getDisplayName());
- if (spec.getContextCatalogItemId()!=null) {
- ((AbstractLocation)loc).setContextCatalogItemId(spec.getContextCatalogItemId());
+ if (spec.getCatalogItemId()!=null) {
+ ((AbstractLocation)loc).setCatalogItemId(spec.getCatalogItemId());
}
loc.tags().addTags(spec.getTags());
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java b/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
index c5785ca..618a691 100644
--- a/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
+++ b/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
@@ -107,8 +107,8 @@ public class InternalPolicyFactory extends InternalFactory {
if (spec.getDisplayName()!=null)
((AbstractPolicy)pol).setDisplayName(spec.getDisplayName());
- if (spec.getContextCatalogItemId()!=null) {
- ((AbstractPolicy)pol).setContextCatalogItemId(spec.getContextCatalogItemId());
+ if (spec.getCatalogItemId()!=null) {
+ ((AbstractPolicy)pol).setCatalogItemId(spec.getCatalogItemId());
}
pol.tags().addTags(spec.getTags());
@@ -148,8 +148,8 @@ public class InternalPolicyFactory extends InternalFactory {
if (spec.getDisplayName()!=null)
((AbstractEnricher)enricher).setDisplayName(spec.getDisplayName());
- if (spec.getContextCatalogItemId()!=null) {
- ((AbstractEnricher)enricher).setContextCatalogItemId(spec.getContextCatalogItemId());
+ if (spec.getCatalogItemId()!=null) {
+ ((AbstractEnricher)enricher).setCatalogItemId(spec.getCatalogItemId());
}
enricher.tags().addTags(spec.getTags());
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 3eb6c96..5d8bcd6 100644
--- a/core/src/main/java/brooklyn/entity/rebind/AbstractBrooklynObjectRebindSupport.java
+++ b/core/src/main/java/brooklyn/entity/rebind/AbstractBrooklynObjectRebindSupport.java
@@ -48,7 +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());
+ instance.setCatalogItemId(memento.getCatalogItemId());
addConfig(rebindContext, memento);
addTags(rebindContext, memento);
addCustoms(rebindContext, memento);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 6d6d6a1..9f15404 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
@@ -641,11 +641,11 @@ public class RebindManagerImpl implements RebindManager {
for (Map.Entry<String, EntityMementoManifest> entry : mementoManifest.getEntityIdToManifest().entrySet()) {
String entityId = entry.getKey();
EntityMementoManifest entityManifest = entry.getValue();
- String contextCatalogItemId = findContextCatalogItemId(mementoManifest.getEntityIdToManifest(), entityManifest);
+ String catalogItemId = findCatalogItemId(mementoManifest.getEntityIdToManifest(), entityManifest);
if (LOG.isTraceEnabled()) LOG.trace("RebindManager instantiating entity {}", entityId);
try {
- Entity entity = newEntity(entityId, entityManifest.getType(), getLoadingContextFromCatalogItemId(contextCatalogItemId, classLoader, rebindContext));
+ Entity entity = newEntity(entityId, entityManifest.getType(), getLoadingContextFromCatalogItemId(catalogItemId, classLoader, rebindContext));
rebindContext.registerEntity(entityId, entity);
} catch (Exception e) {
exceptionHandler.onCreateFailed(BrooklynObjectType.ENTITY, entityId, entityManifest.getType(), e);
@@ -671,7 +671,7 @@ public class RebindManagerImpl implements RebindManager {
if (LOG.isDebugEnabled()) LOG.debug("RebindManager instantiating policy {}", policyMemento);
try {
- Policy policy = newPolicy(policyMemento, getLoadingContextFromCatalogItemId(policyMemento.getContextCatalogItemId(), classLoader, rebindContext));
+ Policy policy = newPolicy(policyMemento, getLoadingContextFromCatalogItemId(policyMemento.getCatalogItemId(), classLoader, rebindContext));
rebindContext.registerPolicy(policyMemento.getId(), policy);
} catch (Exception e) {
exceptionHandler.onCreateFailed(BrooklynObjectType.POLICY, policyMemento.getId(), policyMemento.getType(), e);
@@ -933,11 +933,11 @@ public class RebindManagerImpl implements RebindManager {
}
}
- private String findContextCatalogItemId(Map<String, EntityMementoManifest> entityIdToManifest, EntityMementoManifest entityManifest) {
+ private String findCatalogItemId(Map<String, EntityMementoManifest> entityIdToManifest, EntityMementoManifest entityManifest) {
EntityMementoManifest ptr = entityManifest;
while (ptr != null) {
- if (ptr.getContextCatalogItemId() != null) {
- return ptr.getContextCatalogItemId();
+ if (ptr.getCatalogItemId() != null) {
+ return ptr.getCatalogItemId();
}
if (ptr.getParent() != null) {
ptr = entityIdToManifest.get(ptr.getParent());
@@ -957,7 +957,7 @@ public class RebindManagerImpl implements RebindManager {
throw new IllegalStateException("Failed to load catalog item " + catalogItemId + " required for rebinding.");
}
} else {
- return new JavaBrooklynClassLoadingContext(managementContext, classLoader);
+ return JavaBrooklynClassLoadingContext.create(managementContext, classLoader);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 c07b991..c7ec1d9 100644
--- a/core/src/main/java/brooklyn/entity/rebind/dto/AbstractMemento.java
+++ b/core/src/main/java/brooklyn/entity/rebind/dto/AbstractMemento.java
@@ -43,7 +43,7 @@ public abstract class AbstractMemento implements Memento, Serializable {
protected String type;
protected Class<?> typeClass;
protected String displayName;
- protected String contextCatalogItemId;
+ protected String catalogItemId;
protected Map<String, Object> fields = Maps.newLinkedHashMap();
protected List<Object> tags = Lists.newArrayList();
@@ -57,7 +57,7 @@ public abstract class AbstractMemento implements Memento, Serializable {
type = other.getType();
typeClass = other.getTypeClass();
displayName = other.getDisplayName();
- contextCatalogItemId = other.getContextCatalogItemId();
+ catalogItemId = other.getCatalogItemId();
fields.putAll(other.getCustomFields());
tags.addAll(other.getTags());
return self();
@@ -77,8 +77,8 @@ 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();
+ public B catalogItemId(String val) {
+ catalogItemId = val; return self();
}
/**
* @deprecated since 0.7.0; use config/attributes so generic persistence will work, rather than requiring "custom fields"
@@ -93,7 +93,7 @@ public abstract class AbstractMemento implements Memento, Serializable {
private String type;
private String id;
private String displayName;
- private String contextCatalogItemId;
+ private String catalogItemId;
private List<Object> tags;
private transient Class<?> typeClass;
@@ -109,7 +109,7 @@ public abstract class AbstractMemento implements Memento, Serializable {
type = builder.type;
typeClass = builder.typeClass;
displayName = builder.displayName;
- contextCatalogItemId = builder.contextCatalogItemId;
+ catalogItemId = builder.catalogItemId;
setCustomFields(builder.fields);
tags = toPersistedList(builder.tags);
}
@@ -149,8 +149,8 @@ public abstract class AbstractMemento implements Memento, Serializable {
}
@Override
- public String getContextCatalogItemId() {
- return contextCatalogItemId;
+ public String getCatalogItemId() {
+ return catalogItemId;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/entity/rebind/dto/EntityMementoManifestImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/dto/EntityMementoManifestImpl.java b/core/src/main/java/brooklyn/entity/rebind/dto/EntityMementoManifestImpl.java
index bfec2ca..05b1dd7 100644
--- a/core/src/main/java/brooklyn/entity/rebind/dto/EntityMementoManifestImpl.java
+++ b/core/src/main/java/brooklyn/entity/rebind/dto/EntityMementoManifestImpl.java
@@ -24,13 +24,13 @@ public class EntityMementoManifestImpl implements EntityMementoManifest {
private String id;
private String type;
private String parentId;
- private String contextCatalogItemId;
+ private String catalogItemId;
- public EntityMementoManifestImpl(String id, String type, String parentId, String contextCatalogItemId) {
+ public EntityMementoManifestImpl(String id, String type, String parentId, String catalogItemId) {
this.id = id;
this.type = type;
this.parentId = parentId;
- this.contextCatalogItemId = contextCatalogItemId;
+ this.catalogItemId = catalogItemId;
}
@Override
@@ -49,8 +49,8 @@ public class EntityMementoManifestImpl implements EntityMementoManifest {
}
@Override
- public String getContextCatalogItemId() {
- return contextCatalogItemId;
+ public String getCatalogItemId() {
+ return catalogItemId;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 8888f5c..d5a5172 100644
--- a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
+++ b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
@@ -378,7 +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.catalogItemId = instance.getCatalogItemId();
builder.type = instance.getClass().getName();
builder.typeClass = instance.getClass();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 d185ab5..91baa26 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/AbstractBrooklynMementoPersister.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/AbstractBrooklynMementoPersister.java
@@ -51,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(), entity.getContextCatalogItemId());
+ builder.entity(entity.getId(), entity.getType(), entity.getParent(), entity.getCatalogItemId());
}
for (LocationMemento entity : memento.getLocationMementos().values()) {
builder.location(entity.getId(), entity.getType());
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 7e13d62..2d0fe99 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java
@@ -194,8 +194,8 @@ 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/contextCatalogItemId");
- builder.entity(id, type, Strings.emptyToNull(parentId), Strings.emptyToNull(contextCatalogItemId));
+ String catalogItemId = (String) XmlUtil.xpath(contents, "/entity/catalogItemId");
+ builder.entity(id, type, Strings.emptyToNull(parentId), Strings.emptyToNull(catalogItemId));
} catch (Exception e) {
exceptionHandler.onLoadMementoFailed(BrooklynObjectType.ENTITY, "File "+file, e);
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 cf03958..6ab8a7c 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
@@ -253,8 +253,8 @@ 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/contextCatalogItemId");
- builder.entity(id, objType, Strings.emptyToNull(parentId), Strings.emptyToNull(contextCatalogItemId));
+ String catalogItemId = (String) XmlUtil.xpath(contents, "/entity/catalogItemId");
+ builder.entity(id, objType, Strings.emptyToNull(parentId), Strings.emptyToNull(catalogItemId));
break;
case LOCATION:
id = (String) XmlUtil.xpath(contents, "/location/id");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java b/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java
index 498d440..7dbc037 100644
--- a/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java
+++ b/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java
@@ -31,12 +31,12 @@ import com.google.common.base.Objects;
public class OsgiBrooklynClassLoadingContext extends AbstractBrooklynClassLoadingContext {
private final List<String> bundles;
- private final String contextCatalogId;
+ private final String catalogItemId;
public OsgiBrooklynClassLoadingContext(ManagementContext mgmt, String catalogItemId, List<String> bundles) {
super(mgmt);
this.bundles = bundles;
- this.contextCatalogId = catalogItemId;
+ this.catalogItemId = catalogItemId;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -71,7 +71,7 @@ public class OsgiBrooklynClassLoadingContext extends AbstractBrooklynClassLoadin
@Override
public int hashCode() {
- return Objects.hashCode(super.hashCode(), bundles, contextCatalogId);
+ return Objects.hashCode(super.hashCode(), bundles, catalogItemId);
}
@Override
@@ -80,7 +80,7 @@ public class OsgiBrooklynClassLoadingContext extends AbstractBrooklynClassLoadin
if (!(obj instanceof OsgiBrooklynClassLoadingContext)) return false;
OsgiBrooklynClassLoadingContext other = (OsgiBrooklynClassLoadingContext)obj;
- if (!contextCatalogId.equals(other.contextCatalogId)) return false;
+ if (!catalogItemId.equals(other.catalogItemId)) return false;
if (!Objects.equal(bundles, other.bundles)) return false;
return true;
}
@@ -96,8 +96,8 @@ public class OsgiBrooklynClassLoadingContext extends AbstractBrooklynClassLoadin
return null;
}
- public String getContextCatalogId() {
- return contextCatalogId;
+ public String getCatalogItemId() {
+ return catalogItemId;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java b/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java
index a7d8892..60597b5 100644
--- a/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java
+++ b/core/src/main/java/brooklyn/policy/basic/AbstractEntityAdjunct.java
@@ -238,8 +238,8 @@ public abstract class AbstractEntityAdjunct extends AbstractBrooklynObject imple
public void setEntity(EntityLocal entity) {
if (destroyed.get()) throw new IllegalStateException("Cannot set entity on a destroyed entity adjunct");
this.entity = entity;
- if (getContextCatalogItemId() == null) {
- setContextCatalogItemId(entity.getContextCatalogItemId());
+ if (entity!=null && getCatalogItemId() == null) {
+ setCatalogItemId(entity.getCatalogItemId());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/resources/META-INF/services/brooklyn.basic.ApiObjectsFactory$ApiObjectsFactoryInterface
----------------------------------------------------------------------
diff --git a/core/src/main/resources/META-INF/services/brooklyn.basic.ApiObjectsFactory$ApiObjectsFactoryInterface b/core/src/main/resources/META-INF/services/brooklyn.basic.ApiObjectsFactory$ApiObjectsFactoryInterface
deleted file mode 100644
index 007e088..0000000
--- a/core/src/main/resources/META-INF/services/brooklyn.basic.ApiObjectsFactory$ApiObjectsFactoryInterface
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# 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.
-#
-brooklyn.basic.ApiObjectsFactoryImpl
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/core/src/main/resources/META-INF/services/brooklyn.basic.internal.ApiObjectsFactoryInterface
----------------------------------------------------------------------
diff --git a/core/src/main/resources/META-INF/services/brooklyn.basic.internal.ApiObjectsFactoryInterface b/core/src/main/resources/META-INF/services/brooklyn.basic.internal.ApiObjectsFactoryInterface
new file mode 100644
index 0000000..4af251f
--- /dev/null
+++ b/core/src/main/resources/META-INF/services/brooklyn.basic.internal.ApiObjectsFactoryInterface
@@ -0,0 +1,19 @@
+#
+# 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.
+#
+brooklyn.basic.internal.ApiObjectsFactoryImpl
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/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 8bd1073..d03502e 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
@@ -202,7 +202,7 @@ public class BrooklynAssemblyTemplateInstantiator implements AssemblyTemplateSpe
} else {
//TODO migrate to catalog.createSpec
spec = resolveCatalogYamlReferenceSpec(mgmt, item, encounteredCatalogTypes);
- spec.contextCatalogItemId(item.getId());
+ spec.catalogItemId(item.getId());
entityResolver.populateSpec(spec);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/72ac1296/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
index 2dfb581..2adad06 100644
--- a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
+++ b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
@@ -257,7 +257,7 @@ public class BrooklynComponentTemplateResolver {
List<Class<?>> additionalInterfaceClazzes = Reflections.getAllInterfaces(type);
spec = EntitySpec.create(interfaceclazz).impl(type).additionalInterfaces(additionalInterfaceClazzes);
}
- spec.contextCatalogItemId(CatalogUtils.getContextCatalogItemIdFromLoader(loader));
+ spec.catalogItemId(CatalogUtils.getCatalogItemIdFromLoader(loader));
if (template.isPresent() && template.get().getSourceCode()!=null)
spec.tag(BrooklynTags.newYamlSpecTag(template.get().getSourceCode()));
@@ -282,9 +282,7 @@ public class BrooklynComponentTemplateResolver {
if (childrenObj != null) {
Set<String> encounteredCatalogTypes = MutableSet.of();
- @SuppressWarnings("unchecked")
Iterable<Map<String,?>> children = (Iterable<Map<String,?>>)childrenObj;
-
for (Map<String,?> childAttrs : children) {
BrooklynComponentTemplateResolver entityResolver = BrooklynComponentTemplateResolver.Factory.newInstance(loader, childAttrs);
BrooklynAssemblyTemplateInstantiator instantiator = new BrooklynAssemblyTemplateInstantiator();