You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2014/04/05 00:34:30 UTC

svn commit: r1584931 [5/7] - in /qpid/trunk/qpid/java: ./ bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/ bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ bdbstore/src/main/java/org/apache/qpid/server/store/be...

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java Fri Apr  4 22:34:26 2014
@@ -20,6 +20,9 @@
  */
 package org.apache.qpid.server.configuration.store;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.StringWriter;
@@ -30,17 +33,26 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
+import org.codehaus.jackson.JsonGenerationException;
+import org.codehaus.jackson.map.JsonMappingException;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
+
+import org.apache.qpid.server.BrokerOptions;
 import org.apache.qpid.server.configuration.ConfigurationEntry;
-import org.apache.qpid.server.configuration.ConfigurationEntryStore;
+import org.apache.qpid.server.configuration.ConfigurationEntryImpl;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.LogRecorder;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.PreferencesProvider;
+import org.apache.qpid.server.model.SystemContext;
 import org.apache.qpid.server.model.adapter.FileSystemPreferencesProvider;
+import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.test.utils.TestFileUtils;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
+
 
 public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTestCase
 {
@@ -64,15 +76,41 @@ public class JsonConfigurationEntryStore
     }
 
     @Override
-    protected ConfigurationEntryStore createStore(UUID brokerId, Map<String, Object> brokerAttributes) throws Exception
+    protected JsonConfigurationEntryStore createStore(UUID brokerId, Map<String, Object> brokerAttributes) throws Exception
     {
         _storeFile = createStoreFile(brokerId, brokerAttributes);
-        JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(_storeFile.getAbsolutePath(), null, false, Collections.<String,String>emptyMap());
+        return createStore();
+    }
+
+    private JsonConfigurationEntryStore createStore()
+    {
+        String absolutePath = _storeFile.getAbsolutePath();
+        return createStore(absolutePath);
+    }
+
+    private JsonConfigurationEntryStore createStore(final String absolutePath)
+    {
+        return createStore(absolutePath, null);
+    }
+
+    private JsonConfigurationEntryStore createStore(final String absolutePath,
+                                                    final DurableConfigurationStore initialStore)
+    {
+        final BrokerOptions brokerOptions = mock(BrokerOptions.class);
+        when(brokerOptions.getConfigurationStoreLocation()).thenReturn(absolutePath);
+        SystemContext context = new SystemContext(new TaskExecutor(),
+                                                  new ConfiguredObjectFactory(),
+                                                  mock(EventLogger.class),
+                                                  mock(LogRecorder.class),
+                                                  brokerOptions);
+
+        JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(context, initialStore, false,
+                                                                            Collections.<String,String>emptyMap());
         return store;
     }
 
     private File createStoreFile(UUID brokerId, Map<String, Object> brokerAttributes) throws IOException,
-            JsonGenerationException, JsonMappingException
+                                                                                             JsonGenerationException, JsonMappingException
     {
         return createStoreFile(brokerId, brokerAttributes, true);
     }
@@ -100,12 +138,12 @@ public class JsonConfigurationEntryStore
     @Override
     protected void addConfiguration(UUID id, String type, Map<String, Object> attributes, UUID parentId)
     {
-        ConfigurationEntryStore store = getStore();
+        MemoryConfigurationEntryStore store = getStore();
         ConfigurationEntry parentEntry = getStore().getEntry(parentId);
         Set<UUID> children = new HashSet<UUID>(parentEntry.getChildrenIds());
         children.add(id);
-        ConfigurationEntry newParentEntry = new ConfigurationEntry(parentEntry.getId(), parentEntry.getType(), parentEntry.getAttributes(), children, store);
-        store.save(newParentEntry, new ConfigurationEntry(id, type, attributes, Collections.<UUID> emptySet(), store));
+        ConfigurationEntry newParentEntry = new ConfigurationEntryImpl(parentEntry.getId(), parentEntry.getType(), parentEntry.getAttributes(), children, store);
+        store.save(newParentEntry, new ConfigurationEntryImpl(id, type, attributes, Collections.<UUID> emptySet(), store));
     }
 
     public void testAttributeIsResolvedFromSystemProperties()
@@ -113,15 +151,16 @@ public class JsonConfigurationEntryStore
         String defaultVhost = getTestName();
         setTestSystemProperty("my.test.property", defaultVhost);
 
-        ConfigurationEntryStore store = getStore();
+        MemoryConfigurationEntryStore store = getStore();
         ConfigurationEntry brokerConfigEntry = store.getRootEntry();
         Map<String, Object> attributes = new HashMap<String, Object>(brokerConfigEntry.getAttributes());
         attributes.put(Broker.DEFAULT_VIRTUAL_HOST, "${my.test.property}");
-        ConfigurationEntry updatedBrokerEntry = new ConfigurationEntry(brokerConfigEntry.getId(), Broker.class.getSimpleName(),
+        ConfigurationEntry
+                updatedBrokerEntry = new ConfigurationEntryImpl(brokerConfigEntry.getId(), Broker.class.getSimpleName(),
                 attributes, brokerConfigEntry.getChildrenIds(), store);
         store.save(updatedBrokerEntry);
 
-        JsonConfigurationEntryStore store2 = new JsonConfigurationEntryStore(_storeFile.getAbsolutePath(), null, false, Collections.<String,String>emptyMap());
+        JsonConfigurationEntryStore store2 = createStore();
 
         assertEquals("Unresolved default virtualhost  value", defaultVhost, store2.getRootEntry().getAttributes().get(Broker.DEFAULT_VIRTUAL_HOST));
     }
@@ -131,7 +170,7 @@ public class JsonConfigurationEntryStore
         File file = TestFileUtils.createTempFile(this, ".json");
         try
         {
-            new JsonConfigurationEntryStore(file.getAbsolutePath(), null, false, Collections.<String,String>emptyMap());
+            createStore(file.getAbsolutePath());
             fail("Cannot create a new store without initial store");
         }
         catch(IllegalConfigurationException e)
@@ -147,7 +186,7 @@ public class JsonConfigurationEntryStore
         brokerAttributes.put(Broker.NAME, getTestName());
         File file = createStoreFile(brokerId, brokerAttributes);
 
-        JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(file.getAbsolutePath(), null, false, Collections.<String,String>emptyMap());
+        JsonConfigurationEntryStore store = createStore(file.getAbsolutePath());
         ConfigurationEntry root = store.getRootEntry();
         assertNotNull("Root entry is not found", root);
         assertEquals("Unexpected root entry", brokerId, root.getId());
@@ -164,10 +203,10 @@ public class JsonConfigurationEntryStore
         Map<String, Object> brokerAttributes = new HashMap<String, Object>();
         File initialStoreFile = createStoreFile(brokerId, brokerAttributes);
 
-        JsonConfigurationEntryStore initialStore = new JsonConfigurationEntryStore(initialStoreFile.getAbsolutePath(), null, false, Collections.<String,String>emptyMap());
+        JsonConfigurationEntryStore initialStore = createStore(initialStoreFile.getAbsolutePath());
 
         File storeFile = TestFileUtils.createTempFile(this, ".json");
-        JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(storeFile.getAbsolutePath(), initialStore, false, Collections.<String,String>emptyMap());
+        JsonConfigurationEntryStore store = createStore(storeFile.getAbsolutePath(), initialStore);
 
         ConfigurationEntry root = store.getRootEntry();
         assertNotNull("Root entry is not found", root);
@@ -201,7 +240,7 @@ public class JsonConfigurationEntryStore
             try
             {
                 storeFile = createStoreFile(brokerId, brokerAttributes);
-                new JsonConfigurationEntryStore(storeFile.getAbsolutePath(), null, false, Collections.<String, String>emptyMap());
+                createStore(storeFile.getAbsolutePath());
                 fail("The store creation should fail due to unsupported store version");
             }
             catch (IllegalConfigurationException e)
@@ -227,7 +266,7 @@ public class JsonConfigurationEntryStore
         try
         {
             storeFile = createStoreFile(brokerId, brokerAttributes, false);
-            new JsonConfigurationEntryStore(storeFile.getAbsolutePath(), null, false, Collections.<String, String>emptyMap());
+            createStore(storeFile.getAbsolutePath());
             fail("The store creation should fail due to unspecified store version");
         }
         catch (IllegalConfigurationException e)
@@ -252,7 +291,7 @@ public class JsonConfigurationEntryStore
         addPreferencesProvider(preferencesProviderId, name, path);
 
         // verify that store can deserialise child of a child
-        JsonConfigurationEntryStore newStore = new JsonConfigurationEntryStore(_storeFile.getAbsolutePath(), null, false, Collections.<String, String>emptyMap());
+        JsonConfigurationEntryStore newStore = createStore();
 
         ConfigurationEntry authenticationProviderEntry = newStore.getEntry(_authenticationProviderId);
         assertEquals("Unexpected preference provider ID in authentication provider children set", preferencesProviderId, authenticationProviderEntry.getChildrenIds().iterator().next());
@@ -265,4 +304,5 @@ public class JsonConfigurationEntryStore
         assertEquals("Unexpected preferences provider type", FileSystemPreferencesProvider.PROVIDER_TYPE,
                 attributes.get(PreferencesProvider.TYPE));
     }
+
 }

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java Fri Apr  4 22:34:26 2014
@@ -20,12 +20,13 @@
  */
 package org.apache.qpid.server.configuration.store;
 
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.when;
 
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -33,59 +34,119 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.UUID;
 
+import org.mockito.ArgumentCaptor;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
 import org.apache.qpid.server.BrokerOptions;
-import org.apache.qpid.server.configuration.ConfigurationEntry;
-import org.apache.qpid.server.configuration.ConfigurationEntryStore;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.LogRecorder;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.Port;
 import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.State;
+import org.apache.qpid.server.model.SystemContext;
 import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.store.ConfiguredObjectRecord;
+import org.apache.qpid.server.store.ConfiguredObjectRecordImpl;
+import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.server.store.handler.ConfiguredObjectRecordHandler;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 public class ManagementModeStoreHandlerTest extends QpidTestCase
 {
     private ManagementModeStoreHandler _handler;
     private BrokerOptions _options;
-    private ConfigurationEntryStore _store;
-    private ConfigurationEntry _root;
-    private ConfigurationEntry _portEntry;
+    private DurableConfigurationStore _store;
+    private ConfiguredObjectRecord _root;
+    private ConfiguredObjectRecord _portEntry;
     private UUID _rootId, _portEntryId;
+    private SystemContext _systemContext;
 
     protected void setUp() throws Exception
     {
         super.setUp();
         _rootId = UUID.randomUUID();
         _portEntryId = UUID.randomUUID();
-        _store = mock(ConfigurationEntryStore.class);
-        _root = mock(ConfigurationEntry.class);
-        _portEntry = mock(ConfigurationEntry.class);
-        when(_store.getRootEntry()).thenReturn(_root);
-        when(_root.getId()).thenReturn(_rootId);
+        _store = mock(DurableConfigurationStore.class);
+
+
+        _systemContext = new SystemContext(new TaskExecutor(), new ConfiguredObjectFactory(), mock(
+                EventLogger.class), mock(LogRecorder.class), new BrokerOptions());
+
+
+        ConfiguredObjectRecord systemContextRecord = _systemContext.asObjectRecord();
+
+
+
+        _root = new ConfiguredObjectRecordImpl(_rootId, Broker.class.getSimpleName(), Collections.<String,Object>emptyMap(), Collections.singletonMap(SystemContext.class.getSimpleName(), systemContextRecord));
+
+        _portEntry = mock(ConfiguredObjectRecord.class);
         when(_portEntry.getId()).thenReturn(_portEntryId);
-        when(_store.getEntry(_portEntryId)).thenReturn(_portEntry);
-        when(_store.getEntry(_rootId)).thenReturn(_root);
-        when(_root.getChildrenIds()).thenReturn(Collections.singleton(_portEntryId));
+        when(_portEntry.getParents()).thenReturn(Collections.singletonMap(Broker.class.getSimpleName(), _root));
         when(_portEntry.getType()).thenReturn(Port.class.getSimpleName());
+
+        final ArgumentCaptor<ConfiguredObjectRecordHandler> recovererArgumentCaptor = ArgumentCaptor.forClass(ConfiguredObjectRecordHandler.class);
+        doAnswer(
+                new Answer()
+                {
+                    @Override
+                    public Object answer(final InvocationOnMock invocation) throws Throwable
+                    {
+                        ConfiguredObjectRecordHandler recoverer = recovererArgumentCaptor.getValue();
+                        if(recoverer.handle(_root))
+                        {
+                            recoverer.handle(_portEntry);
+                        }
+                        return null;
+                    }
+                }
+                ).when(_store).visitConfiguredObjectRecords(recovererArgumentCaptor.capture());
         _options = new BrokerOptions();
         _handler = new ManagementModeStoreHandler(_store, _options);
+
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+    }
+
+    private ConfiguredObjectRecord getRootEntry()
+    {
+        BrokerFinder brokerFinder = new BrokerFinder();
+        _handler.visitConfiguredObjectRecords(brokerFinder);
+        return brokerFinder.getBrokerRecord();
+    }
+
+    private ConfiguredObjectRecord getEntry(UUID id)
+    {
+        RecordFinder recordFinder = new RecordFinder(id);
+        _handler.visitConfiguredObjectRecords(recordFinder);
+        return recordFinder.getFoundRecord();
+    }
+
+    private Collection<UUID> getChildrenIds(ConfiguredObjectRecord record)
+    {
+        ChildFinder childFinder = new ChildFinder(record);
+        _handler.visitConfiguredObjectRecords(childFinder);
+        return childFinder.getChildIds();
     }
 
     public void testGetRootEntryWithEmptyOptions()
     {
-        ConfigurationEntry root = _handler.getRootEntry();
+        ConfiguredObjectRecord root = getRootEntry();
         assertEquals("Unexpected root id", _rootId, root.getId());
-        assertEquals("Unexpected children", Collections.singleton(_portEntryId), root.getChildrenIds());
+        assertEquals("Unexpected children", Collections.singleton(_portEntryId), getChildrenIds(root));
     }
 
     public void testGetRootEntryWithHttpPortOverriden()
     {
         _options.setManagementModeHttpPortOverride(9090);
         _handler = new ManagementModeStoreHandler(_store, _options);
-        ConfigurationEntry root = _handler.getRootEntry();
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+        ConfiguredObjectRecord root = getRootEntry();
         assertEquals("Unexpected root id", _rootId, root.getId());
-        Collection<UUID> childrenIds = root.getChildrenIds();
+        Collection<UUID> childrenIds = getChildrenIds(root);
         assertEquals("Unexpected children size", 2, childrenIds.size());
         assertTrue("Store port entry id is not found", childrenIds.contains(_portEntryId));
     }
@@ -94,9 +155,11 @@ public class ManagementModeStoreHandlerT
     {
         _options.setManagementModeRmiPortOverride(9090);
         _handler = new ManagementModeStoreHandler(_store, _options);
-        ConfigurationEntry root = _handler.getRootEntry();
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+
+        ConfiguredObjectRecord root = getRootEntry();
         assertEquals("Unexpected root id", _rootId, root.getId());
-        Collection<UUID> childrenIds = root.getChildrenIds();
+        Collection<UUID> childrenIds = getChildrenIds(root);
         assertEquals("Unexpected children size", 3, childrenIds.size());
         assertTrue("Store port entry id is not found", childrenIds.contains(_portEntryId));
     }
@@ -105,9 +168,11 @@ public class ManagementModeStoreHandlerT
     {
         _options.setManagementModeJmxPortOverride(9090);
         _handler = new ManagementModeStoreHandler(_store, _options);
-        ConfigurationEntry root = _handler.getRootEntry();
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+
+        ConfiguredObjectRecord root = getRootEntry();
         assertEquals("Unexpected root id", _rootId, root.getId());
-        Collection<UUID> childrenIds = root.getChildrenIds();
+        Collection<UUID> childrenIds = getChildrenIds(root);
         assertEquals("Unexpected children size", 2, childrenIds.size());
         assertTrue("Store port entry id is not found", childrenIds.contains(_portEntryId));
     }
@@ -118,25 +183,27 @@ public class ManagementModeStoreHandlerT
         _options.setManagementModeRmiPortOverride(2000);
         _options.setManagementModeJmxPortOverride(3000);
         _handler = new ManagementModeStoreHandler(_store, _options);
-        ConfigurationEntry root = _handler.getRootEntry();
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+
+        ConfiguredObjectRecord root = getRootEntry();
         assertEquals("Unexpected root id", _rootId, root.getId());
-        Collection<UUID> childrenIds = root.getChildrenIds();
+        Collection<UUID> childrenIds = getChildrenIds(root);
         assertEquals("Unexpected children size", 4, childrenIds.size());
         assertTrue("Store port entry id is not found", childrenIds.contains(_portEntryId));
     }
 
     public void testGetEntryByRootId()
     {
-        ConfigurationEntry root = _handler.getEntry(_rootId);
+        ConfiguredObjectRecord root = getEntry(_rootId);
         assertEquals("Unexpected root id", _rootId, root.getId());
-        assertEquals("Unexpected children", Collections.singleton(_portEntryId), root.getChildrenIds());
+        assertEquals("Unexpected children", Collections.singleton(_portEntryId), getChildrenIds(root));
     }
 
     public void testGetEntryByPortId()
     {
-        ConfigurationEntry portEntry = _handler.getEntry(_portEntryId);
+        ConfiguredObjectRecord portEntry = getEntry(_portEntryId);
         assertEquals("Unexpected entry id", _portEntryId, portEntry.getId());
-        assertTrue("Unexpected children", portEntry.getChildrenIds().isEmpty());
+        assertTrue("Unexpected children", getChildrenIds(portEntry).isEmpty());
         assertEquals("Unexpected state", State.QUIESCED, portEntry.getAttributes().get(Port.STATE));
     }
 
@@ -144,9 +211,11 @@ public class ManagementModeStoreHandlerT
     {
         _options.setManagementModeJmxPortOverride(9090);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+
 
         UUID optionsPort = getOptionsPortId();
-        ConfigurationEntry portEntry = _handler.getEntry(optionsPort);
+        ConfiguredObjectRecord portEntry = getEntry(optionsPort);
         assertCLIPortEntry(portEntry, optionsPort, Protocol.JMX_RMI);
     }
 
@@ -154,9 +223,11 @@ public class ManagementModeStoreHandlerT
     {
         _options.setManagementModeHttpPortOverride(9090);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+
 
         UUID optionsPort = getOptionsPortId();
-        ConfigurationEntry portEntry = _handler.getEntry(optionsPort);
+        ConfiguredObjectRecord portEntry = getEntry(optionsPort);
         assertCLIPortEntry(portEntry, optionsPort, Protocol.HTTP);
     }
 
@@ -167,8 +238,10 @@ public class ManagementModeStoreHandlerT
         when(_portEntry.getAttributes()).thenReturn(attributes);
         _options.setManagementModeHttpPortOverride(9090);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+
 
-        ConfigurationEntry portEntry = _handler.getEntry(_portEntryId);
+        ConfiguredObjectRecord portEntry = getEntry(_portEntryId);
         assertEquals("Unexpected state", State.QUIESCED, portEntry.getAttributes().get(Port.STATE));
     }
 
@@ -179,8 +252,10 @@ public class ManagementModeStoreHandlerT
         when(_portEntry.getAttributes()).thenReturn(attributes);
         _options.setManagementModeRmiPortOverride(9090);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
 
-        ConfigurationEntry portEntry = _handler.getEntry(_portEntryId);
+
+        ConfiguredObjectRecord portEntry = getEntry(_portEntryId);
         assertEquals("Unexpected state", State.QUIESCED, portEntry.getAttributes().get(Port.STATE));
     }
 
@@ -191,8 +266,10 @@ public class ManagementModeStoreHandlerT
         when(_portEntry.getAttributes()).thenReturn(attributes);
         _options.setManagementModeRmiPortOverride(9090);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+
 
-        ConfigurationEntry portEntry = _handler.getEntry(_portEntryId);
+        ConfiguredObjectRecord portEntry = getEntry(_portEntryId);
         assertEquals("Unexpected state", State.QUIESCED, portEntry.getAttributes().get(Port.STATE));
     }
 
@@ -209,14 +286,29 @@ public class ManagementModeStoreHandlerT
     private void virtualHostEntryQuiescedStatusTestImpl(boolean mmQuiesceVhosts)
     {
         UUID virtualHostId = UUID.randomUUID();
-        ConfigurationEntry virtualHost = mock(ConfigurationEntry.class);
-        when(virtualHost.getId()).thenReturn(virtualHostId);
-        when(virtualHost.getType()).thenReturn(VirtualHost.class.getSimpleName());
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(VirtualHost.TYPE, "STANDARD");
-        when(virtualHost.getAttributes()).thenReturn(attributes);
-        when(_store.getEntry(virtualHostId)).thenReturn(virtualHost);
-        when(_root.getChildrenIds()).thenReturn(new HashSet<UUID>(Arrays.asList(_portEntryId, virtualHostId)));
+
+        final ConfiguredObjectRecord virtualHost = new ConfiguredObjectRecordImpl(virtualHostId, VirtualHost.class.getSimpleName(), attributes, Collections.singletonMap(Broker.class.getSimpleName(), _root));
+        final ArgumentCaptor<ConfiguredObjectRecordHandler> recovererArgumentCaptor = ArgumentCaptor.forClass(ConfiguredObjectRecordHandler.class);
+        doAnswer(
+                new Answer()
+                {
+                    @Override
+                    public Object answer(final InvocationOnMock invocation) throws Throwable
+                    {
+                        ConfiguredObjectRecordHandler recoverer = recovererArgumentCaptor.getValue();
+                        if(recoverer.handle(_root))
+                        {
+                            if(recoverer.handle(_portEntry))
+                            {
+                                recoverer.handle(virtualHost);
+                            }
+                        }
+                        return null;
+                    }
+                }
+                ).when(_store).visitConfiguredObjectRecords(recovererArgumentCaptor.capture());
 
         State expectedState = mmQuiesceVhosts ? State.QUIESCED : null;
         if(mmQuiesceVhosts)
@@ -225,19 +317,20 @@ public class ManagementModeStoreHandlerT
         }
 
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
 
-        ConfigurationEntry hostEntry = _handler.getEntry(virtualHostId);
-        Map<String, Object> hostAttributes = hostEntry.getAttributes();
+        ConfiguredObjectRecord hostEntry = getEntry(virtualHostId);
+        Map<String, Object> hostAttributes = new HashMap<String, Object>(hostEntry.getAttributes());
         assertEquals("Unexpected state", expectedState, hostAttributes.get(VirtualHost.STATE));
         hostAttributes.remove(VirtualHost.STATE);
         assertEquals("Unexpected attributes", attributes, hostAttributes);
     }
 
     @SuppressWarnings("unchecked")
-    private void assertCLIPortEntry(ConfigurationEntry portEntry, UUID optionsPort, Protocol protocol)
+    private void assertCLIPortEntry(ConfiguredObjectRecord portEntry, UUID optionsPort, Protocol protocol)
     {
         assertEquals("Unexpected entry id", optionsPort, portEntry.getId());
-        assertTrue("Unexpected children", portEntry.getChildrenIds().isEmpty());
+        assertTrue("Unexpected children", getChildrenIds(portEntry).isEmpty());
         Map<String, Object> attributes = portEntry.getAttributes();
         assertEquals("Unexpected name", "MANAGEMENT-MODE-PORT-" + protocol.name(), attributes.get(Port.NAME));
         assertEquals("Unexpected protocol", Collections.singleton(protocol), new HashSet<Protocol>(
@@ -250,13 +343,15 @@ public class ManagementModeStoreHandlerT
         _options.setManagementModeRmiPortOverride(2000);
         _options.setManagementModeJmxPortOverride(3000);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
 
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(Port.NAME, "TEST");
-        ConfigurationEntry configurationEntry = new ConfigurationEntry(_portEntryId, Port.class.getSimpleName(), attributes,
-                Collections.<UUID> emptySet(), null);
-        _handler.save(configurationEntry);
-        verify(_store).save(any(ConfigurationEntry.class));
+        ConfiguredObjectRecord
+                configurationEntry = new ConfiguredObjectRecordImpl(_portEntryId, Port.class.getSimpleName(), attributes,
+                Collections.singletonMap(Broker.class.getSimpleName(), getRootEntry()));
+        _handler.create(configurationEntry);
+        verify(_store).create(any(ConfiguredObjectRecord.class));
     }
 
     public void testSaveRoot()
@@ -265,29 +360,33 @@ public class ManagementModeStoreHandlerT
         _options.setManagementModeRmiPortOverride(2000);
         _options.setManagementModeJmxPortOverride(3000);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
 
-        ConfigurationEntry root = _handler.getRootEntry();
+        ConfiguredObjectRecord root = getRootEntry();
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(Broker.NAME, "TEST");
-        ConfigurationEntry configurationEntry = new ConfigurationEntry(_rootId, Broker.class.getSimpleName(), attributes,
-                root.getChildrenIds(), null);
-        _handler.save(configurationEntry);
-        verify(_store).save(any(ConfigurationEntry.class));
+        ConfiguredObjectRecord
+                configurationEntry = new ConfiguredObjectRecordImpl(_rootId, Broker.class.getSimpleName(), attributes,root.getParents());
+        _handler.update(false, configurationEntry);
+        verify(_store).update(anyBoolean(), any(ConfiguredObjectRecord.class));
     }
 
     public void testSaveCLIHttpPort()
     {
         _options.setManagementModeHttpPortOverride(1000);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
 
         UUID portId = getOptionsPortId();
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(Port.NAME, "TEST");
-        ConfigurationEntry configurationEntry = new ConfigurationEntry(portId, Port.class.getSimpleName(), attributes,
-                Collections.<UUID> emptySet(), null);
+        ConfiguredObjectRecord
+                configurationEntry = new ConfiguredObjectRecordImpl(portId, Port.class.getSimpleName(), attributes,
+                                                                    Collections.singletonMap(Broker.class.getSimpleName(),
+                                                                                             getRootEntry()));
         try
         {
-            _handler.save(configurationEntry);
+            _handler.update(false, configurationEntry);
             fail("Exception should be thrown on trying to save CLI port");
         }
         catch (IllegalConfigurationException e)
@@ -300,19 +399,50 @@ public class ManagementModeStoreHandlerT
     {
         _options.setManagementModeHttpPortOverride(1000);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
 
-        _handler.remove(_portEntryId);
-        verify(_store).remove(_portEntryId);
+        ConfiguredObjectRecord record = new ConfiguredObjectRecord()
+        {
+            @Override
+            public UUID getId()
+            {
+                return _portEntryId;
+            }
+
+            @Override
+            public String getType()
+            {
+                return Port.class.getSimpleName();
+            }
+
+            @Override
+            public Map<String, Object> getAttributes()
+            {
+                return Collections.emptyMap();
+            }
+
+            @Override
+            public Map<String, ConfiguredObjectRecord> getParents()
+            {
+                return null;
+            }
+        };
+        _handler.remove(record);
+        verify(_store).remove(record);
     }
 
     public void testRemoveCLIPort()
     {
         _options.setManagementModeHttpPortOverride(1000);
         _handler = new ManagementModeStoreHandler(_store, _options);
+        _handler.openConfigurationStore(_systemContext,Collections.<String,Object>emptyMap());
+
         UUID portId = getOptionsPortId();
+        ConfiguredObjectRecord record = mock(ConfiguredObjectRecord.class);
+        when(record.getId()).thenReturn(portId);
         try
         {
-            _handler.remove(portId);
+            _handler.remove(record);
             fail("Exception should be thrown on trying to remove CLI port");
         }
         catch (IllegalConfigurationException e)
@@ -323,13 +453,134 @@ public class ManagementModeStoreHandlerT
 
     private UUID getOptionsPortId()
     {
-        ConfigurationEntry root = _handler.getRootEntry();
+        ConfiguredObjectRecord root = getRootEntry();
         assertEquals("Unexpected root id", _rootId, root.getId());
-        Collection<UUID> childrenIds = root.getChildrenIds();
+        Collection<UUID> childrenIds = getChildrenIds(root);
 
         childrenIds.remove(_portEntryId);
         UUID optionsPort = childrenIds.iterator().next();
         return optionsPort;
     }
 
+
+    private class BrokerFinder implements ConfiguredObjectRecordHandler
+    {
+        private ConfiguredObjectRecord _brokerRecord;
+        private int _version;
+
+        @Override
+        public void begin(final int configVersion)
+        {
+            _version = configVersion;
+        }
+
+        @Override
+        public boolean handle(final ConfiguredObjectRecord object)
+        {
+            if(object.getType().equals(Broker.class.getSimpleName()))
+            {
+                _brokerRecord = object;
+                return false;
+            }
+            return true;
+        }
+
+        @Override
+        public int end()
+        {
+            return _version;
+        }
+
+        public ConfiguredObjectRecord getBrokerRecord()
+        {
+            return _brokerRecord;
+        }
+    }
+
+    private class RecordFinder implements ConfiguredObjectRecordHandler
+    {
+        private final UUID _id;
+        private ConfiguredObjectRecord _foundRecord;
+        private int _version;
+
+        private RecordFinder(final UUID id)
+        {
+            _id = id;
+        }
+
+        @Override
+        public void begin(final int configVersion)
+        {
+            _version = configVersion;
+        }
+
+        @Override
+        public boolean handle(final ConfiguredObjectRecord object)
+        {
+            if(object.getId().equals(_id))
+            {
+                _foundRecord = object;
+                return false;
+            }
+            return true;
+        }
+
+        @Override
+        public int end()
+        {
+            return _version;
+        }
+
+        public ConfiguredObjectRecord getFoundRecord()
+        {
+            return _foundRecord;
+        }
+    }
+
+    private class ChildFinder implements ConfiguredObjectRecordHandler
+    {
+        private final Collection<UUID> _childIds = new HashSet<UUID>();
+        private final ConfiguredObjectRecord _parent;
+        private int _version;
+
+        private ChildFinder(final ConfiguredObjectRecord parent)
+        {
+            _parent = parent;
+        }
+
+        @Override
+        public void begin(final int configVersion)
+        {
+            _version = configVersion;
+        }
+
+        @Override
+        public boolean handle(final ConfiguredObjectRecord object)
+        {
+
+            if(object.getParents() != null)
+            {
+                for(ConfiguredObjectRecord parent : object.getParents().values())
+                {
+                    if(parent.getId().equals(_parent.getId()))
+                    {
+                        _childIds.add(object.getId());
+                    }
+                }
+
+            }
+            return true;
+        }
+
+        @Override
+        public int end()
+        {
+            return _version;
+        }
+
+        public Collection<UUID> getChildIds()
+        {
+            return _childIds;
+        }
+    }
 }

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java Fri Apr  4 22:34:26 2014
@@ -20,6 +20,8 @@
  */
 package org.apache.qpid.server.configuration.store;
 
+import static org.mockito.Mockito.mock;
+
 import java.io.File;
 import java.util.Collections;
 import java.util.HashMap;
@@ -28,18 +30,35 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
+import org.codehaus.jackson.map.ObjectMapper;
+
 import org.apache.qpid.server.BrokerOptions;
 import org.apache.qpid.server.configuration.ConfigurationEntry;
-import org.apache.qpid.server.configuration.ConfigurationEntryStore;
+import org.apache.qpid.server.configuration.ConfigurationEntryImpl;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.LogRecorder;
 import org.apache.qpid.server.model.Broker;
-import org.codehaus.jackson.map.ObjectMapper;
+import org.apache.qpid.server.model.ConfiguredObjectFactory;
+import org.apache.qpid.server.model.SystemContext;
 
 public class MemoryConfigurationEntryStoreTest extends ConfigurationEntryStoreTestCase
 {
+    private SystemContext _systemContext;
+
+    @Override
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        _systemContext = new SystemContext(new TaskExecutor(), new ConfiguredObjectFactory(),
+                                           mock(EventLogger.class), mock(LogRecorder.class),
+                                           new BrokerOptions());
+
+    }
 
     @Override
-    protected ConfigurationEntryStore createStore(UUID brokerId, Map<String, Object> brokerAttributes) throws Exception
+    protected MemoryConfigurationEntryStore createStore(UUID brokerId, Map<String, Object> brokerAttributes) throws Exception
     {
         Map<String, Object> broker = new HashMap<String, Object>();
         broker.put(Broker.ID, brokerId);
@@ -52,19 +71,19 @@ public class MemoryConfigurationEntrySto
     @Override
     protected void addConfiguration(UUID id, String type, Map<String, Object> attributes, UUID parentId)
     {
-        ConfigurationEntryStore store = getStore();
+        MemoryConfigurationEntryStore store = getStore();
         ConfigurationEntry parentEntry = getStore().getEntry(parentId);
         Set<UUID> children = new HashSet<UUID>(parentEntry.getChildrenIds());
         children.add(id);
-        ConfigurationEntry newParentEntry = new ConfigurationEntry(parentEntry.getId(), parentEntry.getType(), parentEntry.getAttributes(), children, store);
-        store.save(newParentEntry, new ConfigurationEntry(id, type, attributes, Collections.<UUID> emptySet(), store));
+        ConfigurationEntry newParentEntry = new ConfigurationEntryImpl(parentEntry.getId(), parentEntry.getType(), parentEntry.getAttributes(), children, store);
+        store.save(newParentEntry, new ConfigurationEntryImpl(id, type, attributes, Collections.<UUID> emptySet(), store));
     }
 
     public void testCreateWithNullLocationAndNullInitialStore()
     {
         try
         {
-            new MemoryConfigurationEntryStore(null, null, Collections.<String,String>emptyMap());
+            new MemoryConfigurationEntryStore(null, null, null, Collections.<String,String>emptyMap());
             fail("Cannot create a memory store without either initial store or path to an initial store file");
         }
         catch(IllegalConfigurationException e)
@@ -86,8 +105,8 @@ public class MemoryConfigurationEntrySto
         UUID brokerId = UUID.randomUUID();
         Map<String, Object> brokerAttributes = new HashMap<String, Object>();
         brokerAttributes.put(Broker.NAME, getTestName());
-        MemoryConfigurationEntryStore  initialStoreFile = (MemoryConfigurationEntryStore)createStore(brokerId, brokerAttributes);
-        MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(null, initialStoreFile, Collections.<String,String>emptyMap());
+        MemoryConfigurationEntryStore  initialStoreFile = createStore(brokerId, brokerAttributes);
+        MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(_systemContext, null, initialStoreFile, Collections.<String,String>emptyMap());
 
         ConfigurationEntry root = store.getRootEntry();
         assertNotNull("Root entry is not found", root);
@@ -108,11 +127,11 @@ public class MemoryConfigurationEntrySto
             setTestSystemProperty("QPID_HOME", TMP_FOLDER);
             setTestSystemProperty("QPID_WORK", TMP_FOLDER + File.separator + "work");
         }
-        MemoryConfigurationEntryStore initialStore = new MemoryConfigurationEntryStore(BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, null, new BrokerOptions().getConfigProperties());
+        MemoryConfigurationEntryStore initialStore = new MemoryConfigurationEntryStore(_systemContext,BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, null, new BrokerOptions().getConfigProperties());
         ConfigurationEntry initialStoreRoot = initialStore.getRootEntry();
         assertNotNull("Initial store root entry is not found", initialStoreRoot);
 
-         MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(null, initialStore, Collections.<String,String>emptyMap());
+         MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(_systemContext, null, initialStore, Collections.<String,String>emptyMap());
 
         ConfigurationEntry root = store.getRootEntry();
         assertNotNull("Root entry is not found", root);
@@ -130,4 +149,5 @@ public class MemoryConfigurationEntrySto
     {
         assertEquals("Unexpected type", "memory", getStore().getType());
     }
+
 }

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/StoreConfigurationChangeListenerTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/StoreConfigurationChangeListenerTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/StoreConfigurationChangeListenerTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/StoreConfigurationChangeListenerTest.java Fri Apr  4 22:34:26 2014
@@ -20,6 +20,7 @@
  */
 package org.apache.qpid.server.configuration.store;
 
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.verify;
@@ -28,13 +29,13 @@ import static org.mockito.Mockito.when;
 
 import java.util.UUID;
 
-import org.apache.qpid.server.configuration.ConfigurationEntry;
 import org.apache.qpid.server.configuration.ConfigurationEntryStore;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.store.ConfiguredObjectRecord;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 public class StoreConfigurationChangeListenerTest extends QpidTestCase
@@ -55,8 +56,10 @@ public class StoreConfigurationChangeLis
         UUID id = UUID.randomUUID();
         ConfiguredObject object = mock(VirtualHost.class);
         when(object.getId()).thenReturn(id);
+        ConfiguredObjectRecord record = mock(ConfiguredObjectRecord.class);
+        when(object.asObjectRecord()).thenReturn(record);
         _listener.stateChanged(object, State.ACTIVE, State.DELETED);
-        verify(_store).remove(id);
+        verify(_store).remove(record);
     }
 
     public void testChildAdded()
@@ -67,18 +70,7 @@ public class StoreConfigurationChangeLis
         VirtualHost child = mock(VirtualHost.class);
         when(child.getCategoryClass()).thenReturn(VirtualHost.class);
         _listener.childAdded(broker, child);
-        verify(_store).save(any(ConfigurationEntry.class), any(ConfigurationEntry.class));
-    }
-
-    public void testChildRemoved()
-    {
-        notifyBrokerStarted();
-        Broker broker = mock(Broker.class);
-        when(broker.getCategoryClass()).thenReturn(Broker.class);
-        VirtualHost child = mock(VirtualHost.class);
-        when(child.getCategoryClass()).thenReturn(VirtualHost.class);
-        _listener.childRemoved(broker, child);
-        verify(_store).save(any(ConfigurationEntry.class));
+        verify(_store).update(eq(true), any(ConfiguredObjectRecord.class));
     }
 
     public void testAttributeSet()
@@ -87,7 +79,7 @@ public class StoreConfigurationChangeLis
         Broker broker = mock(Broker.class);
         when(broker.getCategoryClass()).thenReturn(Broker.class);
         _listener.attributeSet(broker, Broker.QUEUE_FLOW_CONTROL_SIZE_BYTES, null, 1);
-        verify(_store).save(any(ConfigurationEntry.class));
+        verify(_store).update(eq(false),any(ConfiguredObjectRecord.class));
     }
 
     public void testChildAddedForVirtualHost()

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java Fri Apr  4 22:34:26 2014
@@ -20,18 +20,9 @@
  */
 package org.apache.qpid.server.model;
 
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import org.apache.qpid.server.configuration.ConfigurationEntry;
 import org.apache.qpid.server.configuration.RecovererProvider;
-import org.apache.qpid.server.configuration.startup.VirtualHostRecoverer;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.model.adapter.StandardVirtualHostAdapter;
 import org.apache.qpid.server.stats.StatisticsGatherer;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.TestMemoryMessageStore;
@@ -39,6 +30,14 @@ import org.apache.qpid.server.util.Broke
 import org.apache.qpid.server.virtualhost.StandardVirtualHostFactory;
 import org.apache.qpid.test.utils.QpidTestCase;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 public class VirtualHostTest extends QpidTestCase
 {
 
@@ -158,10 +157,7 @@ public class VirtualHostTest extends Qpi
 
     private VirtualHost createHost(Map<String, Object> attributes)
     {
-        ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), VirtualHost.class.getSimpleName(), attributes,
-                Collections.<UUID> emptySet(), null);
-
-        return new VirtualHostRecoverer(_statisticsGatherer).create(_recovererProvider, entry, _broker);
+        return new StandardVirtualHostAdapter(UUID.randomUUID(), attributes, _broker);
     }
 
 }

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactoryTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactoryTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactoryTest.java Fri Apr  4 22:34:26 2014
@@ -32,6 +32,7 @@ import java.util.UUID;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.PreferencesProvider;
 import org.apache.qpid.server.util.BrokerTestHelper;
 import org.apache.qpid.test.utils.QpidTestCase;
@@ -80,7 +81,8 @@ public class FileSystemPreferencesProvid
         try
         {
             attributes.put(FileSystemPreferencesProvider.PATH, file.getAbsolutePath());
-            PreferencesProvider provider = _factory.createInstance(id, attributes, _authenticationProvider);
+            attributes.put(ConfiguredObject.ID, id);
+            PreferencesProvider provider = _factory.create(attributes, _authenticationProvider);
             assertNotNull("Preferences provider was not instantiated", provider);
             assertEquals("Unexpected name", "test-provider", provider.getName());
             assertEquals("Unexpected id", id, provider.getId());
@@ -104,7 +106,8 @@ public class FileSystemPreferencesProvid
         try
         {
             attributes.put(FileSystemPreferencesProvider.PATH, file.getAbsolutePath());
-            _factory.createInstance(id, attributes, _authenticationProvider);
+            attributes.put(ConfiguredObject.ID, id);
+            _factory.create(attributes, _authenticationProvider);
         }
         catch (IllegalConfigurationException e)
         {
@@ -123,7 +126,8 @@ public class FileSystemPreferencesProvid
         try
         {
             attributes.put(FileSystemPreferencesProvider.PATH, file.getAbsolutePath());
-            PreferencesProvider provider = _factory.createInstance(id, attributes, _authenticationProvider);
+            attributes.put(ConfiguredObject.ID, id);
+            PreferencesProvider provider = _factory.create(attributes, _authenticationProvider);
             assertNotNull("Preferences provider was not recovered", provider);
             assertEquals("Unexpected name", "test-provider", provider.getName());
             assertEquals("Unexpected id", id, provider.getId());

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java Fri Apr  4 22:34:26 2014
@@ -97,7 +97,7 @@ public class FileSystemPreferencesProvid
             Map<String, Object> attributes = new HashMap<String, Object>();
             attributes.put(FileSystemPreferencesProvider.PATH, nonExistingFile.getAbsolutePath());
             attributes.put(FileSystemPreferencesProvider.NAME, getTestName());
-            _preferencesProvider = new FileSystemPreferencesProvider(UUID.randomUUID(), attributes, _authenticationProvider, _broker.getTaskExecutor());
+            _preferencesProvider = new FileSystemPreferencesProvider(UUID.randomUUID(), attributes, _authenticationProvider);
             _preferencesProvider.createStoreIfNotExist();
             assertEquals(State.INITIALISING, _preferencesProvider.getState());
             assertTrue("Preferences file was not created", nonExistingFile.exists());
@@ -118,7 +118,7 @@ public class FileSystemPreferencesProvid
             Map<String, Object> attributes = new HashMap<String, Object>();
             attributes.put(FileSystemPreferencesProvider.NAME, getTestName());
             attributes.put(FileSystemPreferencesProvider.PATH, emptyPrefsFile.getAbsolutePath());
-            _preferencesProvider = new FileSystemPreferencesProvider(UUID.randomUUID(), attributes, _authenticationProvider, _broker.getTaskExecutor());
+            _preferencesProvider = new FileSystemPreferencesProvider(UUID.randomUUID(), attributes, _authenticationProvider);
             assertEquals(State.INITIALISING, _preferencesProvider.getState());
         }
         finally
@@ -278,7 +278,7 @@ public class FileSystemPreferencesProvid
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(FileSystemPreferencesProvider.PATH, _preferencesFile.getAbsolutePath());
         attributes.put(FileSystemPreferencesProvider.NAME, "test");
-        return _preferencesProvider = new FileSystemPreferencesProvider(UUID.randomUUID(), attributes, _authenticationProvider, _broker.getTaskExecutor());
+        return _preferencesProvider = new FileSystemPreferencesProvider(UUID.randomUUID(), attributes, _authenticationProvider);
     }
 
     private void assertUser1Preferences(Map<String, Object> preferences1)

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java Fri Apr  4 22:34:26 2014
@@ -43,6 +43,8 @@ import org.apache.qpid.server.model.Port
 import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.Transport;
 import org.apache.qpid.server.model.TrustStore;
+import org.apache.qpid.server.model.port.AmqpPort;
+import org.apache.qpid.server.model.port.PortFactory;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 public class PortFactoryTest extends QpidTestCase
@@ -63,6 +65,7 @@ public class PortFactoryTest extends Qpi
     private AuthenticationProvider _authProvider = mock(AuthenticationProvider.class);
     private PortFactory _portFactory;
 
+
     @Override
     protected void setUp() throws Exception
     {
@@ -83,7 +86,13 @@ public class PortFactoryTest extends Qpi
 
     public void testDefaultProtocols()
     {
-        Collection<Protocol> protocols = _portFactory.getDefaultProtocols();
+        Map<String, Object> attributes = new HashMap<String, Object>();
+        attributes.put(Port.PORT, 1);
+        attributes.put(Port.AUTHENTICATION_PROVIDER, _authProviderName);
+        Port port = _portFactory.createPort(_portId, _broker, attributes);
+
+        Collection<Protocol> protocols = port.getProtocols();
+
         EnumSet<Protocol> expected = EnumSet.of(Protocol.AMQP_0_8, Protocol.AMQP_0_9, Protocol.AMQP_0_9_1, Protocol.AMQP_0_10,
                 Protocol.AMQP_1_0);
         assertEquals("Unexpected protocols", new HashSet<Protocol>(expected), new HashSet<Protocol>(protocols));
@@ -93,8 +102,14 @@ public class PortFactoryTest extends Qpi
     {
         setTestSystemProperty(BrokerProperties.PROPERTY_BROKER_DEFAULT_AMQP_PROTOCOL_EXCLUDES, Protocol.AMQP_1_0.name() + ","
                 + Protocol.AMQP_0_10.name());
-        _portFactory = new PortFactory();
-        Collection<Protocol> protocols = _portFactory.getDefaultProtocols();
+
+        Map<String, Object> attributes = new HashMap<String, Object>();
+        attributes.put(Port.PORT, 1);
+        attributes.put(Port.AUTHENTICATION_PROVIDER, _authProviderName);
+        Port port = _portFactory.createPort(_portId, _broker, attributes);
+
+        Collection<Protocol> protocols = port.getProtocols();
+
         EnumSet<Protocol> expected = EnumSet.of(Protocol.AMQP_0_8, Protocol.AMQP_0_9, Protocol.AMQP_0_9_1);
         assertEquals("Unexpected protocols", new HashSet<Protocol>(expected), new HashSet<Protocol>(protocols));
     }
@@ -105,8 +120,14 @@ public class PortFactoryTest extends Qpi
                 + Protocol.AMQP_0_10.name() + "," + Protocol.AMQP_0_9_1.name());
         setTestSystemProperty(BrokerProperties.PROPERTY_BROKER_DEFAULT_AMQP_PROTOCOL_INCLUDES, Protocol.AMQP_0_10.name() + ","
                 + Protocol.AMQP_0_9_1.name());
-        _portFactory = new PortFactory();
-        Collection<Protocol> protocols = _portFactory.getDefaultProtocols();
+
+        Map<String, Object> attributes = new HashMap<String, Object>();
+        attributes.put(Port.PORT, 1);
+        attributes.put(Port.AUTHENTICATION_PROVIDER, _authProviderName);
+        Port port = _portFactory.createPort(_portId, _broker, attributes);
+
+        Collection<Protocol> protocols = port.getProtocols();
+
         EnumSet<Protocol> expected = EnumSet.of(Protocol.AMQP_0_8, Protocol.AMQP_0_9, Protocol.AMQP_0_9_1, Protocol.AMQP_0_10);
         assertEquals("Unexpected protocols", new HashSet<Protocol>(expected), new HashSet<Protocol>(protocols));
     }
@@ -119,10 +140,11 @@ public class PortFactoryTest extends Qpi
         Port port = _portFactory.createPort(_portId, _broker, attributes);
 
         assertNotNull(port);
-        assertTrue(port instanceof AmqpPortAdapter);
+        assertTrue(port instanceof AmqpPort);
         assertEquals("Unexpected port", 1, port.getPort());
         assertEquals("Unexpected transports", Collections.singleton(PortFactory.DEFAULT_TRANSPORT), port.getTransports());
-        assertEquals("Unexpected protocols", _portFactory.getDefaultProtocols(), port.getProtocols());
+        assertEquals("Unexpected protocols", EnumSet.of(Protocol.AMQP_0_8, Protocol.AMQP_0_9, Protocol.AMQP_0_9_1, Protocol.AMQP_0_10,
+                                                        Protocol.AMQP_1_0), port.getProtocols());
         assertEquals("Unexpected send buffer size", PortFactory.DEFAULT_AMQP_SEND_BUFFER_SIZE,
                 port.getAttribute(Port.SEND_BUFFER_SIZE));
         assertEquals("Unexpected receive buffer size", PortFactory.DEFAULT_AMQP_RECEIVE_BUFFER_SIZE,
@@ -252,7 +274,7 @@ public class PortFactoryTest extends Qpi
         Port port = _portFactory.createPort(_portId, _broker, _attributes);
 
         assertNotNull(port);
-        assertTrue(port instanceof AmqpPortAdapter);
+        assertTrue(port instanceof AmqpPort);
         assertEquals(_portId, port.getId());
         assertEquals(_portNumber, port.getPort());
         if(useSslTransport)
@@ -285,7 +307,7 @@ public class PortFactoryTest extends Qpi
         Port port = _portFactory.createPort(_portId, _broker, _attributes);
 
         assertNotNull(port);
-        assertFalse("Port should be a PortAdapter, not its AMQP-specific subclass", port instanceof AmqpPortAdapter);
+        assertFalse("Port should be a PortAdapter, not its AMQP-specific subclass", port instanceof AmqpPort);
         assertEquals(_portId, port.getId());
         assertEquals(_portNumber, port.getPort());
         assertEquals(_tcpTransportSet, port.getTransports());
@@ -310,7 +332,7 @@ public class PortFactoryTest extends Qpi
         Port port = _portFactory.createPort(_portId, _broker, _attributes);
 
         assertNotNull(port);
-        assertFalse("Port should be a PortAdapter, not its AMQP-specific subclass", port instanceof AmqpPortAdapter);
+        assertFalse("Port should be a PortAdapter, not its AMQP-specific subclass", port instanceof AmqpPort);
         assertEquals(_portId, port.getId());
         assertEquals(_portNumber, port.getPort());
         assertEquals(Collections.singleton(PortFactory.DEFAULT_TRANSPORT), port.getTransports());

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java Fri Apr  4 22:34:26 2014
@@ -35,7 +35,8 @@ import java.util.UUID;
 import junit.framework.TestCase;
 
 import org.apache.qpid.server.configuration.ConfigurationEntry;
-import org.apache.qpid.server.configuration.ConfigurationEntryStore;
+import org.apache.qpid.server.configuration.ConfigurationEntryImpl;
+import org.apache.qpid.server.configuration.store.MemoryConfigurationEntryStore;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.Port;
 import org.apache.qpid.server.model.VirtualHost;
@@ -44,13 +45,13 @@ public class ConfigurationEntryTest exte
 {
     public void testGetChildren()
     {
-        ConfigurationEntryStore store = mock(ConfigurationEntryStore.class);
+        MemoryConfigurationEntryStore store = mock(MemoryConfigurationEntryStore.class);
 
-        ConfigurationEntry virtualHostEntry1 = new ConfigurationEntry(UUID.randomUUID(), VirtualHost.class.getSimpleName(),
+        ConfigurationEntry virtualHostEntry1 = new ConfigurationEntryImpl(UUID.randomUUID(), VirtualHost.class.getSimpleName(),
                 Collections.<String, Object> emptyMap(), Collections.<UUID> emptySet(), store);
-        ConfigurationEntry virtualHostEntry2 = new ConfigurationEntry(UUID.randomUUID(), VirtualHost.class.getSimpleName(),
+        ConfigurationEntry virtualHostEntry2 = new ConfigurationEntryImpl(UUID.randomUUID(), VirtualHost.class.getSimpleName(),
                 Collections.<String, Object> emptyMap(), Collections.<UUID> emptySet(), store);
-        ConfigurationEntry portEntry = new ConfigurationEntry(UUID.randomUUID(), Port.class.getSimpleName(),
+        ConfigurationEntry portEntry = new ConfigurationEntryImpl(UUID.randomUUID(), Port.class.getSimpleName(),
                 Collections.<String, Object> emptyMap(), Collections.<UUID> emptySet(), store);
 
         when(store.getEntry(virtualHostEntry1.getId())).thenReturn(virtualHostEntry1);
@@ -61,7 +62,7 @@ public class ConfigurationEntryTest exte
         childrenIds.add(virtualHostEntry1.getId());
         childrenIds.add(virtualHostEntry2.getId());
         childrenIds.add(portEntry.getId());
-        ConfigurationEntry parentEntry = new ConfigurationEntry(UUID.randomUUID(), Broker.class.getSimpleName(),
+        ConfigurationEntry parentEntry = new ConfigurationEntryImpl(UUID.randomUUID(), Broker.class.getSimpleName(),
                 Collections.<String, Object> emptyMap(), childrenIds, store);
 
         Map<String, Collection<ConfigurationEntry>> children = parentEntry.getChildren();
@@ -78,14 +79,14 @@ public class ConfigurationEntryTest exte
 
     public void testHashCode()
     {
-        ConfigurationEntryStore store = mock(ConfigurationEntryStore.class);
+        MemoryConfigurationEntryStore store = mock(MemoryConfigurationEntryStore.class);
 
         UUID id = UUID.randomUUID();
-        ConfigurationEntry entry1 = new ConfigurationEntry(id, VirtualHost.class.getSimpleName(),
+        ConfigurationEntry entry1 = new ConfigurationEntryImpl(id, VirtualHost.class.getSimpleName(),
                 Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
-        ConfigurationEntry entry2 = new ConfigurationEntry(id, VirtualHost.class.getSimpleName(),
+        ConfigurationEntry entry2 = new ConfigurationEntryImpl(id, VirtualHost.class.getSimpleName(),
                 Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
-        ConfigurationEntry entryWithDifferentId = new ConfigurationEntry(UUID.randomUUID(),
+        ConfigurationEntry entryWithDifferentId = new ConfigurationEntryImpl(UUID.randomUUID(),
                 VirtualHost.class.getSimpleName(), Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
 
         assertTrue(entry1.hashCode() == entry2.hashCode());
@@ -94,35 +95,35 @@ public class ConfigurationEntryTest exte
 
     public void testEqualsObject()
     {
-        ConfigurationEntryStore store = mock(ConfigurationEntryStore.class);
+        MemoryConfigurationEntryStore store = mock(MemoryConfigurationEntryStore.class);
 
         UUID id = UUID.randomUUID();
         Map<String, Object> attributes1 = new HashMap<String, Object>();
         attributes1.put(VirtualHost.NAME, "name1");
         Set<UUID> childrenIds = Collections.singleton(UUID.randomUUID());
-        ConfigurationEntry entry1 = new ConfigurationEntry(id, VirtualHost.class.getSimpleName(), attributes1,
+        ConfigurationEntry entry1 = new ConfigurationEntryImpl(id, VirtualHost.class.getSimpleName(), attributes1,
                 childrenIds, store);
 
         Map<String, Object> attributes2 = new HashMap<String, Object>();
         attributes2.put(VirtualHost.NAME, "name2");
 
-        ConfigurationEntry entry2 = new ConfigurationEntry(id, VirtualHost.class.getSimpleName(), attributes1,
+        ConfigurationEntry entry2 = new ConfigurationEntryImpl(id, VirtualHost.class.getSimpleName(), attributes1,
                 childrenIds, store);
-        ConfigurationEntry entryWithDifferentId = new ConfigurationEntry(UUID.randomUUID(),
+        ConfigurationEntry entryWithDifferentId = new ConfigurationEntryImpl(UUID.randomUUID(),
                 VirtualHost.class.getSimpleName(), attributes1, childrenIds, store);
 
         assertTrue(entry1.equals(entry2));
         assertFalse("Entries should be different because of different IDs", entry1.equals(entryWithDifferentId));
 
-        ConfigurationEntry entryWithDifferentChildId = new ConfigurationEntry(id,
+        ConfigurationEntry entryWithDifferentChildId = new ConfigurationEntryImpl(id,
                 VirtualHost.class.getSimpleName(), attributes1, Collections.singleton(UUID.randomUUID()), store);
         assertFalse("Entries should be different because of different children", entry1.equals(entryWithDifferentChildId));
 
-        ConfigurationEntry entryWithDifferentName = new ConfigurationEntry(id,
+        ConfigurationEntry entryWithDifferentName = new ConfigurationEntryImpl(id,
                 VirtualHost.class.getSimpleName(), attributes2, childrenIds, store);
         assertFalse("Entries should be different because of different attributes", entry1.equals(entryWithDifferentName));
 
-        ConfigurationEntry entryWithDifferentType = new ConfigurationEntry(id,
+        ConfigurationEntry entryWithDifferentType = new ConfigurationEntryImpl(id,
                 Broker.class.getSimpleName(), attributes1, childrenIds, store);
         assertFalse("Entries should be different because of different types", entry1.equals(entryWithDifferentType));
     }

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PlainPasswordFileAuthenticationManagerFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PlainPasswordFileAuthenticationManagerFactoryTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PlainPasswordFileAuthenticationManagerFactoryTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PlainPasswordFileAuthenticationManagerFactoryTest.java Fri Apr  4 22:34:26 2014
@@ -35,7 +35,8 @@ import org.apache.qpid.server.security.a
 
 public class PlainPasswordFileAuthenticationManagerFactoryTest extends  TestCase
 {
-    AuthenticationManagerFactory _factory = new PlainPasswordFileAuthenticationManagerFactory();
+
+    PlainPasswordFileAuthenticationManagerFactory _factory = new PlainPasswordFileAuthenticationManagerFactory();
     private Map<String, Object> _configuration = new HashMap<String, Object>();
     private File _emptyPasswordFile;
     private Broker _broker = mock(Broker.class);
@@ -55,7 +56,7 @@ public class PlainPasswordFileAuthentica
         _configuration.put(AuthenticationProvider.TYPE, PlainPasswordFileAuthenticationManagerFactory.PROVIDER_TYPE);
         _configuration.put("path", _emptyPasswordFile.getAbsolutePath());
 
-        AuthenticationManager manager = _factory.createInstance(_broker, _configuration, false);
+        AuthenticationManager manager = _factory.create(_configuration, _broker);
         assertNotNull(manager);
         assertTrue(manager instanceof PrincipalDatabaseAuthenticationManager);
         assertTrue(((PrincipalDatabaseAuthenticationManager)manager).getPrincipalDatabase() instanceof PlainPasswordFilePrincipalDatabase);
@@ -70,33 +71,20 @@ public class PlainPasswordFileAuthentica
         _configuration.put("path", _emptyPasswordFile.getAbsolutePath());
 
 
-        AuthenticationManager manager = _factory.createInstance(_broker, _configuration, false);
+        AuthenticationManager manager = _factory.create(_configuration, _broker);
 
         assertNotNull(manager);
         assertTrue(manager instanceof PrincipalDatabaseAuthenticationManager);
         assertTrue(((PrincipalDatabaseAuthenticationManager)manager).getPrincipalDatabase() instanceof PlainPasswordFilePrincipalDatabase);
     }
 
-    public void testReturnsNullWhenNoConfig() throws Exception
-    {
-        AuthenticationManager manager = _factory.createInstance(_broker, _configuration, false);
-        assertNull(manager);
-    }
-
-    public void testReturnsNullWhenConfigForOtherAuthManagerType() throws Exception
-    {
-        _configuration.put(AuthenticationProvider.TYPE, "other-auth-manager");
-        AuthenticationManager manager = _factory.createInstance(_broker, _configuration, false);
-        assertNull(manager);
-    }
-
     public void testThrowsExceptionWhenConfigForPlainPDImplementationNoPasswordFileValueSpecified() throws Exception
     {
         _configuration.put(AuthenticationProvider.TYPE, PlainPasswordFileAuthenticationManagerFactory.PROVIDER_TYPE);
 
         try
         {
-            AuthenticationManager manager = _factory.createInstance(_broker, _configuration, false);
+            AuthenticationManager manager = _factory.create(_configuration, _broker);
             fail("No authentication manager should be created");
         }
         catch (IllegalArgumentException e)

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ScramSHA1AuthenticationManagerTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ScramSHA1AuthenticationManagerTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ScramSHA1AuthenticationManagerTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ScramSHA1AuthenticationManagerTest.java Fri Apr  4 22:34:26 2014
@@ -58,7 +58,7 @@ public class ScramSHA1AuthenticationMana
         final Map<String, Object> attributesMap = new HashMap<String, Object>();
         attributesMap.put(AuthenticationProvider.NAME, getTestName());
         attributesMap.put(AuthenticationProvider.ID, UUID.randomUUID());
-        _authManager = new ScramSHA1AuthenticationManager(_broker, Collections.<String,Object>emptyMap(),attributesMap,false);
+        _authManager = new ScramSHA1AuthenticationManager(_broker, Collections.<String,Object>emptyMap(),attributesMap);
     }
 
     @Override

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java Fri Apr  4 22:34:26 2014
@@ -29,9 +29,9 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.SystemContext;
 import org.apache.qpid.server.model.TrustStore;
 
 
@@ -42,6 +42,8 @@ public class SimpleLDAPAuthenticationMan
     private SimpleLDAPAuthenticationManagerFactory _factory = new SimpleLDAPAuthenticationManagerFactory();
     private Map<String, Object> _configuration = new HashMap<String, Object>();
     private Broker _broker = mock(Broker.class);
+    private SystemContext _systemContext = mock(SystemContext.class);
+
     private TrustStore _trustStore = mock(TrustStore.class);
 
     public void setUp() throws Exception
@@ -51,6 +53,9 @@ public class SimpleLDAPAuthenticationMan
         when(_trustStore.getName()).thenReturn("mytruststore");
         when(_trustStore.getId()).thenReturn(UUID.randomUUID());
 
+        when(_broker.getParent(eq(SystemContext.class))).thenReturn(_systemContext);
+        when(_systemContext.getChildren(eq(Broker.class))).thenReturn(Collections.singleton(_broker));
+
         _configuration.put(AuthenticationProvider.ID, UUID.randomUUID());
         _configuration.put(AuthenticationProvider.NAME, getName());
     }
@@ -61,7 +66,7 @@ public class SimpleLDAPAuthenticationMan
         _configuration.put("providerUrl", "ldap://example.com:389/");
         _configuration.put("searchContext", "dc=example");
 
-        AuthenticationManager manager = _factory.createInstance(_broker, _configuration, false);
+        AuthenticationManager manager = _factory.create(_configuration, _broker);
         assertNotNull(manager);
 
     }
@@ -72,7 +77,7 @@ public class SimpleLDAPAuthenticationMan
         _configuration.put("providerUrl", "ldaps://example.com:636/");
         _configuration.put("searchContext", "dc=example");
 
-        AuthenticationManager manager = _factory.createInstance(_broker, _configuration, false);
+        AuthenticationManager manager = _factory.create(_configuration, _broker);
         assertNotNull(manager);
 
     }
@@ -87,7 +92,7 @@ public class SimpleLDAPAuthenticationMan
         _configuration.put("searchContext", "dc=example");
         _configuration.put("trustStore", "mytruststore");
 
-        AuthenticationManager manager = _factory.createInstance(_broker, _configuration, false);
+        AuthenticationManager manager = _factory.create(_configuration, _broker);
         assertNotNull(manager);
     }
 
@@ -102,7 +107,7 @@ public class SimpleLDAPAuthenticationMan
 
         try
         {
-            _factory.createInstance(_broker, _configuration, false);
+            _factory.create(_configuration, _broker);
             fail("Exception not thrown");
         }
         catch(IllegalArgumentException e)
@@ -111,9 +116,4 @@ public class SimpleLDAPAuthenticationMan
         }
     }
 
-    public void testReturnsNullWhenNoConfig() throws Exception
-    {
-        AuthenticationManager manager = _factory.createInstance(_broker, _configuration, false);
-        assertNull(manager);
-    }
 }

Modified: qpid/trunk/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java Fri Apr  4 22:34:26 2014
@@ -20,15 +20,14 @@
  */
 package org.apache.qpid.server.store.jdbc.bonecp;
 
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Map;
-
+import com.jolbox.bonecp.BoneCP;
+import com.jolbox.bonecp.BoneCPConfig;
 import org.apache.qpid.server.store.jdbc.ConnectionProvider;
 import org.apache.qpid.server.util.MapValueConverter;
 
-import com.jolbox.bonecp.BoneCP;
-import com.jolbox.bonecp.BoneCPConfig;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Map;
 
 public class BoneCPConnectionProvider implements ConnectionProvider
 {

Modified: qpid/trunk/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java Fri Apr  4 22:34:26 2014
@@ -34,7 +34,6 @@ public class BoneCPConnectionProviderFac
         return "BONECP";
     }
 
-    @Override
     public ConnectionProvider getConnectionProvider(String connectionUrl, Map<String, Object> storeSettings)
             throws SQLException
     {

Modified: qpid/trunk/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java Fri Apr  4 22:34:26 2014
@@ -37,7 +37,7 @@ import org.apache.qpid.server.model.Conf
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Model;
 import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.adapter.AbstractConfiguredObject;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
 import org.apache.qpid.server.plugin.MessageConverter;
 import org.apache.qpid.server.plugin.SystemNodeCreator;
 import org.apache.qpid.server.protocol.AMQSessionModel;

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java Fri Apr  4 22:34:26 2014
@@ -20,17 +20,6 @@
  */
 package org.apache.qpid.server.management.plugin;
 
-import java.lang.reflect.Type;
-import java.net.SocketAddress;
-import java.security.GeneralSecurityException;
-import java.util.*;
-
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-import javax.servlet.DispatcherType;
-
 import org.apache.log4j.Logger;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.logging.messages.ManagementConsoleMessages;
@@ -39,21 +28,10 @@ import org.apache.qpid.server.management
 import org.apache.qpid.server.management.plugin.servlet.DefinedFileServlet;
 import org.apache.qpid.server.management.plugin.servlet.FileServlet;
 import org.apache.qpid.server.management.plugin.servlet.LogFileServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.HelperServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.LogFileListingServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.LogRecordsServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.LogoutServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.MessageContentServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.MessageServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.LoggedOnUserPreferencesServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.UserPreferencesServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.RestServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.StructureServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.*;
 import org.apache.qpid.server.model.*;
 import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.model.adapter.AbstractPluginAdapter;
-import org.apache.qpid.server.plugin.PluginFactory;
 import org.apache.qpid.server.util.MapValueConverter;
 import org.apache.qpid.server.util.ServerScopedRuntimeException;
 import org.apache.qpid.transport.network.security.ssl.QpidMultipleTrustManager;
@@ -67,6 +45,17 @@ import org.eclipse.jetty.servlet.Servlet
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 
+import javax.net.ssl.KeyManager;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import javax.servlet.DispatcherType;
+import java.lang.reflect.Type;
+import java.net.SocketAddress;
+import java.security.GeneralSecurityException;
+import java.util.*;
+
+@ManagedObject( category = false, type = "MANAGEMENT-HTTP" )
 public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implements HttpManagementConfiguration<HttpManagement>
 {
     private final Logger _logger = Logger.getLogger(HttpManagement.class);
@@ -109,7 +98,7 @@ public class HttpManagement extends Abst
         put(HTTPS_SASL_AUTHENTICATION_ENABLED, Boolean.class);
         put(NAME, String.class);
         put(TIME_OUT, Integer.class);
-        put(PluginFactory.PLUGIN_TYPE, String.class);
+        put(TYPE, String.class);
     }});
 
     private static final String JSESSIONID_COOKIE_PREFIX = "JSESSIONID_";

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java Fri Apr  4 22:34:26 2014
@@ -25,6 +25,7 @@ import java.net.SocketAddress;
 import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.ManagedAttribute;
+import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.Plugin;
 
 public interface HttpManagementConfiguration<X extends HttpManagementConfiguration<X>> extends Plugin<X>

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java?rev=1584931&r1=1584930&r2=1584931&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java Fri Apr  4 22:34:26 2014
@@ -18,30 +18,29 @@
  */
 package org.apache.qpid.server.management.plugin;
 
+import org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
+
+import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.Plugin;
-import org.apache.qpid.server.plugin.PluginFactory;
-
-public class HttpManagementFactory implements PluginFactory
+public class HttpManagementFactory extends AbstractConfiguredObjectTypeFactory<HttpManagement>
 {
 
-    @Override
-    public Plugin createInstance(UUID id, Map<String, Object> attributes, Broker broker)
+    public HttpManagementFactory()
     {
-        if (!HttpManagement.PLUGIN_TYPE.equals(attributes.get(PLUGIN_TYPE)))
-        {
-            return null;
-        }
-
-        return new HttpManagement(id, broker, attributes);
+        super(HttpManagement.class);
     }
 
     @Override
-    public String getType()
+    public HttpManagement createInstance(final Map<String, Object> attributes, final ConfiguredObject<?>... parents)
     {
-        return "HTTP Management";
+        Map<String,Object> attributesWithoutId = new HashMap<String, Object>(attributes);
+        Object idObj = attributesWithoutId.remove(ConfiguredObject.ID);
+        UUID id = idObj == null ? UUID.randomUUID() : idObj instanceof UUID ? (UUID) idObj : UUID.fromString(idObj.toString());
+        return new HttpManagement(id, getParent(Broker.class,parents), attributes);
     }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org