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