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/04 23:06:09 UTC

svn commit: r1584910 [1/3] - in /qpid/branches/java-broker-config-store-changes/qpid/java: bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/ broker-core/src/main/java/org/apache/qpid/server/ broker-core/src/main/java/org/apache/q...

Author: rgodfrey
Date: Fri Apr  4 21:06:08 2014
New Revision: 1584910

URL: http://svn.apache.org/r1584910
Log:
removed references to ConfigurationEntry

Modified:
    qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUpgradeTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HATestClusterCreator.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryImpl.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryStore.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/BrokerStoreUpgrader.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/client/ssl/SSLTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/BrokerLoggingTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/server/stats/StatisticsReportingTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SplitStoreTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/server/store/StoreOverfullTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AccessControlProviderRestTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AnonymousAccessRestTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BasicAuthRestTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsClientCertAuthTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/SaslRestTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/ExchangeRestACLTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/GroupRestACLTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/LogViewerACLTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/QueueRestACLTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserPreferencesRestACLTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserRestACLTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
    qpid/branches/java-broker-config-store-changes/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java Fri Apr  4 21:06:08 2014
@@ -61,7 +61,7 @@ public class BDBBackupTest extends QpidB
         super.setUp();
         _backupToDir = new File(SYSTEM_TMP_DIR + File.separator + getTestName());
         _backupToDir.mkdirs();
-        Map<String, Object> virtualHostAttributes = getBrokerConfiguration().getObjectAttributes(TEST_VHOST);
+        Map<String, Object> virtualHostAttributes = getBrokerConfiguration().getObjectAttributes(VirtualHost.class,TEST_VHOST);
         Map<String, Object> messageStoreSettings = (Map<String, Object>) virtualHostAttributes.get(VirtualHost.MESSAGE_STORE_SETTINGS);
         _backupFromDir = new File((String)messageStoreSettings.get(MessageStore.STORE_PATH));
         boolean fromDirExistsAndIsDir = _backupFromDir.isDirectory();

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUpgradeTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUpgradeTest.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUpgradeTest.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUpgradeTest.java Fri Apr  4 21:06:08 2014
@@ -42,6 +42,9 @@ import javax.jms.TopicSubscriber;
 import javax.management.openmbean.CompositeData;
 import javax.management.openmbean.TabularDataSupport;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.qpid.management.common.mbeans.ManagedExchange;
 import org.apache.qpid.management.common.mbeans.ManagedQueue;
 import org.apache.qpid.server.model.VirtualHost;
@@ -50,8 +53,6 @@ import org.apache.qpid.test.utils.JMXTes
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
 import org.apache.qpid.test.utils.TestBrokerConfiguration;
 import org.apache.qpid.util.FileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Tests upgrading a BDB store on broker startup.
@@ -84,7 +85,7 @@ public class BDBUpgradeTest extends Qpid
     public void setUp() throws Exception
     {
         assertNotNull("QPID_WORK must be set", QPID_WORK_ORIG);
-        Map<String, Object> virtualHostAttributes = getBrokerConfiguration().getObjectAttributes(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST);
+        Map<String, Object> virtualHostAttributes = getBrokerConfiguration().getObjectAttributes(VirtualHost.class,TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST);
         @SuppressWarnings("unchecked")
         Map<String, Object> messageStoreSettings = (Map<String, Object>) virtualHostAttributes.get(VirtualHost.MESSAGE_STORE_SETTINGS);
         _storeLocation = (String)messageStoreSettings.get(MessageStore.STORE_PATH);

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HATestClusterCreator.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HATestClusterCreator.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HATestClusterCreator.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HATestClusterCreator.java Fri Apr  4 21:06:08 2014
@@ -38,8 +38,10 @@ import java.util.concurrent.TimeUnit;
 
 import javax.jms.Connection;
 
+import com.sleepycat.je.rep.ReplicationConfig;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
+
 import org.apache.qpid.client.AMQConnection;
 import org.apache.qpid.client.AMQConnectionURL;
 import org.apache.qpid.server.model.VirtualHost;
@@ -49,8 +51,6 @@ import org.apache.qpid.test.utils.QpidBr
 import org.apache.qpid.test.utils.TestBrokerConfiguration;
 import org.apache.qpid.url.URLSyntaxException;
 
-import com.sleepycat.je.rep.ReplicationConfig;
-
 public class HATestClusterCreator
 {
     protected static final Logger LOGGER = Logger.getLogger(HATestClusterCreator.class);
@@ -117,8 +117,8 @@ public class HATestClusterCreator
 
             TestBrokerConfiguration brokerConfiguration = _testcase.getBrokerConfiguration(brokerPort);
             brokerConfiguration.addJmxManagementConfiguration();
-            brokerConfiguration.setObjectAttribute(_virtualHostName, VirtualHost.TYPE, BDBHAVirtualHostFactory.TYPE);
-            brokerConfiguration.setObjectAttribute(_virtualHostName, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings);
+            brokerConfiguration.setObjectAttribute(VirtualHost.class, _virtualHostName, VirtualHost.TYPE, BDBHAVirtualHostFactory.TYPE);
+            brokerConfiguration.setObjectAttribute(VirtualHost.class, _virtualHostName, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings);
 
             brokerPort = _testcase.getNextAvailable(bdbPort + 1);
         }
@@ -133,9 +133,9 @@ public class HATestClusterCreator
         }
         TestBrokerConfiguration config = _testcase.getBrokerConfiguration(_primaryBrokerPort);
         @SuppressWarnings("unchecked")
-        Map<String, Object> storeSetting = (Map<String, Object>) config.getObjectAttributes(_virtualHostName).get(VirtualHost.MESSAGE_STORE_SETTINGS);
+        Map<String, Object> storeSetting = (Map<String, Object>) config.getObjectAttributes(VirtualHost.class, _virtualHostName).get(VirtualHost.MESSAGE_STORE_SETTINGS);
         storeSetting.put(ReplicatedEnvironmentFacadeFactory.DESIGNATED_PRIMARY, designatedPrimary);
-        config.setObjectAttribute(_virtualHostName, VirtualHost.MESSAGE_STORE_SETTINGS, storeSetting);
+        config.setObjectAttribute(VirtualHost.class, _virtualHostName, VirtualHost.MESSAGE_STORE_SETTINGS, storeSetting);
         config.setSaved(false);
     }
 
@@ -274,7 +274,8 @@ public class HATestClusterCreator
         return new AMQConnectionURL(String.format(MANY_BROKER_URL_FORMAT, _virtualHostName, brokerList, FAILOVER_CYCLECOUNT));
     }
 
-    public AMQConnectionURL getConnectionUrlForSingleNodeWithoutRetry(final int brokerPortNumber) throws URLSyntaxException
+    public AMQConnectionURL getConnectionUrlForSingleNodeWithoutRetry(final int brokerPortNumber) throws
+                                                                                                  URLSyntaxException
     {
         return getConnectionUrlForSingleNode(brokerPortNumber, false);
     }
@@ -370,13 +371,13 @@ public class HATestClusterCreator
         TestBrokerConfiguration config = _testcase.getBrokerConfiguration(brokerPortNumberToBeMoved);
 
         @SuppressWarnings("unchecked")
-        Map<String, Object> storeSetting = (Map<String, Object>) config.getObjectAttributes(_virtualHostName).get(VirtualHost.MESSAGE_STORE_SETTINGS);
+        Map<String, Object> storeSetting = (Map<String, Object>) config.getObjectAttributes(VirtualHost.class, _virtualHostName).get(VirtualHost.MESSAGE_STORE_SETTINGS);
         String oldBdbHostPort = (String) storeSetting.get(ReplicatedEnvironmentFacadeFactory.NODE_ADDRESS);
         String[] oldHostAndPort = StringUtils.split(oldBdbHostPort, ":");
         String oldHost = oldHostAndPort[0];
         String newBdbHostPort = oldHost + ":" + newBdbPort;
         storeSetting.put(ReplicatedEnvironmentFacadeFactory.NODE_ADDRESS, newBdbHostPort);
-        config.setObjectAttribute(_virtualHostName, VirtualHost.MESSAGE_STORE_SETTINGS, storeSetting);
+        config.setObjectAttribute(VirtualHost.class, _virtualHostName, VirtualHost.MESSAGE_STORE_SETTINGS, storeSetting);
         config.setSaved(false);
     }
 

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java Fri Apr  4 21:06:08 2014
@@ -29,10 +29,12 @@ import java.util.List;
 import java.util.Properties;
 import java.util.Set;
 
+import javax.security.auth.Subject;
+
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
-import org.apache.qpid.server.configuration.ConfigurationEntryStore;
+
 import org.apache.qpid.server.configuration.BrokerConfigurationStoreCreator;
 import org.apache.qpid.server.configuration.store.ManagementModeStoreHandler;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
@@ -46,8 +48,7 @@ import org.apache.qpid.server.model.Syst
 import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.security.SecurityManager;
-
-import javax.security.auth.Subject;
+import org.apache.qpid.server.store.DurableConfigurationStore;
 
 public class Broker
 {
@@ -137,7 +138,7 @@ public class Broker
         SystemContext systemContext = new SystemContext(taskExecutor, configuredObjectFactory, _eventLogger, logRecorder, options);
 
         BrokerConfigurationStoreCreator storeCreator = new BrokerConfigurationStoreCreator();
-        ConfigurationEntryStore store = storeCreator.createStore(systemContext, storeType, options.getInitialConfigurationLocation(),
+        DurableConfigurationStore store = storeCreator.createStore(systemContext, storeType, options.getInitialConfigurationLocation(),
                                                                  options.isOverwriteConfigurationStore(), options.getConfigProperties());
 
         if (options.isManagementMode())

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java Fri Apr  4 21:06:08 2014
@@ -67,7 +67,7 @@ public class BrokerConfigurationStoreCre
      */
     public ConfigurationEntryStore createStore(SystemContext systemContext, String storeType, String initialConfigLocation, boolean overwrite, Map<String, String> configProperties)
     {
-        ConfigurationEntryStore initialStore = new MemoryConfigurationEntryStore(initialConfigLocation, null, configProperties);
+        ConfigurationEntryStore initialStore = new MemoryConfigurationEntryStore(systemContext, initialConfigLocation, null, configProperties);
         ConfigurationStoreFactory factory = _factories.get(storeType.toLowerCase());
         if (factory == null)
         {

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryImpl.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryImpl.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryImpl.java Fri Apr  4 21:06:08 2014
@@ -28,6 +28,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
+import org.apache.qpid.server.configuration.store.MemoryConfigurationEntryStore;
+
 public class ConfigurationEntryImpl implements ConfigurationEntry
 {
 
@@ -35,10 +37,10 @@ public class ConfigurationEntryImpl impl
     private final String _type;
     private final Map<String, Object> _attributes;
     private final Set<UUID> _childrenIds;
-    private final ConfigurationEntryStore _store;
+    private final MemoryConfigurationEntryStore _store;
 
     public ConfigurationEntryImpl(UUID id, String type, Map<String, Object> attributes, Set<UUID> childrenIds,
-                                  ConfigurationEntryStore store)
+                                  MemoryConfigurationEntryStore store)
     {
         super();
         _id = id;

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryStore.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryStore.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryStore.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryStore.java Fri Apr  4 21:06:08 2014
@@ -20,54 +20,12 @@
  */
 package org.apache.qpid.server.configuration;
 
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.store.ConfigurationRecoveryHandler;
-import org.apache.qpid.server.store.ConfiguredObjectRecord;
 import org.apache.qpid.server.store.DurableConfigurationStore;
-import org.apache.qpid.server.store.StoreException;
-
-import java.util.UUID;
 
 public interface ConfigurationEntryStore extends DurableConfigurationStore
 {
 
     /**
-     * Returns stored root configuration entry
-     *
-     * @return root entry
-     */
-    ConfigurationEntry getRootEntry();
-
-    /**
-     * Returns the configuration entry with a given id.
-     *
-     * @return entry with a given id or null if entry does not exists
-     */
-    ConfigurationEntry getEntry(UUID id);
-
-    /**
-     * Saves given entries in the store.
-     *
-     * @param entries entries to store
-     * @throws IllegalConfigurationException if save operation fails
-     */
-    void save(ConfigurationEntry... entries);
-
-    void create(ConfiguredObjectRecord object);
-    void update(boolean createIfNecessary, ConfiguredObjectRecord... records) throws StoreException;
-
-
-    /**
-     * Removes the entries with given IDs and all their children
-     *
-     * @param records records to remove
-     * @return IDs of removed record
-     * @throws IllegalConfigurationException if remove operation fails
-     */
-
-    UUID[] remove(ConfiguredObjectRecord... records);
-
-    /**
      * Copies the store into the given location
      *
      * @param target location to copy store into

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/BrokerStoreUpgrader.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/BrokerStoreUpgrader.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/BrokerStoreUpgrader.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/BrokerStoreUpgrader.java Fri Apr  4 21:06:08 2014
@@ -19,8 +19,17 @@ package org.apache.qpid.server.configura
  *
  */
 
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
 import org.apache.log4j.Logger;
-import org.apache.qpid.server.configuration.ConfigurationEntryStore;
+
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.configuration.store.StoreConfigurationChangeListener;
 import org.apache.qpid.server.model.Broker;
@@ -33,8 +42,6 @@ import org.apache.qpid.server.store.Dura
 import org.apache.qpid.server.store.DurableConfigurationStoreUpgrader;
 import org.apache.qpid.server.store.NonNullUpgrader;
 
-import java.util.*;
-
 public class BrokerStoreUpgrader
 {
     private static Logger LOGGER = Logger.getLogger(BrokerStoreUpgrader.class);
@@ -574,7 +581,7 @@ public class BrokerStoreUpgrader
 
 
 
-    public Broker upgrade(ConfigurationEntryStore store)
+    public Broker upgrade(DurableConfigurationStore store)
     {
         final BrokerStoreRecoveryHandler recoveryHandler = new BrokerStoreRecoveryHandler(_systemContext);
         store.openConfigurationStore(_systemContext, Collections.<String,Object>emptyMap());

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java Fri Apr  4 21:06:08 2014
@@ -20,17 +20,23 @@
  */
 package org.apache.qpid.server.configuration.store;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
 import org.apache.log4j.Logger;
+
 import org.apache.qpid.server.BrokerOptions;
-import org.apache.qpid.server.configuration.ConfigurationEntry;
-import org.apache.qpid.server.configuration.ConfigurationEntryImpl;
-import org.apache.qpid.server.configuration.ConfigurationEntryStore;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 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.ConfigurationRecoveryHandler;
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
@@ -39,9 +45,7 @@ import org.apache.qpid.server.store.Dura
 import org.apache.qpid.server.store.StoreException;
 import org.apache.qpid.server.util.MapValueConverter;
 
-import java.util.*;
-
-public class ManagementModeStoreHandler implements ConfigurationEntryStore
+public class ManagementModeStoreHandler implements DurableConfigurationStore
 {
     private static final Logger LOGGER = Logger.getLogger(ManagementModeStoreHandler.class);
 
@@ -52,50 +56,19 @@ public class ManagementModeStoreHandler 
     private static final Object MANAGEMENT_MODE_AUTH_PROVIDER = "mm-auth";
 
 
-    private final ConfigurationEntryStore _store;
-    private final Map<UUID, ConfigurationEntry> _cliEntries;
+    private final DurableConfigurationStore _store;
+    private Map<UUID, ConfiguredObjectRecord> _cliEntries;
     private final Map<UUID, Object> _quiescedEntriesOriginalState;
-    private final UUID _rootId;
     private final BrokerOptions _options;
     private ConfiguredObject<?> _parent;
+    private HashMap<UUID, ConfiguredObjectRecord> _records;
 
-    public ManagementModeStoreHandler(ConfigurationEntryStore store, BrokerOptions options)
+    public ManagementModeStoreHandler(DurableConfigurationStore store,
+                                      BrokerOptions options)
     {
-        ConfigurationEntry storeRoot = store.getRootEntry();
         _options = options;
         _store = store;
-        _rootId = storeRoot.getId();
-        _cliEntries = createPortsFromCommandLineOptions(options);
-        _quiescedEntriesOriginalState = quiesceEntries(storeRoot, options);
-    }
-
-    @Override
-    public ConfigurationEntry getRootEntry()
-    {
-        return getEntry(_rootId);
-    }
-
-    @Override
-    public ConfigurationEntry getEntry(UUID id)
-    {
-        synchronized (_store)
-        {
-            if (_cliEntries.containsKey(id))
-            {
-                return _cliEntries.get(id);
-            }
-
-            ConfigurationEntry entry = _store.getEntry(id);
-            if (_quiescedEntriesOriginalState.containsKey(id))
-            {
-                entry = createEntryWithState(entry, State.QUIESCED);
-            }
-            else if (id == _rootId)
-            {
-                entry = createRootWithCLIEntries(entry);
-            }
-            return entry;
-        }
+        _quiescedEntriesOriginalState = quiesceEntries(options);
     }
 
     @Override
@@ -104,13 +77,9 @@ public class ManagementModeStoreHandler 
     {
         _parent = parent;
         _store.openConfigurationStore(parent,storeSettings);
-    }
 
-    @Override
-    public void recoverConfigurationStore(final ConfigurationRecoveryHandler recoveryHandler) throws StoreException
-    {
 
-        final Map<UUID,ConfiguredObjectRecord> records = new HashMap<UUID, ConfiguredObjectRecord>();
+        _records = new HashMap<UUID, ConfiguredObjectRecord>();
         final ConfigurationRecoveryHandler localRecoveryHandler = new ConfigurationRecoveryHandler()
         {
             private int _version;
@@ -177,12 +146,12 @@ public class ManagementModeStoreHandler 
                     Map<String,Object> modifiedAttributes = new HashMap<String, Object>(attributes);
                     modifiedAttributes.put(ATTRIBUTE_STATE, State.QUIESCED);
                     ConfiguredObjectRecord record = new ConfiguredObjectRecordImpl(object.getId(), object.getType(), modifiedAttributes, object.getParents());
-                    records.put(record.getId(), record);
+                    _records.put(record.getId(), record);
 
                 }
                 else
                 {
-                    records.put(object.getId(), object);
+                    _records.put(object.getId(), object);
                 }
             }
 
@@ -194,22 +163,29 @@ public class ManagementModeStoreHandler 
             }
         };
 
-        ConfiguredObjectRecord parent = records.get(_parent.getId());
-        if(parent == null)
-        {
-            parent = _parent.asObjectRecord();
-        }
-        for(ConfigurationEntry entry : _cliEntries.values())
+
+
+
+        _store.recoverConfigurationStore(localRecoveryHandler);
+
+        _cliEntries = createPortsFromCommandLineOptions(_options);
+
+        for(ConfiguredObjectRecord entry : _cliEntries.values())
         {
-            records.put(entry.getId(),new ConfiguredObjectRecordImpl(entry.getId(), entry.getType(), entry.getAttributes(), Collections.singletonMap(parent.getType(), parent)));
+            _records.put(entry.getId(),entry);
         }
 
 
-        _store.recoverConfigurationStore(localRecoveryHandler);
+    }
+
+    @Override
+    public void recoverConfigurationStore(final ConfigurationRecoveryHandler recoveryHandler) throws StoreException
+    {
+
 
         recoveryHandler.beginConfigurationRecovery(this,0);
 
-        for(ConfiguredObjectRecord record : records.values())
+        for(ConfiguredObjectRecord record : _records.values())
         {
             recoveryHandler.configuredObject(record);
         }
@@ -222,26 +198,9 @@ public class ManagementModeStoreHandler 
     {
         synchronized (_store)
         {
-            Collection<ConfigurationEntry> entriesToSave = new ArrayList<ConfigurationEntry>();
-            entriesToSave.add(new ConfigurationEntryImpl(object.getId(),
-                                                         object.getType(),
-                                                         object.getAttributes(),
-                                                         Collections.<UUID>emptySet(),
-                                                         this));
-            for (ConfiguredObjectRecord parent : object.getParents().values())
-            {
-                ConfigurationEntry parentEntry = getEntry(parent.getId());
-                Set<UUID> children = new HashSet<UUID>(parentEntry.getChildrenIds());
-                children.add(object.getId());
-                ConfigurationEntry replacementEntry = new ConfigurationEntryImpl(parentEntry.getId(),
-                                                                                 parent.getType(),
-                                                                                 parent.getAttributes(),
-                                                                                 children,
-                                                                                 this);
-                entriesToSave.add(replacementEntry);
-            }
-            save(entriesToSave.toArray(new ConfigurationEntry[entriesToSave.size()]));
+            _store.create(object);
         }
+        _records.put(object.getId(), object);
     }
 
     @Override
@@ -249,77 +208,28 @@ public class ManagementModeStoreHandler 
     {
         synchronized (_store)
         {
-            Map<UUID, ConfigurationEntry> updates = new HashMap<UUID, ConfigurationEntry>();
 
+            Collection<ConfiguredObjectRecord> actualUpdates = new ArrayList<ConfiguredObjectRecord>();
 
-            for (ConfiguredObjectRecord record : records)
+            for(ConfiguredObjectRecord record : records)
             {
-                Set<UUID> currentChildren;
-
-                final ConfigurationEntry entry = getEntry(record.getId());
-
-                if (entry == null)
+                if (_cliEntries.containsKey(record.getId()))
                 {
-                    if (createIfNecessary)
-                    {
-                        currentChildren = new HashSet<UUID>();
-                    }
-                    else
-                    {
-                        throw new StoreException("Cannot update record with id "
-                                                 + record.getId()
-                                                 + " as it does not exist");
-                    }
+                    throw new IllegalConfigurationException("Cannot save configuration provided as command line argument:"
+                                                            + record);
                 }
-                else
+                else if (_quiescedEntriesOriginalState.containsKey(record.getId()))
                 {
-                    currentChildren = new HashSet<UUID>(entry.getChildrenIds());
-                }
-
-                updates.put(record.getId(),
-                            new ConfigurationEntryImpl(record.getId(),
-                                                       record.getType(),
-                                                       record.getAttributes(),
-                                                       currentChildren,
-                                                       this)
-                           );
-            }
-
-            for (ConfiguredObjectRecord record : records)
-            {
-                for (ConfiguredObjectRecord parent : record.getParents().values())
-                {
-                    ConfigurationEntry existingParentEntry = updates.get(parent.getId());
-                    if (existingParentEntry == null)
-                    {
-                        existingParentEntry = getEntry(parent.getId());
-                        if (existingParentEntry == null)
-                        {
-                            if(parent.getType().equals(SystemContext.class.getSimpleName()))
-                            {
-                                continue;
-                            }
-                            throw new StoreException("Unknown parent of type " + parent.getType() + " with id " + parent
-                                    .getId());
-                        }
-
-                        Set<UUID> children = new HashSet<UUID>(existingParentEntry.getChildrenIds());
-                        if (!children.contains(record.getId()))
-                        {
-                            children.add(record.getId());
-                            ConfigurationEntry newParentEntry = new ConfigurationEntryImpl(existingParentEntry.getId(),
-                                                                                           existingParentEntry.getType(),
-                                                                                           existingParentEntry.getAttributes(),
-                                                                                           children,
-                                                                                           this);
-                            updates.put(newParentEntry.getId(), newParentEntry);
-                        }
-                    }
+                    // save entry with the original state
+                    record = createEntryWithState(record, _quiescedEntriesOriginalState.get(record.getId()));
                 }
-
+                actualUpdates.add(record);
             }
-
-            save(updates.values().toArray(new ConfigurationEntry[updates.size()]));
+            _store.update(createIfNecessary, actualUpdates.toArray(new ConfiguredObjectRecord[actualUpdates.size()]));
+        }
+        for(ConfiguredObjectRecord record : records)
+        {
+            _records.put(record.getId(), record);
         }
     }
 
@@ -328,44 +238,6 @@ public class ManagementModeStoreHandler 
     {
     }
 
-    @Override
-    public void save(ConfigurationEntry... entries)
-    {
-        synchronized (_store)
-        {
-            ConfigurationEntry[] entriesToSave = new ConfigurationEntry[entries.length];
-
-            for (int i = 0; i < entries.length; i++)
-            {
-                ConfigurationEntry entry = entries[i];
-                UUID id = entry.getId();
-                if (_cliEntries.containsKey(id))
-                {
-                    throw new IllegalConfigurationException("Cannot save configuration provided as command line argument:"
-                            + entry);
-                }
-                else if (_quiescedEntriesOriginalState.containsKey(id))
-                {
-                    // save entry with the original state
-                    entry = createEntryWithState(entry, _quiescedEntriesOriginalState.get(id));
-                }
-                else if (_rootId.equals(id))
-                {
-                    // save root without command line entries
-                    Set<UUID> childrenIds = new HashSet<UUID>(entry.getChildrenIds());
-                    if (!_cliEntries.isEmpty())
-                    {
-                        childrenIds.removeAll(_cliEntries.keySet());
-                    }
-                    HashMap<String, Object> attributes = new HashMap<String, Object>(entry.getAttributes());
-                    entry = new ConfigurationEntryImpl(entry.getId(), entry.getType(), attributes, childrenIds, this);
-                }
-                entriesToSave[i] = entry;
-            }
-
-            _store.save(entriesToSave);
-        }
-    }
 
     @Override
     public synchronized UUID[] remove(final ConfiguredObjectRecord... records)
@@ -394,38 +266,15 @@ public class ManagementModeStoreHandler 
                     _quiescedEntriesOriginalState.remove(id);
                 }
             }
+            for(ConfiguredObjectRecord record : records)
+            {
+                _records.remove(record.getId());
+            }
             return result;
         }
     }
 
-    @Override
-    public void copyTo(String copyLocation)
-    {
-        synchronized (_store)
-        {
-            _store.copyTo(copyLocation);
-        }
-    }
-
-    @Override
-    public String getStoreLocation()
-    {
-        return _store.getStoreLocation();
-    }
-
-    @Override
-    public int getVersion()
-    {
-        return _store.getVersion();
-    }
-
-    @Override
-    public String getType()
-    {
-        return _store.getType();
-    }
-
-    private Map<UUID, ConfigurationEntry> createPortsFromCommandLineOptions(BrokerOptions options)
+    private Map<UUID, ConfiguredObjectRecord> createPortsFromCommandLineOptions(BrokerOptions options)
     {
         int managementModeRmiPortOverride = options.getManagementModeRmiPortOverride();
         if (managementModeRmiPortOverride < 0)
@@ -442,32 +291,34 @@ public class ManagementModeStoreHandler 
         {
             throw new IllegalConfigurationException("Invalid http port is specified: " + managementModeHttpPortOverride);
         }
-        Map<UUID, ConfigurationEntry> cliEntries = new HashMap<UUID, ConfigurationEntry>();
+        Map<UUID, ConfiguredObjectRecord> cliEntries = new HashMap<UUID, ConfiguredObjectRecord>();
         if (managementModeRmiPortOverride != 0)
         {
-            ConfigurationEntry entry = createCLIPortEntry(managementModeRmiPortOverride, Protocol.RMI);
+            ConfiguredObjectRecord entry = createCLIPortEntry(managementModeRmiPortOverride, Protocol.RMI);
             cliEntries.put(entry.getId(), entry);
             if (managementModeJmxPortOverride == 0)
             {
-                ConfigurationEntry connectorEntry = createCLIPortEntry(managementModeRmiPortOverride + 100, Protocol.JMX_RMI);
+                ConfiguredObjectRecord connectorEntry = createCLIPortEntry(managementModeRmiPortOverride + 100, Protocol.JMX_RMI);
                 cliEntries.put(connectorEntry.getId(), connectorEntry);
             }
         }
         if (managementModeJmxPortOverride != 0)
         {
-            ConfigurationEntry entry = createCLIPortEntry(managementModeJmxPortOverride, Protocol.JMX_RMI);
+            ConfiguredObjectRecord entry = createCLIPortEntry(managementModeJmxPortOverride, Protocol.JMX_RMI);
             cliEntries.put(entry.getId(), entry);
         }
         if (managementModeHttpPortOverride != 0)
         {
-            ConfigurationEntry entry = createCLIPortEntry(managementModeHttpPortOverride, Protocol.HTTP);
+            ConfiguredObjectRecord entry = createCLIPortEntry(managementModeHttpPortOverride, Protocol.HTTP);
             cliEntries.put(entry.getId(), entry);
         }
         return cliEntries;
     }
 
-    private ConfigurationEntry createCLIPortEntry(int port, Protocol protocol)
+    private ConfiguredObjectRecord createCLIPortEntry(int port, Protocol protocol)
     {
+        ConfiguredObjectRecord parent = findBroker();
+
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(Port.PORT, port);
         attributes.put(Port.PROTOCOLS, Collections.singleton(protocol));
@@ -476,8 +327,8 @@ public class ManagementModeStoreHandler 
         {
             attributes.put(Port.AUTHENTICATION_PROVIDER, MANAGEMENT_MODE_AUTH_PROVIDER);
         }
-        ConfigurationEntry portEntry = new ConfigurationEntryImpl(UUID.randomUUID(), PORT_TYPE, attributes,
-                Collections.<UUID> emptySet(), this);
+        ConfiguredObjectRecord portEntry = new ConfiguredObjectRecordImpl(UUID.randomUUID(), PORT_TYPE, attributes,
+                Collections.singletonMap(parent.getType(),parent));
         if (LOGGER.isDebugEnabled())
         {
             LOGGER.debug("Add management mode port configuration " + portEntry + " for port " + port + " and protocol "
@@ -486,79 +337,97 @@ public class ManagementModeStoreHandler 
         return portEntry;
     }
 
-    private ConfigurationEntry createRootWithCLIEntries(ConfigurationEntry storeRoot)
+    private ConfiguredObjectRecord findBroker()
     {
-        Set<UUID> childrenIds = new HashSet<UUID>(storeRoot.getChildrenIds());
-        if (!_cliEntries.isEmpty())
+        for(ConfiguredObjectRecord record : _records.values())
         {
-            childrenIds.addAll(_cliEntries.keySet());
+            if(record.getType().equals(Broker.class.getSimpleName()))
+            {
+                return record;
+            }
         }
-        ConfigurationEntry root = new ConfigurationEntryImpl(storeRoot.getId(), storeRoot.getType(), new HashMap<String, Object>(
-                storeRoot.getAttributes()), childrenIds, this);
-        return root;
+        return null;
     }
 
-    private Map<UUID, Object> quiesceEntries(ConfigurationEntry storeRoot, BrokerOptions options)
+
+    private Map<UUID, Object> quiesceEntries(final BrokerOptions options)
     {
-        Map<UUID, Object> quiescedEntries = new HashMap<UUID, Object>();
-        Set<UUID> childrenIds;
-        int managementModeRmiPortOverride = options.getManagementModeRmiPortOverride();
-        int managementModeJmxPortOverride = options.getManagementModeJmxPortOverride();
-        int managementModeHttpPortOverride = options.getManagementModeHttpPortOverride();
-        childrenIds = storeRoot.getChildrenIds();
-        for (UUID id : childrenIds)
+        final Map<UUID, Object> quiescedEntries = new HashMap<UUID, Object>();
+        final int managementModeRmiPortOverride = options.getManagementModeRmiPortOverride();
+        final int managementModeJmxPortOverride = options.getManagementModeJmxPortOverride();
+        final int managementModeHttpPortOverride = options.getManagementModeHttpPortOverride();
+
+        _store.recoverConfigurationStore(new ConfigurationRecoveryHandler()
         {
-            ConfigurationEntry entry = _store.getEntry(id);
-            String entryType = entry.getType();
-            Map<String, Object> attributes = entry.getAttributes();
-            boolean quiesce = false;
-            if (VIRTUAL_HOST_TYPE.equals(entryType) && options.isManagementModeQuiesceVirtualHosts())
+            @Override
+            public void beginConfigurationRecovery(final DurableConfigurationStore store, final int configVersion)
             {
-                quiesce = true;
+
             }
-            else if (PORT_TYPE.equals(entryType))
+
+            @Override
+            public void configuredObject(final ConfiguredObjectRecord entry)
             {
-                if (attributes == null)
-                {
-                    throw new IllegalConfigurationException("Port attributes are not set in " + entry);
-                }
-                Set<Protocol> protocols = getPortProtocolsAttribute(attributes);
-                if (protocols == null)
+                String entryType = entry.getType();
+                Map<String, Object> attributes = entry.getAttributes();
+                boolean quiesce = false;
+                if (VIRTUAL_HOST_TYPE.equals(entryType) && options.isManagementModeQuiesceVirtualHosts())
                 {
                     quiesce = true;
                 }
-                else
+                else if (PORT_TYPE.equals(entryType))
                 {
-                    for (Protocol protocol : protocols)
+                    if (attributes == null)
                     {
-                        switch (protocol)
+                        throw new IllegalConfigurationException("Port attributes are not set in " + entry);
+                    }
+                    Set<Protocol> protocols = getPortProtocolsAttribute(attributes);
+                    if (protocols == null)
+                    {
+                        quiesce = true;
+                    }
+                    else
+                    {
+                        for (Protocol protocol : protocols)
                         {
-                        case JMX_RMI:
-                            quiesce = managementModeJmxPortOverride > 0 || managementModeRmiPortOverride > 0;
-                            break;
-                        case RMI:
-                            quiesce = managementModeRmiPortOverride > 0;
-                            break;
-                        case HTTP:
-                            quiesce = managementModeHttpPortOverride > 0;
-                            break;
-                        default:
-                            quiesce = true;
+                            switch (protocol)
+                            {
+                                case JMX_RMI:
+                                    quiesce = managementModeJmxPortOverride > 0 || managementModeRmiPortOverride > 0;
+                                    break;
+                                case RMI:
+                                    quiesce = managementModeRmiPortOverride > 0;
+                                    break;
+                                case HTTP:
+                                    quiesce = managementModeHttpPortOverride > 0;
+                                    break;
+                                default:
+                                    quiesce = true;
+                            }
                         }
                     }
                 }
-            }
-            if (quiesce)
-            {
-                if (LOGGER.isDebugEnabled())
+                if (quiesce)
                 {
-                    LOGGER.debug("Management mode quiescing entry " + entry);
+                    if (LOGGER.isDebugEnabled())
+                    {
+                        LOGGER.debug("Management mode quiescing entry " + entry);
+                    }
+
+                    // save original state
+                    quiescedEntries.put(entry.getId(), attributes.get(ATTRIBUTE_STATE));
                 }
+            }
+
 
-                // save original state
-                quiescedEntries.put(entry.getId(), attributes.get(ATTRIBUTE_STATE));
+            @Override
+            public int completeConfigurationRecovery()
+            {
+                return 0;
             }
-        }
+        });
+
+
         return quiescedEntries;
     }
 
@@ -572,7 +441,7 @@ public class ManagementModeStoreHandler 
         return MapValueConverter.getEnumSetAttribute(Port.PROTOCOLS, attributes, Protocol.class);
     }
 
-    private ConfigurationEntry createEntryWithState(ConfigurationEntry entry, Object state)
+    private ConfiguredObjectRecord createEntryWithState(ConfiguredObjectRecord entry, Object state)
     {
         Map<String, Object> attributes = new HashMap<String, Object>(entry.getAttributes());
         if (state == null)
@@ -583,13 +452,7 @@ public class ManagementModeStoreHandler 
         {
             attributes.put(ATTRIBUTE_STATE, state);
         }
-        Set<UUID> originalChildren = entry.getChildrenIds();
-        Set<UUID> children = null;
-        if (originalChildren != null)
-        {
-            children = new HashSet<UUID>(originalChildren);
-        }
-        return new ConfigurationEntryImpl(entry.getId(), entry.getType(), attributes, children, entry.getStore());
+        return new ConfiguredObjectRecordImpl(entry.getId(), entry.getType(), attributes, entry.getParents());
     }
 
 }

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java Fri Apr  4 21:06:08 2014
@@ -20,6 +20,35 @@
  */
 package org.apache.qpid.server.configuration.store;
 
+import static org.apache.qpid.server.configuration.ConfigurationEntry.ATTRIBUTE_NAME;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.UUID;
+
+import org.codehaus.jackson.JsonGenerationException;
+import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.JsonParser;
+import org.codehaus.jackson.JsonProcessingException;
+import org.codehaus.jackson.map.JsonMappingException;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
+import org.codehaus.jackson.node.ArrayNode;
+
 import org.apache.qpid.server.configuration.ConfigurationEntry;
 import org.apache.qpid.server.configuration.ConfigurationEntryImpl;
 import org.apache.qpid.server.configuration.ConfigurationEntryStore;
@@ -31,26 +60,10 @@ import org.apache.qpid.server.model.Syst
 import org.apache.qpid.server.model.UUIDGenerator;
 import org.apache.qpid.server.store.ConfigurationRecoveryHandler;
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
+import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.store.StoreException;
 import org.apache.qpid.util.Strings;
 import org.apache.qpid.util.Strings.ChainedResolver;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
-import org.codehaus.jackson.node.ArrayNode;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.*;
-
-import static org.apache.qpid.server.configuration.ConfigurationEntry.ATTRIBUTE_NAME;
 
 public class MemoryConfigurationEntryStore implements ConfigurationEntryStore
 {
@@ -100,22 +113,48 @@ public class MemoryConfigurationEntrySto
         }
     }
 
-    public MemoryConfigurationEntryStore(String initialStoreLocation, ConfigurationEntryStore initialStore, Map<String, String> configProperties)
+    public MemoryConfigurationEntryStore(ConfiguredObject parentObject, String initialStoreLocation, ConfigurationEntryStore initialStore, Map<String, String> configProperties)
     {
         this(configProperties);
         if (initialStore == null && (initialStoreLocation == null || "".equals(initialStoreLocation) ))
         {
             throw new IllegalConfigurationException("Cannot instantiate the memory broker store as neither initial store nor initial store location is provided");
         }
-
+        _parent = parentObject;
         if (initialStore != null)
         {
             if (initialStore instanceof MemoryConfigurationEntryStore)
             {
                 _storeLocation = initialStore.getStoreLocation();
             }
-            _rootId = initialStore.getRootEntry().getId();
-            copyEntry(_rootId, initialStore, _entries);
+            final Collection<ConfiguredObjectRecord> records = new ArrayList<ConfiguredObjectRecord>();
+            final ConfigurationRecoveryHandler replayHandler = new ConfigurationRecoveryHandler()
+            {
+                private int _configVersion;
+                @Override
+                public void beginConfigurationRecovery(final DurableConfigurationStore store, final int configVersion)
+                {
+                    _configVersion = configVersion;
+                }
+
+                @Override
+                public void configuredObject(ConfiguredObjectRecord record)
+                {
+                    records.add(record);
+                }
+
+                @Override
+                public int completeConfigurationRecovery()
+                {
+                    return _configVersion;
+                }
+            };
+
+            initialStore.openConfigurationStore(parentObject, Collections.<String,Object>emptyMap());
+            initialStore.recoverConfigurationStore(replayHandler);
+
+            update(true, records.toArray(new ConfiguredObjectRecord[records.size()]));
+
         }
         else
         {
@@ -165,19 +204,16 @@ public class MemoryConfigurationEntrySto
         return removedIds.toArray(new UUID[removedIds.size()]);
     }
 
-    @Override
     public synchronized void save(ConfigurationEntry... entries)
     {
         replaceEntries(entries);
     }
 
-    @Override
     public ConfigurationEntry getRootEntry()
     {
         return getEntry(_rootId);
     }
 
-    @Override
     public synchronized ConfigurationEntry getEntry(UUID id)
     {
         return _entries.get(id);
@@ -520,31 +556,6 @@ public class MemoryConfigurationEntrySto
         }
     }
 
-    protected void copyEntry(UUID entryId, ConfigurationEntryStore initialStore, Map<UUID,ConfigurationEntry> entries)
-    {
-        ConfigurationEntry entry = initialStore.getEntry(entryId);
-        if (entry != null)
-        {
-            if (entries.containsKey(entryId))
-            {
-                throw new IllegalConfigurationException("Duplicate id is found: " + entryId
-                        + "! The following configuration entries have the same id: " + entries.get(entryId) + ", " + entry);
-            }
-
-            Set<UUID> children = entry.getChildrenIds();
-            Set<UUID> childrenCopy = children == null? null : new HashSet<UUID>(children);
-            ConfigurationEntry copy = new ConfigurationEntryImpl(entryId, entry.getType(), new HashMap<String, Object>(entry.getAttributes()), childrenCopy, this);
-            entries.put(entryId, copy);
-            if (children != null)
-            {
-                for (UUID uuid : children)
-                {
-                    copyEntry(uuid, initialStore, entries);
-                }
-            }
-        }
-    }
-
     private void loadFromJson(String json)
     {
         ByteArrayInputStream bais = null;

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java Fri Apr  4 21:06:08 2014
@@ -32,7 +32,7 @@ public class MemoryConfigurationStoreFac
     @Override
     public ConfigurationEntryStore createStore(SystemContext systemContext, ConfigurationEntryStore initialStore, boolean overwrite, Map<String, String> configProperties)
     {
-        return new MemoryConfigurationEntryStore(null, initialStore, configProperties);
+        return new MemoryConfigurationEntryStore(systemContext, null, initialStore, configProperties);
     }
 
     @Override

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java Fri Apr  4 21:06:08 2014
@@ -24,15 +24,17 @@ import org.apache.log4j.Logger;
 import org.apache.qpid.common.QpidProperties;
 import org.apache.qpid.server.BrokerOptions;
 import org.apache.qpid.server.configuration.BrokerProperties;
-import org.apache.qpid.server.configuration.ConfigurationEntryStore;
 import org.apache.qpid.server.configuration.startup.BrokerStoreUpgrader;
-import org.apache.qpid.server.logging.*;
+import org.apache.qpid.server.logging.CompositeStartupMessageLogger;
+import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.Log4jMessageLogger;
+import org.apache.qpid.server.logging.MessageLogger;
+import org.apache.qpid.server.logging.SystemOutMessageLogger;
 import org.apache.qpid.server.logging.messages.BrokerMessages;
 import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.configuration.updater.TaskExecutor;
 import org.apache.qpid.server.model.SystemContext;
+import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.util.SystemUtils;
 
 
@@ -50,9 +52,9 @@ public class ApplicationRegistry impleme
 
     private Broker _broker;
 
-    private ConfigurationEntryStore _store;
+    private DurableConfigurationStore _store;
 
-    public ApplicationRegistry(ConfigurationEntryStore store, SystemContext systemContext)
+    public ApplicationRegistry(DurableConfigurationStore store, SystemContext systemContext)
     {
         _store = store;
         _systemContext = systemContext;

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java Fri Apr  4 21:06:08 2014
@@ -20,25 +20,33 @@
  */
 package org.apache.qpid.server.configuration.store;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
 import org.apache.qpid.server.configuration.ConfigurationEntry;
 import org.apache.qpid.server.configuration.ConfigurationEntryImpl;
-import org.apache.qpid.server.configuration.ConfigurationEntryStore;
-import org.apache.qpid.server.model.*;
+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.GroupProvider;
+import org.apache.qpid.server.model.KeyStore;
+import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.PreferencesProvider;
+import org.apache.qpid.server.model.Transport;
+import org.apache.qpid.server.model.TrustStore;
+import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.model.adapter.FileSystemPreferencesProvider;
 import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManager;
 import org.apache.qpid.server.security.auth.manager.ExternalAuthenticationManager;
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
 import org.apache.qpid.test.utils.QpidTestCase;
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
 public abstract class ConfigurationEntryStoreTestCase extends QpidTestCase
 {
-    private ConfigurationEntryStore _store;
+    private MemoryConfigurationEntryStore _store;
 
     private UUID _brokerId;
     private UUID _virtualHostId;
@@ -87,7 +95,7 @@ public abstract class ConfigurationEntry
 
     // ??? perhaps it should not be abstract
 
-    protected abstract ConfigurationEntryStore createStore(UUID brokerId, Map<String, Object> brokerAttributes) throws Exception;
+    protected abstract MemoryConfigurationEntryStore createStore(UUID brokerId, Map<String, Object> brokerAttributes) throws Exception;
 
     protected abstract void addConfiguration(UUID id, String type, Map<String, Object> attributes, UUID parentId);
 
@@ -96,7 +104,7 @@ public abstract class ConfigurationEntry
         addConfiguration(id, type, attributes, _brokerId);
     }
 
-    protected ConfigurationEntryStore getStore()
+    protected MemoryConfigurationEntryStore getStore()
     {
         return _store;
     }

Modified: qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java?rev=1584910&r1=1584909&r2=1584910&view=diff
==============================================================================
--- qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java (original)
+++ qpid/branches/java-broker-config-store-changes/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java Fri Apr  4 21:06:08 2014
@@ -20,10 +20,27 @@
  */
 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;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+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.ConfigurationEntryImpl;
-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;
@@ -35,23 +52,6 @@ import org.apache.qpid.server.model.Syst
 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;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 
 public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTestCase
@@ -138,7 +138,7 @@ 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);
@@ -151,7 +151,7 @@ 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}");



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