From 39249098b7b374c5e45d7139aa8b9df3aebad385 Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Fri, 6 Jun 2014 15:43:08 +0000 Subject: QPID-5800: [Java Broker} Refactor MessageStore implementations extracting a MessageStoreProvider interface. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1600931 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/store/jdbc/JDBCMessageStore.java | 90 +++++++++++++++++++++- .../server/store/jdbc/JDBCMessageStoreFactory.java | 2 +- .../server/store/jdbc/JDBCMessageStoreTest.java | 2 +- 3 files changed, 90 insertions(+), 4 deletions(-) (limited to 'qpid/java/broker-plugins/jdbc-store/src') diff --git a/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java b/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java index d70f2a3d78..ddafa83bb3 100644 --- a/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java +++ b/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java @@ -31,12 +31,22 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; import org.apache.log4j.Logger; + +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.plugin.JDBCConnectionProviderFactory; import org.apache.qpid.server.store.AbstractJDBCMessageStore; +import org.apache.qpid.server.store.Event; +import org.apache.qpid.server.store.EventListener; import org.apache.qpid.server.store.MessageStore; +import org.apache.qpid.server.store.MessageStoreProvider; +import org.apache.qpid.server.store.StorableMessageMetaData; import org.apache.qpid.server.store.StoreException; import org.apache.qpid.server.store.StoreFuture; +import org.apache.qpid.server.store.StoredMessage; import org.apache.qpid.server.store.Transaction; +import org.apache.qpid.server.store.handler.DistributedTransactionHandler; +import org.apache.qpid.server.store.handler.MessageHandler; +import org.apache.qpid.server.store.handler.MessageInstanceHandler; import org.apache.qpid.server.util.MapValueConverter; /** @@ -44,7 +54,7 @@ import org.apache.qpid.server.util.MapValueConverter; * mechanism. * */ -public class JDBCMessageStore extends AbstractJDBCMessageStore implements MessageStore +public class JDBCMessageStore extends AbstractJDBCMessageStore implements MessageStoreProvider { private static final Logger _logger = Logger.getLogger(JDBCMessageStore.class); @@ -60,6 +70,7 @@ public class JDBCMessageStore extends AbstractJDBCMessageStore implements Messag protected String _connectionURL; private ConnectionProvider _connectionProvider; + private final MessageStore _messageStoreFacade = new MessageStoreWrapper(); private static class JDBCDetails { @@ -331,7 +342,6 @@ public class JDBCMessageStore extends AbstractJDBCMessageStore implements Messag { } - @Override public String getStoreLocation() { return _connectionURL; @@ -428,4 +438,80 @@ public class JDBCMessageStore extends AbstractJDBCMessageStore implements Messag } } + @Override + public MessageStore getMessageStore() + { + return _messageStoreFacade; + } + + private class MessageStoreWrapper implements MessageStore + { + + @Override + public void openMessageStore(final ConfiguredObject parent, final Map messageStoreSettings) + { + JDBCMessageStore.this.openMessageStore(parent, messageStoreSettings); + } + + @Override + public StoredMessage addMessage(final T metaData) + { + return JDBCMessageStore.this.addMessage(metaData); + } + + @Override + public boolean isPersistent() + { + return JDBCMessageStore.this.isPersistent(); + } + + @Override + public Transaction newTransaction() + { + return JDBCMessageStore.this.newTransaction(); + } + + @Override + public void closeMessageStore() + { + JDBCMessageStore.this.closeMessageStore(); + } + + @Override + public void addEventListener(final EventListener eventListener, final Event... events) + { + JDBCMessageStore.this.addEventListener(eventListener, events); + } + + @Override + public String getStoreLocation() + { + return JDBCMessageStore.this.getStoreLocation(); + } + + @Override + public void onDelete() + { + JDBCMessageStore.this.onDelete(); + } + + @Override + public void visitMessages(final MessageHandler handler) throws StoreException + { + JDBCMessageStore.this.visitMessages(handler); + } + + @Override + public void visitMessageInstances(final MessageInstanceHandler handler) throws StoreException + { + JDBCMessageStore.this.visitMessageInstances(handler); + } + + @Override + public void visitDistributedTransactions(final DistributedTransactionHandler handler) throws StoreException + { + JDBCMessageStore.this.visitDistributedTransactions(handler); + } + } + } diff --git a/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java b/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java index e1db859a98..ab7ac6c671 100644 --- a/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java +++ b/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java @@ -42,7 +42,7 @@ public class JDBCMessageStoreFactory implements MessageStoreFactory, DurableConf @Override public MessageStore createMessageStore() { - return new JDBCMessageStore(); + return (new JDBCMessageStore()).getMessageStore(); } @Override diff --git a/qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java b/qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java index 2322fa7102..1f03b7f75f 100644 --- a/qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java +++ b/qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java @@ -73,7 +73,7 @@ public class JDBCMessageStoreTest extends MessageStoreTestCase @Override protected MessageStore createMessageStore() { - return new JDBCMessageStore(); + return (new JDBCMessageStore()).getMessageStore(); } private void assertTablesExist(Set expectedTables, boolean exists) throws SQLException -- cgit v1.2.1