diff options
| author | Keith Wall <kwall@apache.org> | 2014-06-06 15:43:08 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2014-06-06 15:43:08 +0000 |
| commit | 39249098b7b374c5e45d7139aa8b9df3aebad385 (patch) | |
| tree | ab13b41b26d2036f5765e3a95b8692fe3903ce54 /qpid/java/broker-plugins/jdbc-store | |
| parent | 53fd008b70676ce1382bec414bcd0d86299a4ced (diff) | |
| download | qpid-python-39249098b7b374c5e45d7139aa8b9df3aebad385.tar.gz | |
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
Diffstat (limited to 'qpid/java/broker-plugins/jdbc-store')
3 files changed, 90 insertions, 4 deletions
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<String, Object> messageStoreSettings) + { + JDBCMessageStore.this.openMessageStore(parent, messageStoreSettings); + } + + @Override + public <T extends StorableMessageMetaData> StoredMessage<T> 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<String> expectedTables, boolean exists) throws SQLException |
