ensure all CatalogItem impls give no-op relations, and misc cleanup fixes bug where catalog items wouldn't rebind because the relations field is not set on deserialization; see discussion at https://github.com/apache/incubator-brooklyn/pull/987.
re cleanup, mainly removing in some places where i noticed XXX was used in addition to things i added during this dev work in order to test things, and some javadoc near where i've been working. Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/05f91af1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/05f91af1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/05f91af1 Branch: refs/heads/master Commit: 05f91af1c95e2b235b3126ac06c045373a806d7a Parents: 09aab58 Author: Alex Heneveld <[email protected]> Authored: Tue Oct 27 13:18:41 2015 +0000 Committer: Alex Heneveld <[email protected]> Committed: Tue Oct 27 13:18:41 2015 +0000 ---------------------------------------------------------------------- .../brooklyn/core/catalog/internal/CatalogItemDo.java | 1 + .../core/catalog/internal/CatalogItemDtoAbstract.java | 11 +++++++++++ .../brooklyn/core/objs/AbstractBrooklynObject.java | 6 +++--- .../enricher/stock/SensorPropagatingEnricher.java | 2 +- .../apache/brooklyn/util/core/xstream/XmlSerializer.java | 3 +-- .../core/mgmt/persist/XmlMementoSerializerTest.java | 5 +---- .../base/VanillaSoftwareProcessIntegrationTest.java | 2 +- 7 files changed, 19 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/05f91af1/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 fedc37e..2aa8479 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 @@ -66,6 +66,7 @@ public class CatalogItemDo<T,SpecT> implements CatalogItem<T,SpecT>, BrooklynObj } /** + * Overrides the parent so that relations are not visible. * @return an immutable empty relation support object; relations are not supported, * but we do not throw on access to enable reads in a consistent manner */ http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/05f91af1/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 47ce81d..6262508 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 @@ -32,6 +32,7 @@ import org.apache.brooklyn.api.mgmt.rebind.mementos.CatalogItemMemento; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.mgmt.rebind.BasicCatalogItemRebindSupport; import org.apache.brooklyn.core.objs.AbstractBrooklynObject; +import org.apache.brooklyn.core.relations.EmptyRelationSupport; import org.apache.brooklyn.util.collections.MutableList; import org.apache.brooklyn.util.core.flags.FlagUtils; import org.apache.brooklyn.util.core.flags.SetFromFlag; @@ -244,6 +245,16 @@ public abstract class CatalogItemDtoAbstract<T, SpecT> extends AbstractBrooklynO return new BasicCatalogItemRebindSupport(this); } + /** + * Overrides the parent so that relations are not visible. + * @return an immutable empty relation support object; relations are not supported, + * but we do not throw on access to enable reads in a consistent manner + */ + @Override + public RelationSupportInternal<CatalogItem<T,SpecT>> relations() { + return new EmptyRelationSupport<CatalogItem<T,SpecT>>(this); + } + @Override public void setDisplayName(String newName) { this.displayName = newName; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/05f91af1/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 d6ed647..e2592b9 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 @@ -52,12 +52,12 @@ public abstract class AbstractBrooklynObject implements BrooklynObjectInternal { private String catalogItemId; - /** subclasses should synchronize on this for all access */ + /** callers (only in TagSupport) should synchronize on this for all access */ @SetFromFlag(value = "tags") private final Set<Object> tags = Sets.newLinkedHashSet(); @SuppressWarnings({ "rawtypes", "unchecked" }) - private RelationSupportInternal relations = new ByObjectBasicRelationSupport(this, new RelationChangedCallback()); + private final RelationSupportInternal relations = new ByObjectBasicRelationSupport(this, new RelationChangedCallback()); private volatile ManagementContext managementContext; @@ -249,7 +249,7 @@ public abstract class AbstractBrooklynObject implements BrooklynObjectInternal { } } - // XXX always override to get casting correct + // always override to get casting correct @Override public RelationSupportInternal<?> relations() { return relations; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/05f91af1/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorPropagatingEnricher.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorPropagatingEnricher.java b/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorPropagatingEnricher.java index f266a80..5f1b9ed 100644 --- a/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorPropagatingEnricher.java +++ b/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorPropagatingEnricher.java @@ -41,7 +41,7 @@ import com.google.common.collect.Sets; * an enricher policy which just listens for the target sensor(s) on a child entity and passes it up. * now superseded by syntax such as: * - * <pre>{@code Enrichers.builder().propagating(XXX).from(source).build()}</pre> + * <pre>{@code Enrichers.builder().propagating(sensor).from(source).build()}</pre> * * @deprecated since 0.7.0; use {@link Enrichers#builder()} * http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/05f91af1/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java b/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java index c83e25c..12561d3 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java @@ -42,8 +42,7 @@ import com.thoughtworks.xstream.mapper.MapperWrapper; public class XmlSerializer<T> { private final Map<String, String> deserializingClassRenames; - // XXX protected - public final XStream xstream; + protected final XStream xstream; public XmlSerializer() { this(ImmutableMap.<String, String>of()); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/05f91af1/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java index 3ed5486..6bd850a 100644 --- a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java @@ -48,7 +48,6 @@ import org.apache.brooklyn.core.catalog.internal.CatalogItemDtoAbstract; import org.apache.brooklyn.core.catalog.internal.CatalogTestUtils; import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.location.SimulatedLocation; -import org.apache.brooklyn.util.osgi.OsgiTestResources; import org.apache.brooklyn.core.mgmt.osgi.OsgiVersionMoreEntityTest; import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests; import org.apache.brooklyn.core.test.entity.TestApplication; @@ -60,6 +59,7 @@ import org.apache.brooklyn.util.collections.MutableMap; import org.apache.brooklyn.util.collections.MutableSet; import org.apache.brooklyn.util.net.Networking; import org.apache.brooklyn.util.net.UserAndHostAndPort; +import org.apache.brooklyn.util.osgi.OsgiTestResources; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.BeforeMethod; @@ -71,7 +71,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; -import com.thoughtworks.xstream.converters.Converter; public class XmlMementoSerializerTest { @@ -400,8 +399,6 @@ public class XmlMementoSerializerTest { @SuppressWarnings("unchecked") private <T> T assertSerializeAndDeserialize(T obj) throws Exception { -Converter x = serializer.xstream.getConverterLookup().lookupConverterForType(Class.class); -System.out.println("XXX: "+x); String serializedForm = serializer.toString(obj); LOG.info("serializedForm=" + serializedForm); Object deserialized = serializer.fromString(serializedForm); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/05f91af1/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessIntegrationTest.java ---------------------------------------------------------------------- diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessIntegrationTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessIntegrationTest.java index 141945b..082c4b1 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessIntegrationTest.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessIntegrationTest.java @@ -188,7 +188,7 @@ public class VanillaSoftwareProcessIntegrationTest extends BrooklynAppLiveTestSu assertEquals(new String(Files.readAllBytes(runRecord)).trim(), "installCommand"); } - // Installation creates a installs/VanillaSoftwareProcess_0.0.0_XXXX/BROOKLYN marker file. + // Installation creates a installs/VanillaSoftwareProcess_0.0.0_nnnnn/BROOKLYN marker file. // It indicates that installation has already been done successfully, so it is skipped the second time. // Assert it respects different values for the install script, to ensure each different VanillaSoftwareProcess // does get installed!
