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!

Reply via email to