From 5015aea005287d8f6fc17cdd5147e03394a58f5b Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Fri, 13 Jun 2014 16:52:33 +0000 Subject: QPID-5802: [Java Broker] Refactor VH implementations to avoid duplicated message store/message store subject code. This addresses review comments from Alex Rudyy. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1602475 13f79535-47bb-0310-9956-ffa450edef68 --- .../berkeleydb/BDBHAVirtualHostImpl.java | 25 ++-------------- .../virtualhost/berkeleydb/BDBVirtualHost.java | 22 ++------------- .../server/virtualhost/AbstractVirtualHost.java | 33 +++++++++++++--------- .../virtualhost/ProvidedStoreVirtualHost.java | 23 ++------------- .../qpid/server/virtualhost/MockVirtualHost.java | 6 ---- .../server/virtualhost/TestMemoryVirtualHost.java | 21 ++------------ .../server/virtualhost/derby/DerbyVirtualHost.java | 21 ++------------ .../server/virtualhost/jdbc/JDBCVirtualHost.java | 22 ++------------- .../virtualhost/memory/MemoryVirtualHost.java | 22 ++------------- 9 files changed, 35 insertions(+), 160 deletions(-) diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHostImpl.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHostImpl.java index f66d157246..6ba0a4dd39 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHostImpl.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHostImpl.java @@ -23,13 +23,11 @@ package org.apache.qpid.server.virtualhost.berkeleydb; import java.util.Map; import java.util.Set; -import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.ManagedAttributeField; import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.VirtualHostNode; -import org.apache.qpid.server.store.DurableConfigurationStore; import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.berkeleydb.BDBConfigurationStore; import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade; @@ -43,7 +41,6 @@ public class BDBHAVirtualHostImpl extends AbstractVirtualHost { public static final String VIRTUAL_HOST_TYPE = "BDB"; - private MessageStore _messageStore; - private MessageStoreLogSubject _messageStoreLogSubject; @ManagedObjectFactoryConstructor public BDBVirtualHost(final Map attributes, @@ -46,23 +43,8 @@ public class BDBVirtualHost extends AbstractVirtualHost @Override - protected void initialiseStorage() + protected MessageStore createMessageStore() { - _messageStore = new BDBConfigurationStore().getMessageStore(); - - _messageStoreLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); - - } - - @Override - protected MessageStoreLogSubject getMessageStoreLogSubject() - { - return _messageStoreLogSubject; - } - - @Override - public MessageStore getMessageStore() - { - return _messageStore; + return new BDBConfigurationStore().getMessageStore(); } } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java index db749caf88..9ef1fd889a 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java @@ -127,6 +127,8 @@ public abstract class AbstractVirtualHost> exte private final AtomicBoolean _deleted = new AtomicBoolean(); private final VirtualHostNode _virtualHostNode; + private MessageStoreLogSubject _messageStoreLogSubject; + @ManagedAttributeField private Map _messageStoreSettings; @@ -153,6 +155,8 @@ public abstract class AbstractVirtualHost> exte private MessageDestination _defaultDestination; + private MessageStore _messageStore; + public AbstractVirtualHost(final Map attributes, VirtualHostNode virtualHostNode) { super(parentsMap(virtualHostNode), attributes); @@ -205,6 +209,12 @@ public abstract class AbstractVirtualHost> exte } } + @Override + public MessageStore getMessageStore() + { + return _messageStore; + } + @Override protected void onOpen() { @@ -212,18 +222,12 @@ public abstract class AbstractVirtualHost> exte registerSystemNodes(); - Subject.doAs(SecurityManager.getSubjectWithAddedSystemRights(), new PrivilegedAction() - { - @Override - public Object run() - { - initialiseStorage(); - return null; - } - }); + _messageStore = createMessageStore(); - getMessageStore().addEventListener(this, Event.PERSISTENT_MESSAGE_SIZE_OVERFULL); - getMessageStore().addEventListener(this, Event.PERSISTENT_MESSAGE_SIZE_UNDERFULL); + _messageStoreLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); + + _messageStore.addEventListener(this, Event.PERSISTENT_MESSAGE_SIZE_OVERFULL); + _messageStore.addEventListener(this, Event.PERSISTENT_MESSAGE_SIZE_UNDERFULL); synchronized(_aliases) @@ -259,7 +263,7 @@ public abstract class AbstractVirtualHost> exte } } - abstract protected void initialiseStorage(); + protected abstract MessageStore createMessageStore(); protected boolean isStoreEmpty() { @@ -295,7 +299,10 @@ public abstract class AbstractVirtualHost> exte }); } - abstract protected MessageStoreLogSubject getMessageStoreLogSubject(); + protected MessageStoreLogSubject getMessageStoreLogSubject() + { + return _messageStoreLogSubject; + } public IConnectionRegistry getConnectionRegistry() { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/ProvidedStoreVirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/ProvidedStoreVirtualHost.java index ac8d6c34fd..347ef820d3 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/ProvidedStoreVirtualHost.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/ProvidedStoreVirtualHost.java @@ -23,7 +23,6 @@ package org.apache.qpid.server.virtualhost; import java.util.Map; import org.apache.qpid.server.configuration.IllegalConfigurationException; -import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject; import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.VirtualHostNode; @@ -35,8 +34,6 @@ import org.apache.qpid.server.store.MessageStoreProvider; public class ProvidedStoreVirtualHost extends AbstractVirtualHost { public static final String VIRTUAL_HOST_TYPE = "ProvidedStore"; - private MessageStore _messageStore; - private MessageStoreLogSubject _messageStoreLogSubject; @ManagedObjectFactoryConstructor public ProvidedStoreVirtualHost(final Map attributes, @@ -62,26 +59,12 @@ public class ProvidedStoreVirtualHost extends AbstractVirtualHost virtualHostNode = getParent(VirtualHostNode.class); - MessageStoreProvider messageStoreProvider = (MessageStoreProvider) virtualHostNode.getConfigurationStore(); - _messageStore = messageStoreProvider.getMessageStore(); - - _messageStoreLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); - + return messageStoreProvider.getMessageStore(); } +} - @Override - protected MessageStoreLogSubject getMessageStoreLogSubject() - { - return _messageStoreLogSubject; - } - @Override - public MessageStore getMessageStore() - { - return _messageStore; - } -} diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java index 64c2cdbd95..be4d7ae49d 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java @@ -44,7 +44,6 @@ import org.apache.qpid.server.model.VirtualHostAlias; import org.apache.qpid.server.protocol.LinkRegistry; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.security.SecurityManager; -import org.apache.qpid.server.security.auth.manager.AuthenticationManager; import org.apache.qpid.server.stats.StatisticsCounter; import org.apache.qpid.server.store.ConfiguredObjectRecord; import org.apache.qpid.server.store.DurableConfigurationStore; @@ -65,11 +64,6 @@ public class MockVirtualHost implements VirtualHostImpl { public static final String VIRTUAL_HOST_TYPE = "TestMemory"; - private MessageStore _messageStore; - private MessageStoreLogSubject _messageStoreLogSubject; @ManagedObjectFactoryConstructor public TestMemoryVirtualHost(final Map attributes, @@ -45,23 +42,9 @@ public class TestMemoryVirtualHost extends AbstractVirtualHost { public static final String VIRTUAL_HOST_TYPE = "DERBY"; - private MessageStore _messageStore; - private MessageStoreLogSubject _messageStoreLogSubject; @ManagedObjectFactoryConstructor public DerbyVirtualHost(final Map attributes, @@ -46,23 +43,9 @@ public class DerbyVirtualHost extends AbstractVirtualHost @Override - protected void initialiseStorage() + protected MessageStore createMessageStore() { - _messageStore = new DerbyMessageStore().getMessageStore(); - - _messageStoreLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); - + return new DerbyMessageStore().getMessageStore(); } - @Override - protected MessageStoreLogSubject getMessageStoreLogSubject() - { - return _messageStoreLogSubject; - } - - @Override - public MessageStore getMessageStore() - { - return _messageStore; - } } diff --git a/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java b/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java index 8acf474321..1dd39a8696 100644 --- a/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java +++ b/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java @@ -22,7 +22,6 @@ package org.apache.qpid.server.virtualhost.jdbc; import java.util.Map; -import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject; import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.VirtualHostNode; @@ -34,8 +33,6 @@ import org.apache.qpid.server.virtualhost.AbstractVirtualHost; public class JDBCVirtualHost extends AbstractVirtualHost { public static final String VIRTUAL_HOST_TYPE = "JDBC"; - private MessageStore _messageStore; - private MessageStoreLogSubject _messageStoreLogSubject; @ManagedObjectFactoryConstructor public JDBCVirtualHost(final Map attributes, @@ -46,23 +43,8 @@ public class JDBCVirtualHost extends AbstractVirtualHost @Override - protected void initialiseStorage() + protected MessageStore createMessageStore() { - _messageStore = new JDBCMessageStore().getMessageStore(); - - _messageStoreLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); - - } - - @Override - protected MessageStoreLogSubject getMessageStoreLogSubject() - { - return _messageStoreLogSubject; - } - - @Override - public MessageStore getMessageStore() - { - return _messageStore; + return new JDBCMessageStore().getMessageStore(); } } diff --git a/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhost/memory/MemoryVirtualHost.java b/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhost/memory/MemoryVirtualHost.java index ebd32d79a7..5c86f734d0 100644 --- a/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhost/memory/MemoryVirtualHost.java +++ b/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhost/memory/MemoryVirtualHost.java @@ -22,7 +22,6 @@ package org.apache.qpid.server.virtualhost.memory; import java.util.Map; -import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject; import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.VirtualHostNode; @@ -34,8 +33,6 @@ import org.apache.qpid.server.virtualhost.AbstractVirtualHost; public class MemoryVirtualHost extends AbstractVirtualHost { public static final String VIRTUAL_HOST_TYPE = "Memory"; - private MessageStore _messageStore; - private MessageStoreLogSubject _messageStoreLogSubject; @ManagedObjectFactoryConstructor public MemoryVirtualHost(final Map attributes, @@ -46,23 +43,8 @@ public class MemoryVirtualHost extends AbstractVirtualHost @Override - protected void initialiseStorage() + protected MessageStore createMessageStore() { - _messageStore = new MemoryMessageStore(); - - _messageStoreLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); - - } - - @Override - protected MessageStoreLogSubject getMessageStoreLogSubject() - { - return _messageStoreLogSubject; - } - - @Override - public MessageStore getMessageStore() - { - return _messageStore; + return new MemoryMessageStore(); } } -- cgit v1.2.1