diff options
Diffstat (limited to 'qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java')
-rw-r--r-- | qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java | 65 |
1 files changed, 27 insertions, 38 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java index 6b063f5c23..49e5e700c4 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java @@ -40,7 +40,6 @@ import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.ContentHeaderBody; import org.apache.qpid.framing.FieldTable; import org.apache.qpid.framing.abstraction.MessagePublishInfo; -import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.message.MessageMetaData; import org.apache.qpid.server.store.StorableMessageMetaData; import org.apache.qpid.server.store.berkeleydb.AMQShortStringEncoding; @@ -72,41 +71,31 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade private static final String OLD_CONTENT_DB_NAME = "messageContentDb_v4"; private static final String NEW_CONTENT_DB_NAME = "messageContentDb_v5"; - private static final String[] OLD_DATABASE_NAMES = new String[] { EXCHANGE_DB_NAME, OLD_QUEUE_DB_NAME, - OLD_BINDINGS_DB_NAME, OLD_DELIVERY_DB, OLD_METADATA_DB_NAME, OLD_CONTENT_DB_NAME, "bridges_v4", "links_v4", - "xids_v4" }; - private static final String[] NEW_DATABASE_NAMES = new String[] { "exchangeDb_v5", NEW_QUEUE_DB_NAME, - NEW_BINDINGS_DB_NAME, NEW_DELIVERY_DB, NEW_METADATA_DB_NAME, NEW_CONTENT_DB_NAME, "bridges_v5", "links_v5", - "xids_v5" }; - private static final byte COLON = (byte) ':'; private static final Logger _logger = Logger.getLogger(UpgradeFrom4To5.class); - public void performUpgrade(final LogSubject logSubject, final Environment environment, - final UpgradeInteractionHandler handler) throws DatabaseException, AMQStoreException + public void performUpgrade(final Environment environment, final UpgradeInteractionHandler handler, String virtualHostName) throws DatabaseException, AMQStoreException { - _logger.info("Starting store upgrade from version 4"); Transaction transaction = null; try { - reportStarting(environment, OLD_DATABASE_NAMES, USER_FRIENDLY_NAMES); + reportStarting(environment, 4); transaction = environment.beginTransaction(null, null); // find all queues which are bound to a topic exchange and which have a colon in their name - final List<AMQShortString> potentialDurableSubs = findPotentialDurableSubscriptions(logSubject, environment, - transaction); - - Set<String> existingQueues = upgradeQueues(logSubject, environment, handler, potentialDurableSubs, transaction); - upgradeQueueBindings(logSubject, environment, handler, potentialDurableSubs, transaction); - Set<Long> messagesToDiscard = upgradeDelivery(logSubject, environment, existingQueues, handler, transaction); - upgradeContent(logSubject, environment, handler, messagesToDiscard, transaction); - upgradeMetaData(logSubject, environment, handler, messagesToDiscard, transaction); - renameRemainingDatabases(logSubject, environment, handler, transaction); + final List<AMQShortString> potentialDurableSubs = findPotentialDurableSubscriptions(environment, transaction); + + Set<String> existingQueues = upgradeQueues(environment, handler, potentialDurableSubs, transaction); + upgradeQueueBindings(environment, handler, potentialDurableSubs, transaction); + Set<Long> messagesToDiscard = upgradeDelivery(environment, existingQueues, handler, transaction); + upgradeContent(environment, handler, messagesToDiscard, transaction); + upgradeMetaData(environment, handler, messagesToDiscard, transaction); + renameRemainingDatabases(environment, handler, transaction); transaction.commit(); - reportFinished(environment, NEW_DATABASE_NAMES, USER_FRIENDLY_NAMES); + reportFinished(environment, 5); } catch (Exception e) @@ -127,8 +116,8 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade } } - private void upgradeQueueBindings(LogSubject logSubject, Environment environment, UpgradeInteractionHandler handler, - final List<AMQShortString> potentialDurableSubs, Transaction transaction) + private void upgradeQueueBindings(Environment environment, UpgradeInteractionHandler handler, final List<AMQShortString> potentialDurableSubs, + Transaction transaction) { if (environment.getDatabaseNames().contains(OLD_BINDINGS_DB_NAME)) { @@ -188,8 +177,8 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade } } - private Set<String> upgradeQueues(final LogSubject logSubject, final Environment environment, - final UpgradeInteractionHandler handler, List<AMQShortString> potentialDurableSubs, Transaction transaction) + private Set<String> upgradeQueues(final Environment environment, final UpgradeInteractionHandler handler, + List<AMQShortString> potentialDurableSubs, Transaction transaction) { _logger.info("Queues"); final Set<String> existingQueues = new HashSet<String>(); @@ -217,10 +206,10 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade return existingQueues; } - private List<AMQShortString> findPotentialDurableSubscriptions(final LogSubject logSubject, - final Environment environment, Transaction transaction) + private List<AMQShortString> findPotentialDurableSubscriptions(final Environment environment, + Transaction transaction) { - final List<AMQShortString> exchangeNames = findTopicExchanges(logSubject, environment); + final List<AMQShortString> exchangeNames = findTopicExchanges(environment); final List<AMQShortString> queues = new ArrayList<AMQShortString>(); final PartialBindingRecordBinding binding = new PartialBindingRecordBinding(); @@ -241,8 +230,8 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade return queues; } - private Set<Long> upgradeDelivery(final LogSubject logSubject, final Environment environment, - final Set<String> existingQueues, final UpgradeInteractionHandler handler, Transaction transaction) + private Set<Long> upgradeDelivery(final Environment environment, final Set<String> existingQueues, + final UpgradeInteractionHandler handler, Transaction transaction) { final Set<Long> messagesToDiscard = new HashSet<Long>(); final Set<String> queuesToDiscard = new HashSet<String>(); @@ -363,7 +352,7 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade new DatabaseTemplate(environment, NEW_QUEUE_DB_NAME, NEW_BINDINGS_DB_NAME, transaction).run(queueCreateOperation); } - private List<AMQShortString> findTopicExchanges(final LogSubject logSubject, final Environment environment) + private List<AMQShortString> findTopicExchanges(final Environment environment) { final List<AMQShortString> topicExchanges = new ArrayList<AMQShortString>(); final ExchangeRecordBinding binding = new ExchangeRecordBinding(); @@ -385,8 +374,8 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade return topicExchanges; } - private void upgradeMetaData(final LogSubject logSubject, final Environment environment, - final UpgradeInteractionHandler handler, final Set<Long> messagesToDiscard, Transaction transaction) + private void upgradeMetaData(final Environment environment, final UpgradeInteractionHandler handler, + final Set<Long> messagesToDiscard, Transaction transaction) { _logger.info("Message MetaData"); if (environment.getDatabaseNames().contains(OLD_METADATA_DB_NAME)) @@ -426,8 +415,8 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade } } - private void upgradeContent(final LogSubject logSubject, final Environment environment, - final UpgradeInteractionHandler handler, final Set<Long> messagesToDiscard, Transaction transaction) + private void upgradeContent(final Environment environment, final UpgradeInteractionHandler handler, + final Set<Long> messagesToDiscard, Transaction transaction) { _logger.info("Message Contents"); if (environment.getDatabaseNames().contains(OLD_CONTENT_DB_NAME)) @@ -486,8 +475,8 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade * For all databases which haven't been otherwise upgraded, we still need to * rename them from _v4 to _v5 */ - private void renameRemainingDatabases(final LogSubject logSubject, final Environment environment, - final UpgradeInteractionHandler handler, Transaction transaction) + private void renameRemainingDatabases(final Environment environment, final UpgradeInteractionHandler handler, + Transaction transaction) { for (String dbName : environment.getDatabaseNames()) { |