summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/jdbc-store
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2014-03-25 10:07:21 +0000
committerKeith Wall <kwall@apache.org>2014-03-25 10:07:21 +0000
commitfcc3f654b60b7dd2180afe73e8809545725b41af (patch)
treeef5f631412fdbfd5a6ff4232782e90692e3767c1 /qpid/java/broker-plugins/jdbc-store
parentb0e9d446fd5edc23267e2aa924a703749bdb95df (diff)
downloadqpid-python-fcc3f654b60b7dd2180afe73e8809545725b41af.tar.gz
Introduction of separate lifecycle methods on stores for open/close/recover.
Change Upgraders responsibility to create the amqp standard exchanges when upgrading from earlier store versions. git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-broker-bdb-ha2@1581288 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/jdbc-store')
-rw-r--r--qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java27
-rw-r--r--qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java13
2 files changed, 20 insertions, 20 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 2c2b701c61..55c8d3ef79 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,7 +31,6 @@ import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
import org.apache.log4j.Logger;
-import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.plugin.JDBCConnectionProviderFactory;
import org.apache.qpid.server.store.AbstractJDBCMessageStore;
import org.apache.qpid.server.store.MessageStore;
@@ -259,18 +258,24 @@ public class JDBCMessageStore extends AbstractJDBCMessageStore implements Messag
@Override
protected void doClose()
{
- while(!_transactions.isEmpty())
- {
- RecordedJDBCTransaction txn = _transactions.get(0);
- txn.abortTran();
- }
try
{
- _connectionProvider.close();
+ while(!_transactions.isEmpty())
+ {
+ RecordedJDBCTransaction txn = _transactions.get(0);
+ txn.abortTran();
+ }
}
- catch (SQLException e)
+ finally
{
- throw new StoreException("Unable to close connection provider ", e);
+ try
+ {
+ _connectionProvider.close();
+ }
+ catch (SQLException e)
+ {
+ throw new StoreException("Unable to close connection provider ", e);
+ }
}
}
@@ -281,11 +286,9 @@ public class JDBCMessageStore extends AbstractJDBCMessageStore implements Messag
}
- protected void implementationSpecificConfiguration(String name,
- VirtualHost virtualHost)
+ protected void implementationSpecificConfiguration(String name, Map<String, Object> storeSettings)
throws ClassNotFoundException, SQLException
{
- Map<String, Object> storeSettings = isConfigStoreOnly() ? virtualHost.getConfigurationStoreSettings() : virtualHost.getMessageStoreSettings();
String connectionURL = String.valueOf(storeSettings.get(CONNECTION_URL));
Object poolAttribute = storeSettings.get(CONNECTION_POOL);
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 dc6bb0158d..2322fa7102 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
@@ -20,8 +20,6 @@
*/
package org.apache.qpid.server.store.jdbc;
-import static org.mockito.Mockito.when;
-
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
@@ -32,7 +30,6 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.store.MessageStore;
import org.apache.qpid.server.store.MessageStoreTestCase;
@@ -55,21 +52,21 @@ public class JDBCMessageStoreTest extends MessageStoreTestCase
public void testOnDelete() throws Exception
{
- String[] expectedTables = JDBCMessageStore.ALL_TABLES;
+ Set<String> expectedTables = JDBCMessageStore.MESSAGE_STORE_TABLE_NAMES;
assertTablesExist(expectedTables, true);
- getStore().close();
+ getStore().closeMessageStore();
assertTablesExist(expectedTables, true);
getStore().onDelete();
assertTablesExist(expectedTables, false);
}
@Override
- protected void setUpStoreConfiguration(VirtualHost virtualHost) throws Exception
+ protected Map<String, Object> getStoreSettings()
{
_connectionURL = "jdbc:derby:memory:/" + getTestName() + ";create=true";
Map<String, Object> messageStoreSettings = new HashMap<String, Object>();
messageStoreSettings.put(JDBCMessageStore.CONNECTION_URL, _connectionURL);
- when(virtualHost.getMessageStoreSettings()).thenReturn(messageStoreSettings);
+ return messageStoreSettings;
}
@@ -79,7 +76,7 @@ public class JDBCMessageStoreTest extends MessageStoreTestCase
return new JDBCMessageStore();
}
- private void assertTablesExist(String[] expectedTables, boolean exists) throws SQLException
+ private void assertTablesExist(Set<String> expectedTables, boolean exists) throws SQLException
{
Set<String> existingTables = getTableNames();
for (String tableName : expectedTables)