Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 5dfe944e5 -> ad4cfe6c6


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalManagementContext.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalManagementContext.java
 
b/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalManagementContext.java
index b29c178..ab14c42 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalManagementContext.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalManagementContext.java
@@ -43,6 +43,7 @@ import org.apache.brooklyn.api.management.SubscriptionManager;
 import org.apache.brooklyn.api.management.Task;
 import org.apache.brooklyn.api.management.TaskAdaptable;
 import org.apache.brooklyn.core.internal.BrooklynFeatureEnablement;
+import org.apache.brooklyn.core.internal.storage.DataGridFactory;
 import org.apache.brooklyn.core.management.entitlement.Entitlements;
 import org.apache.brooklyn.core.management.ha.OsgiManager;
 import org.apache.brooklyn.core.util.task.BasicExecutionContext;
@@ -60,7 +61,6 @@ import brooklyn.entity.effector.Effectors;
 import brooklyn.entity.proxying.InternalEntityFactory;
 import brooklyn.entity.proxying.InternalLocationFactory;
 import brooklyn.entity.proxying.InternalPolicyFactory;
-import brooklyn.internal.storage.DataGridFactory;
 import brooklyn.util.exceptions.Exceptions;
 import brooklyn.util.guava.Maybe;
 import brooklyn.util.text.Strings;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalUsageManager.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalUsageManager.java
 
b/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalUsageManager.java
index 991f930..3aeb57a 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalUsageManager.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/management/internal/LocalUsageManager.java
@@ -35,6 +35,7 @@ import org.apache.brooklyn.api.entity.Application;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.location.Location;
 import org.apache.brooklyn.api.management.entitlement.EntitlementContext;
+import org.apache.brooklyn.core.internal.storage.BrooklynStorage;
 import org.apache.brooklyn.core.management.ManagementContextInjectable;
 import org.apache.brooklyn.core.management.entitlement.Entitlements;
 import org.apache.brooklyn.core.management.usage.ApplicationUsage;
@@ -46,7 +47,6 @@ import org.slf4j.LoggerFactory;
 import brooklyn.entity.basic.Entities;
 import brooklyn.entity.basic.EntityInternal;
 import brooklyn.entity.basic.Lifecycle;
-import brooklyn.internal.storage.BrooklynStorage;
 
 import org.apache.brooklyn.location.basic.AbstractLocation;
 import org.apache.brooklyn.location.basic.LocationConfigKeys;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/main/java/org/apache/brooklyn/core/management/internal/ManagementContextInternal.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/management/internal/ManagementContextInternal.java
 
b/core/src/main/java/org/apache/brooklyn/core/management/internal/ManagementContextInternal.java
index 3fc0677..fd19964 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/management/internal/ManagementContextInternal.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/management/internal/ManagementContextInternal.java
@@ -30,6 +30,7 @@ import org.apache.brooklyn.api.location.Location;
 import org.apache.brooklyn.api.management.ManagementContext;
 import org.apache.brooklyn.api.management.Task;
 import org.apache.brooklyn.core.catalog.internal.CatalogInitialization;
+import org.apache.brooklyn.core.internal.storage.BrooklynStorage;
 import org.apache.brooklyn.core.management.ha.OsgiManager;
 import org.apache.brooklyn.core.util.task.TaskTags;
 
@@ -38,7 +39,6 @@ import brooklyn.entity.basic.BrooklynTaskTags;
 import brooklyn.entity.proxying.InternalEntityFactory;
 import brooklyn.entity.proxying.InternalLocationFactory;
 import brooklyn.entity.proxying.InternalPolicyFactory;
-import brooklyn.internal.storage.BrooklynStorage;
 import brooklyn.util.guava.Maybe;
 
 import com.google.common.annotations.Beta;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/main/java/org/apache/brooklyn/core/management/internal/NonDeploymentManagementContext.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/management/internal/NonDeploymentManagementContext.java
 
b/core/src/main/java/org/apache/brooklyn/core/management/internal/NonDeploymentManagementContext.java
index 693e254..4d8196d 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/management/internal/NonDeploymentManagementContext.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/management/internal/NonDeploymentManagementContext.java
@@ -60,6 +60,7 @@ import 
org.apache.brooklyn.api.management.ha.ManagementPlaneSyncRecordPersister;
 import org.apache.brooklyn.api.mementos.BrooklynMementoPersister;
 import org.apache.brooklyn.api.mementos.BrooklynMementoRawData;
 import org.apache.brooklyn.core.catalog.internal.CatalogInitialization;
+import org.apache.brooklyn.core.internal.storage.BrooklynStorage;
 import org.apache.brooklyn.core.management.entitlement.Entitlements;
 import org.apache.brooklyn.core.management.ha.OsgiManager;
 
@@ -69,7 +70,6 @@ import brooklyn.entity.basic.AbstractEntity;
 import brooklyn.entity.proxying.InternalEntityFactory;
 import brooklyn.entity.proxying.InternalLocationFactory;
 import brooklyn.entity.proxying.InternalPolicyFactory;
-import brooklyn.internal.storage.BrooklynStorage;
 import brooklyn.util.guava.Maybe;
 import brooklyn.util.time.Duration;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/main/java/org/apache/brooklyn/location/basic/AbstractLocation.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/location/basic/AbstractLocation.java 
b/core/src/main/java/org/apache/brooklyn/location/basic/AbstractLocation.java
index 50f48b9..b90e961 100644
--- 
a/core/src/main/java/org/apache/brooklyn/location/basic/AbstractLocation.java
+++ 
b/core/src/main/java/org/apache/brooklyn/location/basic/AbstractLocation.java
@@ -36,6 +36,9 @@ import org.apache.brooklyn.api.location.LocationSpec;
 import org.apache.brooklyn.api.management.Task;
 import org.apache.brooklyn.api.mementos.LocationMemento;
 import org.apache.brooklyn.core.internal.BrooklynFeatureEnablement;
+import org.apache.brooklyn.core.internal.storage.BrooklynStorage;
+import org.apache.brooklyn.core.internal.storage.Reference;
+import org.apache.brooklyn.core.internal.storage.impl.BasicReference;
 import org.apache.brooklyn.core.management.internal.LocalLocationManager;
 import org.apache.brooklyn.core.management.internal.ManagementContextInternal;
 import org.apache.brooklyn.core.util.config.ConfigBag;
@@ -43,17 +46,14 @@ import org.apache.brooklyn.core.util.flags.FlagUtils;
 import org.apache.brooklyn.core.util.flags.TypeCoercions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
 import org.apache.brooklyn.basic.AbstractBrooklynObject;
+
 import brooklyn.config.ConfigInheritance;
 import brooklyn.config.ConfigKey;
 import brooklyn.config.ConfigKey.HasConfigKey;
 import brooklyn.entity.basic.ConfigKeys;
 import brooklyn.entity.rebind.BasicLocationRebindSupport;
 import brooklyn.event.basic.BasicConfigKey;
-import brooklyn.internal.storage.BrooklynStorage;
-import brooklyn.internal.storage.Reference;
-import brooklyn.internal.storage.impl.BasicReference;
 
 import org.apache.brooklyn.location.geo.HasHostGeoInfo;
 import org.apache.brooklyn.location.geo.HostGeoInfo;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/test/java/brooklyn/internal/storage/impl/BrooklynStorageImplTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/brooklyn/internal/storage/impl/BrooklynStorageImplTest.java
 
b/core/src/test/java/brooklyn/internal/storage/impl/BrooklynStorageImplTest.java
deleted file mode 100644
index 50b7ba3..0000000
--- 
a/core/src/test/java/brooklyn/internal/storage/impl/BrooklynStorageImplTest.java
+++ /dev/null
@@ -1,287 +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.internal.storage.impl;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.AbstractMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import brooklyn.internal.storage.BrooklynStorage;
-import brooklyn.internal.storage.DataGrid;
-import brooklyn.internal.storage.Reference;
-import brooklyn.internal.storage.impl.inmemory.InmemoryDatagrid;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
-
-public class BrooklynStorageImplTest {
-    
-    private DataGrid datagrid;
-    private BrooklynStorage storage;
-
-    @BeforeMethod(alwaysRun=true)
-    public void setUp() throws Exception {
-        // TODO Note that InmemoryDatagrid's ConcurrentMap currently returns 
snapshot for entrySet() and values()
-        // so the tests here aren't particularly good for confirming it'll 
work against a real datagrid...
-        datagrid = new InmemoryDatagrid();
-        storage = new BrooklynStorageImpl(datagrid);
-    }
-
-    @Test
-    public void testReferenceGetAndSet() throws Exception {
-        Reference<Object> ref = storage.getReference("mykey");
-        assertNull(ref.get());
-        assertTrue(ref.isNull());
-        assertFalse(ref.contains("different"));
-        assertTrue(ref.contains(null));
-        
-        ref.set("myval");
-        assertEqualsCommutative(ref.get(), 
storage.getReference("mykey").get(), "myval");
-        assertFalse(ref.isNull());
-        assertFalse(ref.contains("different"));
-        assertTrue(ref.contains("myval"));
-        
-        ref.clear();
-        assertNull(ref.get());
-    }
-    
-    @Test
-    public void testReferenceAcceptsNullValue() throws Exception {
-        Reference<Object> ref = storage.getReference("mykey");
-        ref.set(null);
-        assertNull(ref.get());
-        assertTrue(ref.isNull());
-        assertTrue(ref.contains(null));
-    }
-    
-    @Test
-    public void testCreateMapReturnsSameEachTime() throws Exception {
-        storage.getMap("mykey").put("k1", "v1");
-        assertEqualsCommutative(storage.getMap("mykey"), ImmutableMap.of("k1", 
"v1"));
-    }
-    
-    @Test
-    public void testMapOperations() throws Exception {
-        Map<Object, Object> map = storage.getMap("mykey");
-        
-        map.put("k1", "v1");
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k1", "v1"));
-        assertEqualsCommutative(map.keySet(), 
storage.getMap("mykey").keySet(), ImmutableSet.of("k1"));
-        assertEqualsCommutative(ImmutableList.copyOf(map.values()), 
ImmutableList.copyOf(storage.getMap("mykey").values()), ImmutableList.of("v1"));
-        
-        assertEquals(map.size(), 1);
-        assertEquals(map.get("k1"), "v1");
-        assertTrue(map.containsKey("k1"));
-        assertTrue(map.containsValue("v1"));
-        assertFalse(map.containsKey("notthere"));
-        assertFalse(map.containsValue("notthere"));
-        assertFalse(map.isEmpty());
-        
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k1", "v1"));
-        
-        map.put("k1", "v2");
-        assertEquals(map.get("k1"), "v2");
-        assertEquals(map.size(), 1);
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k1", "v2"));
-        
-        map.remove("k1");
-        assertTrue(map.isEmpty());
-        assertEquals(map.size(), 0);
-        assertEquals(map.get("k1"), null);
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of());
-        
-        map.putAll(ImmutableMap.of("k1", "v3", "k2", "v4"));
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k1", "v3", "k2", "v4"));
-        
-        map.clear();
-        assertEquals(map.size(), 0);
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of());
-    }
-    
-    // TODO InmemoryDatagrid's map.entrySet() returns an immutable snapshot
-    // Want to test against a real datagrid instead.
-    @Test(enabled=false)
-    public void testMapEntrySetIterator() throws Exception {
-        Map<Object,Object> map = storage.getMap("mykey");
-        map.put("k1", "v1");
-        assertEquals(iteratorToList(map.entrySet().iterator()), 
ImmutableList.of(newMapEntry("k1", "v1")));
-        
-        // Remove entry while iterating; will use snapshot so still contain k1
-        Iterator<Map.Entry<Object, Object>> iter1 = map.entrySet().iterator();
-        assertTrue(iter1.hasNext());
-        map.remove("k1");
-        assertEquals(iteratorToList(iter1), ImmutableList.of(newMapEntry("k1", 
"v1")));
-        
-        // iter.remove removes value
-        map.clear();
-        map.put("k1", "v1"); map.put("k2", "v2");
-        Iterator<Map.Entry<Object, Object>> iter2 = map.entrySet().iterator();
-        assertEquals(newMapEntry("k1", "v1"), iter2.next());
-        iter2.remove();
-        assertEquals(newMapEntry("k2", "v2"), iter2.next());
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
-        
-        // iter.remove when value has already been removed
-        map.clear();
-        map.put("k1", "v1"); map.put("k2", "v2");
-        Iterator<Map.Entry<Object, Object>> iter3 = map.entrySet().iterator();
-        assertEquals(newMapEntry("k1", "v1"), iter3.next());
-        map.remove("k1");
-        iter3.remove();
-        assertEquals(newMapEntry("k2", "v2"), iter3.next());
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
-        
-        // iter.remove when value has already been removed, but was then 
re-added!
-        // TODO is this really the desired behaviour?
-        map.clear();
-        map.put("k1", "v1"); map.put("k2", "v2");
-        Iterator<Map.Entry<Object, Object>> iter4 = map.entrySet().iterator();
-        assertEquals(newMapEntry("k1", "v1"), iter4.next());
-        map.remove("k1");
-        map.put("k1", "v1b");
-        iter4.remove();
-        assertEquals(newMapEntry("k2", "v2"), iter4.next());
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
-    }
-    
-    @Test
-    public void testMapKeySetIterator() throws Exception {
-        Map<Object,Object> map = storage.getMap("mykey");
-        map.put("k1", "v1");
-        assertEquals(iteratorToList(map.keySet().iterator()), 
ImmutableList.of("k1"));
-        
-        // Remove key while iterating; will use snapshot so still contain k1
-        Iterator<Object> iter1 = map.keySet().iterator();
-        assertTrue(iter1.hasNext());
-        map.remove("k1");
-        assertEquals(iteratorToList(iter1), ImmutableList.of("k1"));
-        
-        // iter.remove removes value
-        map.clear();
-        map.put("k1", "v1"); map.put("k2", "v2");
-        Iterator<Object> iter2 = map.keySet().iterator();
-        assertEquals("k1", iter2.next());
-        iter2.remove();
-        assertEquals("k2", iter2.next());
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
-        
-        // iter.remove when value has already been removed
-        map.clear();
-        map.put("k1", "v1"); map.put("k2", "v2");
-        Iterator<Object> iter3 = map.keySet().iterator();
-        assertEquals("k1", iter3.next());
-        map.remove("k1");
-        iter3.remove();
-        assertEquals("k2", iter3.next());
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
-        
-        // iter.remove when value has already been removed, but was then 
re-added!
-        // TODO is this really the desired behaviour?
-        map.clear();
-        map.put("k1", "v1"); map.put("k2", "v2");
-        Iterator<Object> iter4 = map.keySet().iterator();
-        assertEquals("k1", iter4.next());
-        map.remove("k1");
-        map.put("k1", "v1b");
-        iter4.remove();
-        assertEquals("k2", iter4.next());
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
-    }
-    
-    // TODO InmemoryDatagrid.getMap().values() returning snapshot, so 
iter.remove not supported.
-    // Want to test against a real datagrid instead.
-    @Test(enabled=false)
-    public void testMapValuesIterator() throws Exception {
-        Map<Object,Object> map = storage.getMap("mykey");
-        map.put("k1", "v1");
-        
assertEquals(ImmutableList.copyOf(iteratorToList(map.values().iterator())), 
ImmutableList.of("v1"));
-        
-        // Remove key while iterating; will use snapshot so still contain k1
-        Iterator<Object> iter1 = map.values().iterator();
-        assertTrue(iter1.hasNext());
-        map.remove("v1");
-        assertEquals(ImmutableList.copyOf(iteratorToList(iter1)), 
ImmutableList.of("v1"));
-        
-        // iter.remove removes value
-        map.clear();
-        map.put("k1", "v1"); map.put("k2", "v2");
-        Iterator<Object> iter2 = map.values().iterator();
-        assertEquals("v1", iter2.next());
-        iter2.remove();
-        assertEquals("v2", iter2.next());
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
-        
-        // iter.remove when value has already been removed
-        map.clear();
-        map.put("k1", "v1"); map.put("k2", "v2");
-        Iterator<Object> iter3 = map.values().iterator();
-        assertEquals("v1", iter3.next());
-        map.remove("k1");
-        iter3.remove();
-        assertEquals("v2", iter3.next());
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
-        
-        // iter.remove when value has already been removed, but was then 
re-added!
-        // TODO is this really the desired behaviour?
-        map.clear();
-        map.put("k1", "v1"); map.put("k2", "v2");
-        Iterator<Object> iter4 = map.values().iterator();
-        assertEquals("v1", iter4.next());
-        map.remove("k1");
-        map.put("k1", "v1b");
-        iter4.remove();
-        assertEquals("v2", iter4.next());
-        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
-    }
-    
-    private void assertEqualsCommutative(Object o1, Object o2) {
-        assertEquals(o1, o2);
-        assertEquals(o2, o1);
-    }
-    
-    private void assertEqualsCommutative(Object o1, Object o2, Object o3) {
-        assertEquals(o1, o3);
-        assertEquals(o3, o1);
-        assertEquals(o2, o3);
-        assertEquals(o3, o2);
-    }
-    
-    private <T> List<T> iteratorToList(Iterator<T> iter) {
-        List<T> result = Lists.newArrayList();
-        while (iter.hasNext()) {
-            result.add(iter.next());
-        }
-        return result;
-    }
-    
-    private <K,V> Map.Entry<K,V> newMapEntry(K k, V v) {
-        return new AbstractMap.SimpleEntry<K, V>(k, v);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/test/java/brooklyn/internal/storage/impl/ConcurrentMapAcceptingNullValsTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/brooklyn/internal/storage/impl/ConcurrentMapAcceptingNullValsTest.java
 
b/core/src/test/java/brooklyn/internal/storage/impl/ConcurrentMapAcceptingNullValsTest.java
deleted file mode 100644
index e35d50a..0000000
--- 
a/core/src/test/java/brooklyn/internal/storage/impl/ConcurrentMapAcceptingNullValsTest.java
+++ /dev/null
@@ -1,114 +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.internal.storage.impl;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
-
-import java.util.AbstractMap;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import brooklyn.util.collections.MutableList;
-import brooklyn.util.collections.MutableMap;
-import brooklyn.util.collections.MutableSet;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-
-public class ConcurrentMapAcceptingNullValsTest {
-
-    private ConcurrentMap<String, String> delegateMap;
-    private ConcurrentMapAcceptingNullVals<String, String> map;
-
-    @BeforeMethod(alwaysRun=true)
-    public void setUp() throws Exception {
-        delegateMap = new ConcurrentHashMap<String,String>();
-        map = new ConcurrentMapAcceptingNullVals<String,String>(delegateMap);
-    }
-
-    @Test
-    public void testSimpleOperations() throws Exception {
-        map.put("k1", "v1");
-        assertEquals(map, ImmutableMap.of("k1", "v1"));
-        assertEquals(map.keySet(), ImmutableSet.of("k1"));
-        assertEquals(ImmutableList.copyOf(map.values()), 
ImmutableList.of("v1"));
-        assertEquals(map.size(), 1);
-        assertEquals(map.get("k1"), "v1");
-        assertTrue(map.containsKey("k1"));
-        assertTrue(map.containsValue("v1"));
-        assertFalse(map.containsKey("notthere"));
-        assertFalse(map.containsValue("notthere"));
-        assertFalse(map.isEmpty());
-        
-        map.put("k1", "v2");
-        assertEquals(map.get("k1"), "v2");
-        assertEquals(map.size(), 1);
-        assertEquals(map, ImmutableMap.of("k1", "v2"));
-        
-        map.remove("k1");
-        assertTrue(map.isEmpty());
-        assertEquals(map.size(), 0);
-        assertEquals(map.get("k1"), null);
-        assertEquals(map, ImmutableMap.of());
-        
-        map.putAll(ImmutableMap.of("k1", "v3", "k2", "v4"));
-        assertEquals(map, ImmutableMap.of("k1", "v3", "k2", "v4"));
-        
-        map.clear();
-        assertEquals(map.size(), 0);
-        assertEquals(map, ImmutableMap.of());
-    }
-    
-    @Test
-    public void testAcceptsNullValue() throws Exception {
-        map.put("k1", null);
-        assertEquals(map, MutableMap.of("k1", null));
-        assertEquals(map.keySet(), MutableSet.of("k1"));
-        assertEquals(MutableList.copyOf(map.values()), MutableList.of(null));
-        assertEquals(map.entrySet(), MutableSet.of(new 
AbstractMap.SimpleEntry<String,String>("k1", null)));
-        assertEquals(map.size(), 1);
-        assertEquals(map.get("k1"), null);
-        assertTrue(map.containsKey("k1"));
-        assertTrue(map.containsValue(null));
-        assertFalse(map.containsKey("notthere"));
-        assertFalse(map.containsValue("notthere"));
-        assertFalse(map.isEmpty());
-        
-        map.put("k2", null);
-        assertEquals(map.get("k2"), null);
-        assertEquals(map.size(), 2);
-        assertEquals(map, MutableMap.of("k1", null, "k2", null));
-        assertEquals(MutableList.copyOf(map.values()), MutableList.of(null, 
null));
-        assertEquals(map.entrySet(), MutableSet.of(new 
AbstractMap.SimpleEntry<String,String>("k1", null), new 
AbstractMap.SimpleEntry<String,String>("k2", null)));
-        
-        map.remove("k1");
-        assertEquals(map.get("k1"), null);
-        assertEquals(map.get("k2"), null);
-        assertEquals(map.size(), 1);
-        assertEquals(map, MutableMap.of("k2", null));
-        assertEquals(MutableList.copyOf(map.values()), MutableList.of(null));
-        assertEquals(map.entrySet(), MutableSet.of(new 
AbstractMap.SimpleEntry<String,String>("k2", null)));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/test/java/brooklyn/qa/longevity/EntityCleanupLongevityTestFixture.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/brooklyn/qa/longevity/EntityCleanupLongevityTestFixture.java
 
b/core/src/test/java/brooklyn/qa/longevity/EntityCleanupLongevityTestFixture.java
index 790bfe1..2db80ef 100644
--- 
a/core/src/test/java/brooklyn/qa/longevity/EntityCleanupLongevityTestFixture.java
+++ 
b/core/src/test/java/brooklyn/qa/longevity/EntityCleanupLongevityTestFixture.java
@@ -26,6 +26,9 @@ import org.apache.brooklyn.api.entity.proxying.EntitySpec;
 import org.apache.brooklyn.api.event.SensorEvent;
 import org.apache.brooklyn.api.event.SensorEventListener;
 import org.apache.brooklyn.api.location.LocationSpec;
+import org.apache.brooklyn.core.internal.storage.BrooklynStorage;
+import org.apache.brooklyn.core.internal.storage.DataGrid;
+import org.apache.brooklyn.core.internal.storage.impl.BrooklynStorageImpl;
 import org.apache.brooklyn.core.management.internal.AbstractManagementContext;
 import org.apache.brooklyn.core.management.internal.LocalManagementContext;
 import org.apache.brooklyn.core.management.internal.ManagementContextInternal;
@@ -42,9 +45,6 @@ import org.testng.annotations.BeforeMethod;
 
 import brooklyn.entity.basic.ApplicationBuilder;
 import brooklyn.entity.basic.Entities;
-import brooklyn.internal.storage.BrooklynStorage;
-import brooklyn.internal.storage.DataGrid;
-import brooklyn.internal.storage.impl.BrooklynStorageImpl;
 
 import org.apache.brooklyn.location.basic.SimulatedLocation;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/test/java/org/apache/brooklyn/core/internal/storage/impl/BrooklynStorageImplTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/internal/storage/impl/BrooklynStorageImplTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/internal/storage/impl/BrooklynStorageImplTest.java
new file mode 100644
index 0000000..9dc02c5
--- /dev/null
+++ 
b/core/src/test/java/org/apache/brooklyn/core/internal/storage/impl/BrooklynStorageImplTest.java
@@ -0,0 +1,287 @@
+/*
+ * 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 org.apache.brooklyn.core.internal.storage.impl;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
+import java.util.AbstractMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.brooklyn.core.internal.storage.BrooklynStorage;
+import org.apache.brooklyn.core.internal.storage.DataGrid;
+import org.apache.brooklyn.core.internal.storage.Reference;
+import org.apache.brooklyn.core.internal.storage.impl.BrooklynStorageImpl;
+import 
org.apache.brooklyn.core.internal.storage.impl.inmemory.InmemoryDatagrid;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
+
+public class BrooklynStorageImplTest {
+    
+    private DataGrid datagrid;
+    private BrooklynStorage storage;
+
+    @BeforeMethod(alwaysRun=true)
+    public void setUp() throws Exception {
+        // TODO Note that InmemoryDatagrid's ConcurrentMap currently returns 
snapshot for entrySet() and values()
+        // so the tests here aren't particularly good for confirming it'll 
work against a real datagrid...
+        datagrid = new InmemoryDatagrid();
+        storage = new BrooklynStorageImpl(datagrid);
+    }
+
+    @Test
+    public void testReferenceGetAndSet() throws Exception {
+        Reference<Object> ref = storage.getReference("mykey");
+        assertNull(ref.get());
+        assertTrue(ref.isNull());
+        assertFalse(ref.contains("different"));
+        assertTrue(ref.contains(null));
+        
+        ref.set("myval");
+        assertEqualsCommutative(ref.get(), 
storage.getReference("mykey").get(), "myval");
+        assertFalse(ref.isNull());
+        assertFalse(ref.contains("different"));
+        assertTrue(ref.contains("myval"));
+        
+        ref.clear();
+        assertNull(ref.get());
+    }
+    
+    @Test
+    public void testReferenceAcceptsNullValue() throws Exception {
+        Reference<Object> ref = storage.getReference("mykey");
+        ref.set(null);
+        assertNull(ref.get());
+        assertTrue(ref.isNull());
+        assertTrue(ref.contains(null));
+    }
+    
+    @Test
+    public void testCreateMapReturnsSameEachTime() throws Exception {
+        storage.getMap("mykey").put("k1", "v1");
+        assertEqualsCommutative(storage.getMap("mykey"), ImmutableMap.of("k1", 
"v1"));
+    }
+    
+    @Test
+    public void testMapOperations() throws Exception {
+        Map<Object, Object> map = storage.getMap("mykey");
+        
+        map.put("k1", "v1");
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k1", "v1"));
+        assertEqualsCommutative(map.keySet(), 
storage.getMap("mykey").keySet(), ImmutableSet.of("k1"));
+        assertEqualsCommutative(ImmutableList.copyOf(map.values()), 
ImmutableList.copyOf(storage.getMap("mykey").values()), ImmutableList.of("v1"));
+        
+        assertEquals(map.size(), 1);
+        assertEquals(map.get("k1"), "v1");
+        assertTrue(map.containsKey("k1"));
+        assertTrue(map.containsValue("v1"));
+        assertFalse(map.containsKey("notthere"));
+        assertFalse(map.containsValue("notthere"));
+        assertFalse(map.isEmpty());
+        
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k1", "v1"));
+        
+        map.put("k1", "v2");
+        assertEquals(map.get("k1"), "v2");
+        assertEquals(map.size(), 1);
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k1", "v2"));
+        
+        map.remove("k1");
+        assertTrue(map.isEmpty());
+        assertEquals(map.size(), 0);
+        assertEquals(map.get("k1"), null);
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of());
+        
+        map.putAll(ImmutableMap.of("k1", "v3", "k2", "v4"));
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k1", "v3", "k2", "v4"));
+        
+        map.clear();
+        assertEquals(map.size(), 0);
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of());
+    }
+    
+    // TODO InmemoryDatagrid's map.entrySet() returns an immutable snapshot
+    // Want to test against a real datagrid instead.
+    @Test(enabled=false)
+    public void testMapEntrySetIterator() throws Exception {
+        Map<Object,Object> map = storage.getMap("mykey");
+        map.put("k1", "v1");
+        assertEquals(iteratorToList(map.entrySet().iterator()), 
ImmutableList.of(newMapEntry("k1", "v1")));
+        
+        // Remove entry while iterating; will use snapshot so still contain k1
+        Iterator<Map.Entry<Object, Object>> iter1 = map.entrySet().iterator();
+        assertTrue(iter1.hasNext());
+        map.remove("k1");
+        assertEquals(iteratorToList(iter1), ImmutableList.of(newMapEntry("k1", 
"v1")));
+        
+        // iter.remove removes value
+        map.clear();
+        map.put("k1", "v1"); map.put("k2", "v2");
+        Iterator<Map.Entry<Object, Object>> iter2 = map.entrySet().iterator();
+        assertEquals(newMapEntry("k1", "v1"), iter2.next());
+        iter2.remove();
+        assertEquals(newMapEntry("k2", "v2"), iter2.next());
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
+        
+        // iter.remove when value has already been removed
+        map.clear();
+        map.put("k1", "v1"); map.put("k2", "v2");
+        Iterator<Map.Entry<Object, Object>> iter3 = map.entrySet().iterator();
+        assertEquals(newMapEntry("k1", "v1"), iter3.next());
+        map.remove("k1");
+        iter3.remove();
+        assertEquals(newMapEntry("k2", "v2"), iter3.next());
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
+        
+        // iter.remove when value has already been removed, but was then 
re-added!
+        // TODO is this really the desired behaviour?
+        map.clear();
+        map.put("k1", "v1"); map.put("k2", "v2");
+        Iterator<Map.Entry<Object, Object>> iter4 = map.entrySet().iterator();
+        assertEquals(newMapEntry("k1", "v1"), iter4.next());
+        map.remove("k1");
+        map.put("k1", "v1b");
+        iter4.remove();
+        assertEquals(newMapEntry("k2", "v2"), iter4.next());
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
+    }
+    
+    @Test
+    public void testMapKeySetIterator() throws Exception {
+        Map<Object,Object> map = storage.getMap("mykey");
+        map.put("k1", "v1");
+        assertEquals(iteratorToList(map.keySet().iterator()), 
ImmutableList.of("k1"));
+        
+        // Remove key while iterating; will use snapshot so still contain k1
+        Iterator<Object> iter1 = map.keySet().iterator();
+        assertTrue(iter1.hasNext());
+        map.remove("k1");
+        assertEquals(iteratorToList(iter1), ImmutableList.of("k1"));
+        
+        // iter.remove removes value
+        map.clear();
+        map.put("k1", "v1"); map.put("k2", "v2");
+        Iterator<Object> iter2 = map.keySet().iterator();
+        assertEquals("k1", iter2.next());
+        iter2.remove();
+        assertEquals("k2", iter2.next());
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
+        
+        // iter.remove when value has already been removed
+        map.clear();
+        map.put("k1", "v1"); map.put("k2", "v2");
+        Iterator<Object> iter3 = map.keySet().iterator();
+        assertEquals("k1", iter3.next());
+        map.remove("k1");
+        iter3.remove();
+        assertEquals("k2", iter3.next());
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
+        
+        // iter.remove when value has already been removed, but was then 
re-added!
+        // TODO is this really the desired behaviour?
+        map.clear();
+        map.put("k1", "v1"); map.put("k2", "v2");
+        Iterator<Object> iter4 = map.keySet().iterator();
+        assertEquals("k1", iter4.next());
+        map.remove("k1");
+        map.put("k1", "v1b");
+        iter4.remove();
+        assertEquals("k2", iter4.next());
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
+    }
+    
+    // TODO InmemoryDatagrid.getMap().values() returning snapshot, so 
iter.remove not supported.
+    // Want to test against a real datagrid instead.
+    @Test(enabled=false)
+    public void testMapValuesIterator() throws Exception {
+        Map<Object,Object> map = storage.getMap("mykey");
+        map.put("k1", "v1");
+        
assertEquals(ImmutableList.copyOf(iteratorToList(map.values().iterator())), 
ImmutableList.of("v1"));
+        
+        // Remove key while iterating; will use snapshot so still contain k1
+        Iterator<Object> iter1 = map.values().iterator();
+        assertTrue(iter1.hasNext());
+        map.remove("v1");
+        assertEquals(ImmutableList.copyOf(iteratorToList(iter1)), 
ImmutableList.of("v1"));
+        
+        // iter.remove removes value
+        map.clear();
+        map.put("k1", "v1"); map.put("k2", "v2");
+        Iterator<Object> iter2 = map.values().iterator();
+        assertEquals("v1", iter2.next());
+        iter2.remove();
+        assertEquals("v2", iter2.next());
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
+        
+        // iter.remove when value has already been removed
+        map.clear();
+        map.put("k1", "v1"); map.put("k2", "v2");
+        Iterator<Object> iter3 = map.values().iterator();
+        assertEquals("v1", iter3.next());
+        map.remove("k1");
+        iter3.remove();
+        assertEquals("v2", iter3.next());
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
+        
+        // iter.remove when value has already been removed, but was then 
re-added!
+        // TODO is this really the desired behaviour?
+        map.clear();
+        map.put("k1", "v1"); map.put("k2", "v2");
+        Iterator<Object> iter4 = map.values().iterator();
+        assertEquals("v1", iter4.next());
+        map.remove("k1");
+        map.put("k1", "v1b");
+        iter4.remove();
+        assertEquals("v2", iter4.next());
+        assertEqualsCommutative(map, storage.getMap("mykey"), 
ImmutableMap.of("k2", "v2"));
+    }
+    
+    private void assertEqualsCommutative(Object o1, Object o2) {
+        assertEquals(o1, o2);
+        assertEquals(o2, o1);
+    }
+    
+    private void assertEqualsCommutative(Object o1, Object o2, Object o3) {
+        assertEquals(o1, o3);
+        assertEquals(o3, o1);
+        assertEquals(o2, o3);
+        assertEquals(o3, o2);
+    }
+    
+    private <T> List<T> iteratorToList(Iterator<T> iter) {
+        List<T> result = Lists.newArrayList();
+        while (iter.hasNext()) {
+            result.add(iter.next());
+        }
+        return result;
+    }
+    
+    private <K,V> Map.Entry<K,V> newMapEntry(K k, V v) {
+        return new AbstractMap.SimpleEntry<K, V>(k, v);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/core/src/test/java/org/apache/brooklyn/core/internal/storage/impl/ConcurrentMapAcceptingNullValsTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/internal/storage/impl/ConcurrentMapAcceptingNullValsTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/internal/storage/impl/ConcurrentMapAcceptingNullValsTest.java
new file mode 100644
index 0000000..7f7adcf
--- /dev/null
+++ 
b/core/src/test/java/org/apache/brooklyn/core/internal/storage/impl/ConcurrentMapAcceptingNullValsTest.java
@@ -0,0 +1,115 @@
+/*
+ * 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 org.apache.brooklyn.core.internal.storage.impl;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.util.AbstractMap;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import 
org.apache.brooklyn.core.internal.storage.impl.ConcurrentMapAcceptingNullVals;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import brooklyn.util.collections.MutableList;
+import brooklyn.util.collections.MutableMap;
+import brooklyn.util.collections.MutableSet;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+
+public class ConcurrentMapAcceptingNullValsTest {
+
+    private ConcurrentMap<String, String> delegateMap;
+    private ConcurrentMapAcceptingNullVals<String, String> map;
+
+    @BeforeMethod(alwaysRun=true)
+    public void setUp() throws Exception {
+        delegateMap = new ConcurrentHashMap<String,String>();
+        map = new ConcurrentMapAcceptingNullVals<String,String>(delegateMap);
+    }
+
+    @Test
+    public void testSimpleOperations() throws Exception {
+        map.put("k1", "v1");
+        assertEquals(map, ImmutableMap.of("k1", "v1"));
+        assertEquals(map.keySet(), ImmutableSet.of("k1"));
+        assertEquals(ImmutableList.copyOf(map.values()), 
ImmutableList.of("v1"));
+        assertEquals(map.size(), 1);
+        assertEquals(map.get("k1"), "v1");
+        assertTrue(map.containsKey("k1"));
+        assertTrue(map.containsValue("v1"));
+        assertFalse(map.containsKey("notthere"));
+        assertFalse(map.containsValue("notthere"));
+        assertFalse(map.isEmpty());
+        
+        map.put("k1", "v2");
+        assertEquals(map.get("k1"), "v2");
+        assertEquals(map.size(), 1);
+        assertEquals(map, ImmutableMap.of("k1", "v2"));
+        
+        map.remove("k1");
+        assertTrue(map.isEmpty());
+        assertEquals(map.size(), 0);
+        assertEquals(map.get("k1"), null);
+        assertEquals(map, ImmutableMap.of());
+        
+        map.putAll(ImmutableMap.of("k1", "v3", "k2", "v4"));
+        assertEquals(map, ImmutableMap.of("k1", "v3", "k2", "v4"));
+        
+        map.clear();
+        assertEquals(map.size(), 0);
+        assertEquals(map, ImmutableMap.of());
+    }
+    
+    @Test
+    public void testAcceptsNullValue() throws Exception {
+        map.put("k1", null);
+        assertEquals(map, MutableMap.of("k1", null));
+        assertEquals(map.keySet(), MutableSet.of("k1"));
+        assertEquals(MutableList.copyOf(map.values()), MutableList.of(null));
+        assertEquals(map.entrySet(), MutableSet.of(new 
AbstractMap.SimpleEntry<String,String>("k1", null)));
+        assertEquals(map.size(), 1);
+        assertEquals(map.get("k1"), null);
+        assertTrue(map.containsKey("k1"));
+        assertTrue(map.containsValue(null));
+        assertFalse(map.containsKey("notthere"));
+        assertFalse(map.containsValue("notthere"));
+        assertFalse(map.isEmpty());
+        
+        map.put("k2", null);
+        assertEquals(map.get("k2"), null);
+        assertEquals(map.size(), 2);
+        assertEquals(map, MutableMap.of("k1", null, "k2", null));
+        assertEquals(MutableList.copyOf(map.values()), MutableList.of(null, 
null));
+        assertEquals(map.entrySet(), MutableSet.of(new 
AbstractMap.SimpleEntry<String,String>("k1", null), new 
AbstractMap.SimpleEntry<String,String>("k2", null)));
+        
+        map.remove("k1");
+        assertEquals(map.get("k1"), null);
+        assertEquals(map.get("k2"), null);
+        assertEquals(map.size(), 1);
+        assertEquals(map, MutableMap.of("k2", null));
+        assertEquals(MutableList.copyOf(map.values()), MutableList.of(null));
+        assertEquals(map.entrySet(), MutableSet.of(new 
AbstractMap.SimpleEntry<String,String>("k2", null)));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGrid.java
----------------------------------------------------------------------
diff --git 
a/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGrid.java
 
b/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGrid.java
index 0b4dfd8..b1ab02a 100644
--- 
a/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGrid.java
+++ 
b/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGrid.java
@@ -24,10 +24,9 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentMap;
 
 import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.core.internal.storage.DataGrid;
 import org.apache.brooklyn.core.management.internal.ManagementContextInternal;
 
-import brooklyn.internal.storage.DataGrid;
-
 import com.google.common.collect.ImmutableMap;
 import com.hazelcast.config.Config;
 import com.hazelcast.config.SerializerConfig;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGridFactory.java
----------------------------------------------------------------------
diff --git 
a/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGridFactory.java
 
b/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGridFactory.java
index c723f67..67a5b44 100644
--- 
a/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGridFactory.java
+++ 
b/storage/hazelcast/src/main/java/org/apache/brooklyn/internal/storage/impl/hazelcast/HazelcastDataGridFactory.java
@@ -18,11 +18,10 @@
  */
 package org.apache.brooklyn.internal.storage.impl.hazelcast;
 
+import org.apache.brooklyn.core.internal.storage.DataGrid;
+import org.apache.brooklyn.core.internal.storage.DataGridFactory;
 import org.apache.brooklyn.core.management.internal.ManagementContextInternal;
 
-import brooklyn.internal.storage.DataGrid;
-import brooklyn.internal.storage.DataGridFactory;
-
 import com.hazelcast.core.HazelcastInstance;
 
 public class HazelcastDataGridFactory implements DataGridFactory {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3230e730/storage/hazelcast/src/test/java/org/apache/brooklyn/storage/impl/hazelcast/HazelcastStorageTest.java
----------------------------------------------------------------------
diff --git 
a/storage/hazelcast/src/test/java/org/apache/brooklyn/storage/impl/hazelcast/HazelcastStorageTest.java
 
b/storage/hazelcast/src/test/java/org/apache/brooklyn/storage/impl/hazelcast/HazelcastStorageTest.java
index 464117e..451a6b4 100644
--- 
a/storage/hazelcast/src/test/java/org/apache/brooklyn/storage/impl/hazelcast/HazelcastStorageTest.java
+++ 
b/storage/hazelcast/src/test/java/org/apache/brooklyn/storage/impl/hazelcast/HazelcastStorageTest.java
@@ -29,11 +29,11 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import brooklyn.config.BrooklynProperties;
-import brooklyn.internal.storage.BrooklynStorage;
-import brooklyn.internal.storage.DataGridFactory;
-import brooklyn.internal.storage.Reference;
-import brooklyn.internal.storage.impl.BrooklynStorageImpl;
 
+import org.apache.brooklyn.core.internal.storage.BrooklynStorage;
+import org.apache.brooklyn.core.internal.storage.DataGridFactory;
+import org.apache.brooklyn.core.internal.storage.Reference;
+import org.apache.brooklyn.core.internal.storage.impl.BrooklynStorageImpl;
 import org.apache.brooklyn.core.management.internal.LocalManagementContext;
 import org.apache.brooklyn.internal.storage.impl.hazelcast.HazelcastDataGrid;
 import 
org.apache.brooklyn.internal.storage.impl.hazelcast.HazelcastDataGridFactory;

Reply via email to