Return-Path: X-Original-To: apmail-qpid-commits-archive@www.apache.org Delivered-To: apmail-qpid-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8B0EE109D6 for ; Tue, 1 Apr 2014 10:36:13 +0000 (UTC) Received: (qmail 35450 invoked by uid 500); 1 Apr 2014 10:36:13 -0000 Delivered-To: apmail-qpid-commits-archive@qpid.apache.org Received: (qmail 35384 invoked by uid 500); 1 Apr 2014 10:36:10 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 35362 invoked by uid 99); 1 Apr 2014 10:36:09 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Apr 2014 10:36:09 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Apr 2014 10:36:04 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B174D2388A33; Tue, 1 Apr 2014 10:35:44 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1583597 [2/8] - in /qpid/trunk: ./ qpid/ qpid/cpp/src/ qpid/cpp/src/tests/ qpid/java/ qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/ qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleyd... Date: Tue, 01 Apr 2014 10:35:37 -0000 To: commits@qpid.apache.org From: kwall@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140401103544.B174D2388A33@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java Tue Apr 1 10:35:33 2014 @@ -40,12 +40,14 @@ import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import org.apache.log4j.Logger; import org.apache.qpid.server.store.berkeleydb.CoalescingCommiter; import org.apache.qpid.server.store.berkeleydb.Committer; import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade; +import org.apache.qpid.server.store.berkeleydb.EnvironmentFacadeFactory.EnvironmentFacadeTask; import org.apache.qpid.server.store.berkeleydb.LoggingAsyncExceptionListener; import org.apache.qpid.server.util.DaemonThreadFactory; @@ -110,7 +112,7 @@ public class ReplicatedEnvironmentFacade */ put(ReplicationConfig.ENV_SETUP_TIMEOUT, "15 min"); /** - * Parameter changed from default (off) to allow the Environment to start in the + * Parameter changed from default (off) to allow the Environment to start in the * UNKNOWN state when the majority is not available. */ put(ReplicationConfig.ENV_UNKNOWN_STATE_TIMEOUT, "5 s"); @@ -148,7 +150,10 @@ public class ReplicatedEnvironmentFacade private volatile long _joinTime; private volatile ReplicatedEnvironment.State _lastKnownEnvironmentState; - public ReplicatedEnvironmentFacade(ReplicatedEnvironmentConfiguration configuration) + private AtomicBoolean _initialised; + private EnvironmentFacadeTask[] _initialisationTasks; + + public ReplicatedEnvironmentFacade(ReplicatedEnvironmentConfiguration configuration, EnvironmentFacadeTask[] initialisationTasks) { _environmentDirectory = new File(configuration.getStorePath()); if (!_environmentDirectory.exists()) @@ -160,6 +165,8 @@ public class ReplicatedEnvironmentFacade } } + _initialised = new AtomicBoolean(); + _initialisationTasks = initialisationTasks; _configuration = configuration; _durability = Durability.parse(_configuration.getDurability()); @@ -393,9 +400,10 @@ public class ReplicatedEnvironmentFacade LOGGER.info("The environment facade is in open state for node " + _prettyGroupNodeName); _joinTime = System.currentTimeMillis(); } + if (state == ReplicatedEnvironment.State.MASTER) { - reopenDatabases(); + onMasterStateChange(); } } @@ -413,6 +421,22 @@ public class ReplicatedEnvironmentFacade _lastKnownEnvironmentState = state; } + private void onMasterStateChange() + { + reopenDatabases(); + + if (_initialised.compareAndSet(false, true)) + { + if (_initialisationTasks != null) + { + for (EnvironmentFacadeTask task : _initialisationTasks) + { + task.execute(ReplicatedEnvironmentFacade.this); + } + } + } + } + private void reopenDatabases() { if (_state.get() == State.OPEN) @@ -992,7 +1016,7 @@ public class ReplicatedEnvironmentFacade { nodeState = ReplicatedEnvironment.State.UNKNOWN; } - + currentGroupState.put(node.getName(), nodeState); return null; } @@ -1079,5 +1103,4 @@ public class ReplicatedEnvironmentFacade } } - } Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java Tue Apr 1 10:35:33 2014 @@ -22,7 +22,7 @@ package org.apache.qpid.server.store.ber import java.util.Map; -import org.apache.qpid.server.model.VirtualHost; +import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade; import org.apache.qpid.server.store.berkeleydb.EnvironmentFacadeFactory; @@ -32,47 +32,55 @@ import com.sleepycat.je.Durability.SyncP public class ReplicatedEnvironmentFacadeFactory implements EnvironmentFacadeFactory { - + public static final String DURABILITY = "haDurability"; + public static final String GROUP_NAME = "haGroupName"; + public static final String HELPER_ADDRESS = "haHelperAddress"; + public static final String NODE_ADDRESS = "haNodeAddress"; + public static final String NODE_NAME = "haNodeName"; + public static final String REPLICATION_CONFIG = "haReplicationConfig"; + public static final String COALESCING_SYNC = "haCoalescingSync"; + public static final String DESIGNATED_PRIMARY = "haDesignatedPrimary"; + private static final int DEFAULT_NODE_PRIORITY = 1; private static final Durability DEFAULT_DURABILITY = new Durability(SyncPolicy.NO_SYNC, SyncPolicy.NO_SYNC, ReplicaAckPolicy.SIMPLE_MAJORITY); private static final boolean DEFAULT_COALESCING_SYNC = true; - - @Override - public EnvironmentFacade createEnvironmentFacade(final VirtualHost virtualHost, boolean isMessageStore) + public EnvironmentFacade createEnvironmentFacade(final Map messageStoreSettings, EnvironmentFacadeTask... initialisationTasks) { ReplicatedEnvironmentConfiguration configuration = new ReplicatedEnvironmentConfiguration() { @Override public boolean isDesignatedPrimary() { - return convertBoolean(virtualHost.getAttribute("haDesignatedPrimary"), false); + return convertBoolean(messageStoreSettings.get(DESIGNATED_PRIMARY), false); } @Override public boolean isCoalescingSync() { - return convertBoolean(virtualHost.getAttribute("haCoalescingSync"), DEFAULT_COALESCING_SYNC); + return convertBoolean(messageStoreSettings.get(COALESCING_SYNC), DEFAULT_COALESCING_SYNC); } @Override public String getStorePath() { - return (String) virtualHost.getAttribute(VirtualHost.STORE_PATH); + return (String) messageStoreSettings.get(MessageStore.STORE_PATH); } + @SuppressWarnings("unchecked") @Override public Map getParameters() { - return (Map) virtualHost.getAttribute("bdbEnvironmentConfig"); + return (Map) messageStoreSettings.get(EnvironmentFacadeFactory.ENVIRONMENT_CONFIGURATION); } + @SuppressWarnings("unchecked") @Override public Map getReplicationParameters() { - return (Map) virtualHost.getAttribute("haReplicationConfig"); + return (Map) messageStoreSettings.get(REPLICATION_CONFIG); } @Override @@ -87,39 +95,38 @@ public class ReplicatedEnvironmentFacade return DEFAULT_NODE_PRIORITY; } - - @Override public String getName() { - return (String)virtualHost.getAttribute("haNodeName"); + return (String)messageStoreSettings.get(NODE_NAME); } @Override public String getHostPort() { - return (String)virtualHost.getAttribute("haNodeAddress"); + return (String)messageStoreSettings.get(NODE_ADDRESS); } @Override public String getHelperHostPort() { - return (String)virtualHost.getAttribute("haHelperAddress"); + return (String)messageStoreSettings.get(HELPER_ADDRESS); } @Override public String getGroupName() { - return (String)virtualHost.getAttribute("haGroupName"); + return (String)messageStoreSettings.get(GROUP_NAME); } @Override public String getDurability() { - return virtualHost.getAttribute("haDurability") == null ? DEFAULT_DURABILITY.toString() : (String)virtualHost.getAttribute("haDurability"); + String durability = (String)messageStoreSettings.get(DURABILITY); + return durability == null ? DEFAULT_DURABILITY.toString() : durability; } }; - return new ReplicatedEnvironmentFacade(configuration); + return new ReplicatedEnvironmentFacade(configuration, initialisationTasks); } Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/StoreUpgrade.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/StoreUpgrade.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/StoreUpgrade.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/StoreUpgrade.java Tue Apr 1 10:35:33 2014 @@ -21,9 +21,10 @@ package org.apache.qpid.server.store.berkeleydb.upgrade; import com.sleepycat.je.Environment; -import org.apache.qpid.server.model.VirtualHost; + +import org.apache.qpid.server.model.ConfiguredObject; public interface StoreUpgrade { - void performUpgrade(Environment environment, UpgradeInteractionHandler handler, VirtualHost virtualHost); + void performUpgrade(Environment environment, UpgradeInteractionHandler handler, ConfiguredObject parent); } Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java Tue Apr 1 10:35:33 2014 @@ -39,7 +39,7 @@ import org.apache.qpid.framing.AMQShortS import org.apache.qpid.framing.ContentHeaderBody; import org.apache.qpid.framing.FieldTable; import org.apache.qpid.framing.abstraction.MessagePublishInfo; -import org.apache.qpid.server.model.VirtualHost; +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.protocol.v0_8.MessageMetaData; import org.apache.qpid.server.store.StoreException; import org.apache.qpid.server.store.StorableMessageMetaData; @@ -75,7 +75,7 @@ public class UpgradeFrom4To5 extends Abs private static final Logger _logger = Logger.getLogger(UpgradeFrom4To5.class); - public void performUpgrade(final Environment environment, final UpgradeInteractionHandler handler, VirtualHost virtualHost) + public void performUpgrade(final Environment environment, final UpgradeInteractionHandler handler, ConfiguredObject parent) { Transaction transaction = null; reportStarting(environment, 4); Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom5To6.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom5To6.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom5To6.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom5To6.java Tue Apr 1 10:35:33 2014 @@ -40,11 +40,11 @@ import org.apache.qpid.exchange.Exchange import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; import org.apache.qpid.server.model.Binding; +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Exchange; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.UUIDGenerator; -import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.queue.QueueArgumentsConverter; import org.apache.qpid.server.store.StoreException; import org.apache.qpid.server.store.berkeleydb.AMQShortStringEncoding; @@ -119,11 +119,11 @@ public class UpgradeFrom5To6 extends Abs * Queue, Exchange, Bindings entries are stored now as configurable objects * in "CONFIGURED_OBJECTS" table. */ - public void performUpgrade(final Environment environment, final UpgradeInteractionHandler handler, VirtualHost virtualHost) + public void performUpgrade(final Environment environment, final UpgradeInteractionHandler handler, ConfiguredObject parent) { reportStarting(environment, 5); upgradeMessages(environment, handler); - upgradeConfiguredObjectsAndDependencies(environment, handler, virtualHost.getName()); + upgradeConfiguredObjectsAndDependencies(environment, handler, parent.getName()); renameDatabases(environment, null); reportFinished(environment, 6); } Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom6To7.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom6To7.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom6To7.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom6To7.java Tue Apr 1 10:35:33 2014 @@ -27,7 +27,8 @@ import com.sleepycat.je.DatabaseConfig; import com.sleepycat.je.DatabaseEntry; import com.sleepycat.je.Environment; import com.sleepycat.je.OperationStatus; -import org.apache.qpid.server.model.VirtualHost; + +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.store.StoreException; public class UpgradeFrom6To7 extends AbstractStoreUpgrade @@ -36,7 +37,7 @@ public class UpgradeFrom6To7 extends Abs private static final int DEFAULT_CONFIG_VERSION = 0; @Override - public void performUpgrade(Environment environment, UpgradeInteractionHandler handler, VirtualHost virtualHost) + public void performUpgrade(Environment environment, UpgradeInteractionHandler handler, ConfiguredObject parent) { reportStarting(environment, 6); DatabaseConfig dbConfig = new DatabaseConfig(); Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom7To8.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom7To8.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom7To8.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom7To8.java Tue Apr 1 10:35:33 2014 @@ -26,7 +26,8 @@ import com.sleepycat.bind.tuple.TupleBin import com.sleepycat.bind.tuple.TupleInput; import com.sleepycat.bind.tuple.TupleOutput; import com.sleepycat.je.*; -import org.apache.qpid.server.model.VirtualHost; + +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.store.ConfiguredObjectRecord; import org.apache.qpid.server.store.StoreException; import org.apache.qpid.server.store.berkeleydb.BDBConfiguredObjectRecord; @@ -46,7 +47,7 @@ public class UpgradeFrom7To8 extends Abs { @Override - public void performUpgrade(Environment environment, UpgradeInteractionHandler handler, VirtualHost virtualHost) + public void performUpgrade(Environment environment, UpgradeInteractionHandler handler, ConfiguredObject parent) { reportStarting(environment, 7); @@ -78,7 +79,7 @@ public class UpgradeFrom7To8 extends Abs if(!type.endsWith("Binding")) { - UUIDTupleBinding.getInstance().objectToEntry(virtualHost.getId(),value); + UUIDTupleBinding.getInstance().objectToEntry(parent.getId(),value); TupleOutput tupleOutput = new TupleOutput(); tupleOutput.writeLong(id.getMostSignificantBits()); tupleOutput.writeLong(id.getLeastSignificantBits()); Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/Upgrader.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/Upgrader.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/Upgrader.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/Upgrader.java Tue Apr 1 10:35:33 2014 @@ -26,6 +26,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import org.apache.log4j.Logger; +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.store.StoreException; import org.apache.qpid.server.store.berkeleydb.BDBMessageStore; @@ -46,12 +47,12 @@ public class Upgrader static final String VERSION_DB_NAME = "DB_VERSION"; private Environment _environment; - private VirtualHost _virtualHost; + private ConfiguredObject _parent; - public Upgrader(Environment environment, VirtualHost virtualHost) + public Upgrader(Environment environment, ConfiguredObject parent) { _environment = environment; - _virtualHost = virtualHost; + _parent = parent; } public void upgradeIfNecessary() @@ -159,7 +160,7 @@ public class Upgrader + "UpgradeFrom"+fromVersion+"To"+toVersion); Constructor ctr = upgradeClass.getConstructor(); StoreUpgrade upgrade = ctr.newInstance(); - upgrade.performUpgrade(_environment, UpgradeInteractionHandler.DEFAULT_HANDLER, _virtualHost); + upgrade.performUpgrade(_environment, UpgradeInteractionHandler.DEFAULT_HANDLER, _parent); } catch (ClassNotFoundException e) { Modified: qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreConfigurationTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreConfigurationTest.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreConfigurationTest.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreConfigurationTest.java Tue Apr 1 10:35:33 2014 @@ -25,49 +25,9 @@ import org.apache.qpid.server.store.Dura public class BDBMessageStoreConfigurationTest extends AbstractDurableConfigurationStoreTestCase { - private BDBMessageStore _bdbMessageStore; - - @Override - protected BDBMessageStore createMessageStore() throws Exception - { - createStoreIfNecessary(); - return _bdbMessageStore; - } - - @Override - protected void closeMessageStore() throws Exception - { - closeStoreIfNecessary(); - } - @Override protected DurableConfigurationStore createConfigStore() throws Exception { - createStoreIfNecessary(); - - return _bdbMessageStore; - } - - @Override - protected void closeConfigStore() throws Exception - { - closeStoreIfNecessary(); - } - - private void createStoreIfNecessary() - { - if(_bdbMessageStore == null) - { - _bdbMessageStore = new BDBMessageStore(); - } - } - - private void closeStoreIfNecessary() throws Exception - { - if (_bdbMessageStore != null) - { - _bdbMessageStore.close(); - _bdbMessageStore = null; - } + return new BDBMessageStore(); } } Modified: qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreQuotaEventsTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreQuotaEventsTest.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreQuotaEventsTest.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreQuotaEventsTest.java Tue Apr 1 10:35:33 2014 @@ -21,16 +21,13 @@ package org.apache.qpid.server.store.berkeleydb; import java.util.Collections; +import java.util.HashMap; import java.util.Map; + import org.apache.log4j.Logger; -import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.store.MessageStore; -import org.apache.qpid.server.store.MessageStoreConstants; import org.apache.qpid.server.store.MessageStoreQuotaEventsTestBase; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.when; - public class BDBMessageStoreQuotaEventsTest extends MessageStoreQuotaEventsTestBase { private static final Logger _logger = Logger.getLogger(BDBMessageStoreQuotaEventsTest.class); @@ -59,16 +56,19 @@ public class BDBMessageStoreQuotaEventsT return NUMBER_OF_MESSAGES_TO_OVERFILL_STORE; } + @Override - protected void applyStoreSpecificConfiguration(VirtualHost virtualHost) + protected MapcreateStoreSettings(String storeLocation) { - _logger.debug("Applying store specific config. overfull-sze=" + OVERFULL_SIZE + ", underfull-size=" + UNDERFULL_SIZE); + _logger.debug("Applying store specific config. overfull-size=" + OVERFULL_SIZE + ", underfull-size=" + UNDERFULL_SIZE); + Map messageStoreSettings = new HashMap(); + messageStoreSettings.put(MessageStore.STORE_PATH, storeLocation); + messageStoreSettings.put(MessageStore.OVERFULL_SIZE, OVERFULL_SIZE); + messageStoreSettings.put(MessageStore.UNDERFULL_SIZE, UNDERFULL_SIZE); Map envMap = Collections.singletonMap("je.log.fileMax", MAX_BDB_LOG_SIZE); - when(virtualHost.getAttribute(eq("bdbEnvironmentConfig"))).thenReturn(envMap); - when(virtualHost.getAttribute(eq(MessageStoreConstants.OVERFULL_SIZE_ATTRIBUTE))).thenReturn(OVERFULL_SIZE); - when(virtualHost.getAttribute(eq(MessageStoreConstants.UNDERFULL_SIZE_ATTRIBUTE))).thenReturn(UNDERFULL_SIZE); - + messageStoreSettings.put(EnvironmentFacadeFactory.ENVIRONMENT_CONFIGURATION, envMap); + return messageStoreSettings; } @Override Modified: qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeTest.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeTest.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeTest.java Tue Apr 1 10:35:33 2014 @@ -122,7 +122,7 @@ public class StandardEnvironmentFacadeTe EnvironmentFacade createEnvironmentFacade() { - return new StandardEnvironmentFacade(_storePath.getAbsolutePath(), Collections.emptyMap()); + return new StandardEnvironmentFacade(_storePath.getAbsolutePath(), Collections.emptyMap(), null); } } Modified: qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/VirtualHostTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/VirtualHostTest.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/VirtualHostTest.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/VirtualHostTest.java Tue Apr 1 10:35:33 2014 @@ -27,7 +27,6 @@ import java.io.File; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import java.util.Set; import java.util.UUID; import org.apache.qpid.server.configuration.ConfigurationEntry; @@ -39,26 +38,24 @@ import org.apache.qpid.server.model.Brok import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.stats.StatisticsGatherer; +import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade; +import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeFactory; import org.apache.qpid.server.util.BrokerTestHelper; -import org.apache.qpid.server.virtualhost.StandardVirtualHostFactory; import org.apache.qpid.test.utils.QpidTestCase; -import org.apache.qpid.test.utils.TestFileUtils; import org.apache.qpid.util.FileUtils; -import com.sleepycat.je.EnvironmentConfig; import com.sleepycat.je.rep.ReplicatedEnvironment; import com.sleepycat.je.rep.ReplicationConfig; public class VirtualHostTest extends QpidTestCase { - private Broker _broker; + private Broker _broker; private StatisticsGatherer _statisticsGatherer; private RecovererProvider _recovererProvider; - private File _configFile; private File _bdbStorePath; - private VirtualHost _host; + private VirtualHost _host; private ConfigurationEntryStore _store; @Override @@ -72,7 +69,6 @@ public class VirtualHostTest extends Qpi when(taslExecutor.isTaskExecutorThread()).thenReturn(true); when(_broker.getTaskExecutor()).thenReturn(taslExecutor); - _statisticsGatherer = mock(StatisticsGatherer.class); _bdbStorePath = new File(TMP_FOLDER, getTestName() + "." + System.currentTimeMillis()); @@ -91,10 +87,6 @@ public class VirtualHostTest extends Qpi } finally { - if (_configFile != null) - { - _configFile.delete(); - } if (_bdbStorePath != null) { FileUtils.delete(_bdbStorePath, true); @@ -103,106 +95,62 @@ public class VirtualHostTest extends Qpi } } - - public void testCreateBdbVirtualHostFromConfigurationFile() + public void testCreateBdbHaVirtualHostFromConfigurationEntry() { - String hostName = getName(); - long logFileMax = 2000000; - _host = createHostFromConfiguration(hostName, logFileMax); - _host.setDesiredState(State.INITIALISING, State.ACTIVE); - assertEquals("Unexpected host name", hostName, _host.getName()); - assertEquals("Unexpected host type", StandardVirtualHostFactory.TYPE, _host.getType()); - assertEquals("Unexpected store type", new BDBMessageStoreFactory().getType(), _host.getAttribute(VirtualHost.STORE_TYPE)); - assertEquals("Unexpected store path", _bdbStorePath.getAbsolutePath(), _host.getAttribute(VirtualHost.STORE_PATH)); - - BDBMessageStore messageStore = (BDBMessageStore) _host.getMessageStore(); - EnvironmentConfig envConfig = messageStore.getEnvironmentFacade().getEnvironment().getConfig(); - assertEquals("Unexpected JE log file max", String.valueOf(logFileMax), envConfig.getConfigParam(EnvironmentConfig.LOG_FILE_MAX)); - - } - - public void testCreateBdbHaVirtualHostFromConfigurationFile() - { - String hostName = getName(); - String repStreamTimeout = "2 h"; String nodeName = "node"; String groupName = "group"; String nodeHostPort = "localhost:" + findFreePort(); String helperHostPort = nodeHostPort; String durability = "NO_SYNC,SYNC,NONE"; - _host = createHaHostFromConfiguration(hostName, groupName, nodeName, nodeHostPort, helperHostPort, durability, repStreamTimeout); + String virtualHostName = getName(); + + Map messageStoreSettings = new HashMap(); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.NODE_NAME, nodeName); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.GROUP_NAME, groupName); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.NODE_ADDRESS, nodeHostPort); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.HELPER_ADDRESS, helperHostPort); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.DURABILITY, durability); + + messageStoreSettings.put(MessageStore.STORE_PATH, _bdbStorePath.getAbsolutePath()); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.REPLICATION_CONFIG, + Collections.singletonMap(ReplicationConfig.REP_STREAM_TIMEOUT, repStreamTimeout)); + + Map virtualHostAttributes = new HashMap(); + virtualHostAttributes.put(VirtualHost.NAME, virtualHostName); + virtualHostAttributes.put(VirtualHost.TYPE, BDBHAVirtualHostFactory.TYPE); + virtualHostAttributes.put(VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings); + + _host = createHost(virtualHostAttributes); _host.setDesiredState(State.INITIALISING, State.ACTIVE); - assertEquals("Unexpected host name", hostName, _host.getName()); + + assertEquals("Unexpected virtual host name", virtualHostName, _host.getName()); assertEquals("Unexpected host type", BDBHAVirtualHostFactory.TYPE, _host.getType()); - assertEquals("Unexpected store type", ReplicatedEnvironmentFacade.TYPE, _host.getAttribute(VirtualHost.STORE_TYPE)); - assertEquals("Unexpected store path", _bdbStorePath.getAbsolutePath(), _host.getAttribute(VirtualHost.STORE_PATH)); + + assertEquals(messageStoreSettings, _host.getMessageStoreSettings()); BDBMessageStore messageStore = (BDBMessageStore) _host.getMessageStore(); ReplicatedEnvironment environment = (ReplicatedEnvironment) messageStore.getEnvironmentFacade().getEnvironment(); - ReplicationConfig repConfig = environment.getRepConfig(); - assertEquals("Unexpected JE replication groupName", groupName, repConfig.getConfigParam(ReplicationConfig.GROUP_NAME)); - assertEquals("Unexpected JE replication nodeName", nodeName, repConfig.getConfigParam(ReplicationConfig.NODE_NAME)); - assertEquals("Unexpected JE replication nodeHostPort", nodeHostPort, repConfig.getConfigParam(ReplicationConfig.NODE_HOST_PORT)); - assertEquals("Unexpected JE replication nodeHostPort", helperHostPort, repConfig.getConfigParam(ReplicationConfig.HELPER_HOSTS)); - assertEquals("Unexpected JE replication nodeHostPort", "false", repConfig.getConfigParam(ReplicationConfig.DESIGNATED_PRIMARY)); - assertEquals("Unexpected JE replication stream timeout", repStreamTimeout, repConfig.getConfigParam(ReplicationConfig.REP_STREAM_TIMEOUT)); - } + ReplicationConfig replicationConfig = environment.getRepConfig(); - private VirtualHost createHost(Map attributes, Set children) - { - ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), VirtualHost.class.getSimpleName(), attributes, - children, _store); + assertEquals(nodeName, environment.getNodeName()); + assertEquals(groupName, environment.getGroup().getName()); + assertEquals(nodeHostPort, replicationConfig.getNodeHostPort()); + assertEquals(helperHostPort, replicationConfig.getHelperHosts()); + assertEquals(durability, environment.getConfig().getDurability().toString()); + assertEquals("Unexpected JE replication stream timeout", repStreamTimeout, replicationConfig.getConfigParam(ReplicationConfig.REP_STREAM_TIMEOUT)); - return new VirtualHostRecoverer(_statisticsGatherer).create(_recovererProvider, entry, _broker); } - private VirtualHost createHost(Map attributes) - { - return createHost(attributes, Collections. emptySet()); - } - private VirtualHost createHostFromConfiguration(String hostName, long logFileMax) + private VirtualHost createHost(Map attributes) { - String content = "" + hostName + "<" + hostName + ">" - + "" + BDBMessageStore.class.getName() + "" - + "" + _bdbStorePath.getAbsolutePath() + "" - + "" + EnvironmentConfig.LOG_FILE_MAX + "" + logFileMax + "" - + "" - + ""; - Map attributes = writeConfigAndGenerateAttributes(content); - return createHost(attributes); - } - + ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), VirtualHost.class.getSimpleName(), attributes, + Collections.emptySet(), _store); - private VirtualHost createHaHostFromConfiguration(String hostName, String groupName, String nodeName, String nodeHostPort, String helperHostPort, String durability, String repStreamTimeout) - { - String content = "" + hostName + "<" + hostName + ">" - + "" + BDBHAVirtualHostFactory.TYPE + "" - + "" + BDBMessageStore.class.getName() + "" - + "" + _bdbStorePath.getAbsolutePath() + "" - + "" - + "" + groupName + "" - + "" + nodeName + "" - + "" + nodeHostPort + "" - + "" + helperHostPort + "" - + "" + durability.replaceAll(",", "\\\\,") + "" - + "" - + "" + ReplicationConfig.REP_STREAM_TIMEOUT + "" + repStreamTimeout + "" - + "" - + ""; - Map attributes = writeConfigAndGenerateAttributes(content); - return createHost(attributes); + return new VirtualHostRecoverer(_statisticsGatherer).create(_recovererProvider, entry, _broker); } - private Map writeConfigAndGenerateAttributes(String content) - { - _configFile = TestFileUtils.createTempFile(this, ".virtualhost.xml", content); - Map attributes = new HashMap(); - attributes.put(VirtualHost.NAME, getName()); - attributes.put(VirtualHost.CONFIG_PATH, _configFile.getAbsolutePath()); - return attributes; - } } \ No newline at end of file Modified: qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java (original) +++ qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java Tue Apr 1 10:35:33 2014 @@ -31,8 +31,6 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.qpid.server.configuration.updater.TaskExecutor; -import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade; import org.apache.qpid.test.utils.QpidTestCase; import org.apache.qpid.test.utils.TestFileUtils; @@ -65,16 +63,11 @@ public class ReplicatedEnvironmentFacade private File _storePath; private final Map _nodes = new HashMap(); - private VirtualHost _virtualHost = mock(VirtualHost.class); public void setUp() throws Exception { super.setUp(); - TaskExecutor taskExecutor = mock(TaskExecutor.class); - when(taskExecutor.isTaskExecutorThread()).thenReturn(true); - when(_virtualHost.getTaskExecutor()).thenReturn(taskExecutor); - _storePath = TestFileUtils.createTestDirectory("bdb", true); setTestSystemProperty(ReplicatedEnvironmentFacade.DB_PING_SOCKET_TIMEOUT_PROPERTY_NAME, "100"); @@ -302,7 +295,7 @@ public class ReplicatedEnvironmentFacade State desiredState, StateChangeListener stateChangeListener) { ReplicatedEnvironmentConfiguration config = createReplicatedEnvironmentConfiguration(nodeName, nodeHostPort, designatedPrimary); - ReplicatedEnvironmentFacade ref = new ReplicatedEnvironmentFacade(config); + ReplicatedEnvironmentFacade ref = new ReplicatedEnvironmentFacade(config, null); ref.setStateChangeListener(stateChangeListener); _nodes.put(nodeName, ref); return ref; Modified: qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java (original) +++ qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java Tue Apr 1 10:35:33 2014 @@ -31,6 +31,8 @@ import javax.jms.MessageConsumer; import javax.jms.Session; import org.apache.log4j.Logger; +import org.apache.qpid.server.model.VirtualHost; +import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.test.utils.Piper; import org.apache.qpid.test.utils.QpidBrokerTestCase; import org.apache.qpid.util.FileUtils; @@ -59,12 +61,9 @@ public class BDBBackupTest extends QpidB super.setUp(); _backupToDir = new File(SYSTEM_TMP_DIR + File.separator + getTestName()); _backupToDir.mkdirs(); - - final String qpidWork = getBroker(DEFAULT_PORT).getWorkingDirectory(); - - // It would be preferable to lookup the store path using #getConfigurationStringProperty("virtualhosts...") - // but the config as known to QBTC does not pull-in the virtualhost section from its separate source file - _backupFromDir = new File(qpidWork + File.separator + TEST_VHOST + "-store"); + Map virtualHostAttributes = getBrokerConfiguration().getObjectAttributes(TEST_VHOST); + Map messageStoreSettings = (Map) virtualHostAttributes.get(VirtualHost.MESSAGE_STORE_SETTINGS); + _backupFromDir = new File((String)messageStoreSettings.get(MessageStore.STORE_PATH)); boolean fromDirExistsAndIsDir = _backupFromDir.isDirectory(); assertTrue("backupFromDir " + _backupFromDir + " should already exist", fromDirExistsAndIsDir); } Modified: qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java (original) +++ qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java Tue Apr 1 10:35:33 2014 @@ -29,7 +29,6 @@ import java.util.Arrays; import java.util.List; import java.util.UUID; -import org.apache.qpid.server.store.StoreException; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.BasicContentHeaderProperties; import org.apache.qpid.framing.ContentHeaderBody; @@ -38,18 +37,20 @@ import org.apache.qpid.framing.ProtocolV import org.apache.qpid.framing.abstraction.MessagePublishInfo; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.EnqueueableMessage; -import org.apache.qpid.server.protocol.v0_10.MessageMetaDataType_0_10; -import org.apache.qpid.server.protocol.v0_8.MessageMetaData; -import org.apache.qpid.server.protocol.v0_10.MessageMetaData_0_10; import org.apache.qpid.server.message.MessageReference; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.model.UUIDGenerator; +import org.apache.qpid.server.model.VirtualHost; +import org.apache.qpid.server.protocol.v0_10.MessageMetaDataType_0_10; +import org.apache.qpid.server.protocol.v0_10.MessageMetaData_0_10; +import org.apache.qpid.server.protocol.v0_8.MessageMetaData; import org.apache.qpid.server.protocol.v0_8.MessageMetaDataType_0_8; +import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.MessageStoreRecoveryHandler; import org.apache.qpid.server.store.MessageStoreRecoveryHandler.StoredMessageRecoveryHandler; import org.apache.qpid.server.store.MessageStoreTest; -import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.StorableMessageMetaData; +import org.apache.qpid.server.store.StoreException; import org.apache.qpid.server.store.StoredMessage; import org.apache.qpid.server.store.Transaction; import org.apache.qpid.server.store.TransactionLogResource; @@ -198,7 +199,7 @@ public class BDBMessageStoreTest extends String returnedPayloadString_0_10 = new String(recoveredContent.array()); assertEquals("Message Payload has changed", bodyText, returnedPayloadString_0_10); - readOnlyStore.close(); + readOnlyStore.closeMessageStore(); } private DeliveryProperties createDeliveryProperties_0_10() @@ -233,14 +234,17 @@ public class BDBMessageStoreTest extends */ private BDBMessageStore reloadStore(BDBMessageStore messageStore) throws Exception { - messageStore.close(); + messageStore.closeMessageStore(); + BDBMessageStore newStore = new BDBMessageStore(); + MessageStoreRecoveryHandler recoveryHandler = mock(MessageStoreRecoveryHandler.class); when(recoveryHandler.begin()).thenReturn(mock(StoredMessageRecoveryHandler.class)); - newStore.configureMessageStore(getVirtualHostModel(), recoveryHandler, null); + VirtualHost virtualHost = getVirtualHostModel(); + newStore.openMessageStore(virtualHost, virtualHost.getMessageStoreSettings()); - newStore.activate(); + newStore.recoverMessageStore(recoveryHandler, null); return newStore; } @@ -520,7 +524,7 @@ public class BDBMessageStoreTest extends File location = new File(storeLocation); assertTrue("Store does not exist at " + storeLocation, location.exists()); - bdbStore.close(); + bdbStore.closeMessageStore(); assertTrue("Store does not exist at " + storeLocation, location.exists()); bdbStore.onDelete(); Modified: qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUpgradeTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUpgradeTest.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUpgradeTest.java (original) +++ qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUpgradeTest.java Tue Apr 1 10:35:33 2014 @@ -22,6 +22,7 @@ package org.apache.qpid.server.store.ber import java.io.File; import java.io.InputStream; +import java.util.Map; import javax.jms.Connection; import javax.jms.DeliveryMode; @@ -43,8 +44,11 @@ import javax.management.openmbean.Tabula import org.apache.qpid.management.common.mbeans.ManagedExchange; import org.apache.qpid.management.common.mbeans.ManagedQueue; +import org.apache.qpid.server.model.VirtualHost; +import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.test.utils.JMXTestUtils; import org.apache.qpid.test.utils.QpidBrokerTestCase; +import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.util.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -72,7 +76,7 @@ public class BDBUpgradeTest extends Qpid private static final String QUEUE_NAME="myUpgradeQueue"; private static final String NON_DURABLE_QUEUE_NAME="queue-non-durable"; private static final String PRIORITY_QUEUE_NAME="myPriorityQueue"; - private static final String QUEUE_WITH_DLQ_NAME="myQueueWithDLQ"; + private static final String QUEUE_WITH_DLQ_NAME="myQueueWithDLQ"; private String _storeLocation; @@ -80,7 +84,10 @@ public class BDBUpgradeTest extends Qpid public void setUp() throws Exception { assertNotNull("QPID_WORK must be set", QPID_WORK_ORIG); - _storeLocation = getWorkDirBaseDir() + File.separator + "test-store"; + Map virtualHostAttributes = getBrokerConfiguration().getObjectAttributes(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); + @SuppressWarnings("unchecked") + Map messageStoreSettings = (Map) virtualHostAttributes.get(VirtualHost.MESSAGE_STORE_SETTINGS); + _storeLocation = (String)messageStoreSettings.get(MessageStore.STORE_PATH); //Clear the two target directories if they exist. File directory = new File(_storeLocation); @@ -98,11 +105,6 @@ public class BDBUpgradeTest extends Qpid super.setUp(); } - private String getWorkDirBaseDir() - { - return QPID_WORK_ORIG + (isInternalBroker() ? "" : "/" + getPort()); - } - /** * Test that the selector applied to the DurableSubscription was successfully * transfered to the new store, and functions as expected with continued use @@ -359,6 +361,9 @@ public class BDBUpgradeTest extends Qpid } /** + * + * TODO (QPID-5650) Resolve so this test can be reenabled. + * * Test that the queue configured to have a DLQ was recovered and has the alternate exchange * and max delivery count, the DLE exists, the DLQ exists with no max delivery count, the * DLQ is bound to the DLE, and that the DLQ does not itself have a DLQ. @@ -366,7 +371,7 @@ public class BDBUpgradeTest extends Qpid * DLQs are NOT enabled at the virtualhost level, we are testing recovery of the arguments * that turned it on for this specific queue. */ - public void testRecoveryOfQueueWithDLQ() throws Exception + public void xtestRecoveryOfQueueWithDLQ() throws Exception { JMXTestUtils jmxUtils = null; try @@ -501,7 +506,7 @@ public class BDBUpgradeTest extends Qpid return send; } - + /** * Generates a string of a given length consisting of the sequence 0,1,2,..,9,0,1,2. * Modified: qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HAClusterTwoNodeTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HAClusterTwoNodeTest.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HAClusterTwoNodeTest.java (original) +++ qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HAClusterTwoNodeTest.java Tue Apr 1 10:35:33 2014 @@ -34,8 +34,6 @@ import org.apache.qpid.server.store.berk import org.apache.qpid.test.utils.JMXTestUtils; import org.apache.qpid.test.utils.QpidBrokerTestCase; -import com.sleepycat.je.rep.ReplicationConfig; - public class HAClusterTwoNodeTest extends QpidBrokerTestCase { private static final long RECEIVE_TIMEOUT = 5000l; @@ -83,15 +81,6 @@ public class HAClusterTwoNodeTest extend private void startCluster(boolean designedPrimary) throws Exception { setSystemProperty("java.util.logging.config.file", "etc" + File.separator + "log.properties"); - - String storeConfigKeyPrefix = _clusterCreator.getStoreConfigKeyPrefix(); - - setVirtualHostConfigurationProperty(storeConfigKeyPrefix + ".repConfig(0).name", ReplicationConfig.INSUFFICIENT_REPLICAS_TIMEOUT); - setVirtualHostConfigurationProperty(storeConfigKeyPrefix + ".repConfig(0).value", "2 s"); - - setVirtualHostConfigurationProperty(storeConfigKeyPrefix + ".repConfig(1).name", ReplicationConfig.ELECTIONS_PRIMARY_RETRIES); - setVirtualHostConfigurationProperty(storeConfigKeyPrefix + ".repConfig(1).value", "0"); - _clusterCreator.configureClusterNodes(); _clusterCreator.setDesignatedPrimaryOnFirstBroker(designedPrimary); _brokerFailoverUrl = _clusterCreator.getConnectionUrlForAllClusterNodes(); Modified: qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HATestClusterCreator.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HATestClusterCreator.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HATestClusterCreator.java (original) +++ qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HATestClusterCreator.java Tue Apr 1 10:35:33 2014 @@ -19,6 +19,7 @@ */ package org.apache.qpid.server.store.berkeleydb; +import java.io.File; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.HashMap; @@ -26,7 +27,6 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; import java.util.concurrent.Callable; @@ -38,15 +38,19 @@ import java.util.concurrent.TimeUnit; import javax.jms.Connection; -import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.qpid.client.AMQConnection; import org.apache.qpid.client.AMQConnectionURL; -import org.apache.qpid.test.utils.TestBrokerConfiguration; +import org.apache.qpid.server.model.VirtualHost; +import org.apache.qpid.server.store.MessageStore; +import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeFactory; import org.apache.qpid.test.utils.QpidBrokerTestCase; +import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.url.URLSyntaxException; +import com.sleepycat.je.rep.ReplicationConfig; + public class HATestClusterCreator { protected static final Logger LOGGER = Logger.getLogger(HATestClusterCreator.class); @@ -65,17 +69,14 @@ public class HATestClusterCreator private static final int CONNECTDELAY = 75; private final QpidBrokerTestCase _testcase; - private final Map _brokerPortToBdbPortMap = new HashMap(); - private final Map _brokerConfigurations = new TreeMap(); + private final Map _brokerPortToBdbPortMap = new TreeMap(); private final String _virtualHostName; - private final String _vhostStoreConfigKeyPrefix; private final String _ipAddressOfBroker; private final String _groupName ; private final int _numberOfNodes; private int _bdbHelperPort; private int _primaryBrokerPort; - private String _vhostConfigKeyPrefix; public HATestClusterCreator(QpidBrokerTestCase testcase, String virtualHostName, int numberOfNodes) { @@ -84,8 +85,6 @@ public class HATestClusterCreator _groupName = "group" + _testcase.getName(); _ipAddressOfBroker = getIpAddressOfBrokerHost(); _numberOfNodes = numberOfNodes; - _vhostConfigKeyPrefix = "virtualhosts.virtualhost." + _virtualHostName + "."; - _vhostStoreConfigKeyPrefix = _vhostConfigKeyPrefix + "store."; _bdbHelperPort = 0; } @@ -104,13 +103,26 @@ public class HATestClusterCreator _bdbHelperPort = bdbPort; } - configureClusterNode(brokerPort, bdbPort); + String nodeName = getNodeNameForNodeAt(bdbPort); + Map messageStoreSettings = new HashMap(); + messageStoreSettings.put(MessageStore.STORE_PATH, System.getProperty("QPID_WORK") + File.separator + brokerPort); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.GROUP_NAME, _groupName); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.NODE_NAME, nodeName); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.NODE_ADDRESS, getNodeHostPortForNodeAt(bdbPort)); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.HELPER_ADDRESS, getHelperHostPort()); + Map repSettings = new HashMap(); + repSettings.put(ReplicationConfig.INSUFFICIENT_REPLICAS_TIMEOUT, "2 s"); + repSettings.put(ReplicationConfig.ELECTIONS_PRIMARY_RETRIES, "0"); + messageStoreSettings.put(ReplicatedEnvironmentFacadeFactory.REPLICATION_CONFIG, repSettings ); + TestBrokerConfiguration brokerConfiguration = _testcase.getBrokerConfiguration(brokerPort); brokerConfiguration.addJmxManagementConfiguration(); - collectConfig(brokerPort, brokerConfiguration, _testcase.getTestVirtualhosts()); + brokerConfiguration.setObjectAttribute(_virtualHostName, VirtualHost.TYPE, BDBHAVirtualHostFactory.TYPE); + brokerConfiguration.setObjectAttribute(_virtualHostName, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings); brokerPort = _testcase.getNextAvailable(bdbPort + 1); } + _primaryBrokerPort = getPrimaryBrokerPort(); } public void setDesignatedPrimaryOnFirstBroker(boolean designatedPrimary) throws Exception @@ -119,35 +131,27 @@ public class HATestClusterCreator { throw new IllegalArgumentException("Only two nodes groups have the concept of primary"); } - - final Entry brokerConfigEntry = _brokerConfigurations.entrySet().iterator().next(); - final String configKey = getConfigKey("highAvailability.designatedPrimary"); - brokerConfigEntry.getValue().getTestVirtualhosts().setProperty(configKey, Boolean.toString(designatedPrimary)); - _primaryBrokerPort = brokerConfigEntry.getKey(); + TestBrokerConfiguration config = _testcase.getBrokerConfiguration(_primaryBrokerPort); + @SuppressWarnings("unchecked") + Map storeSetting = (Map) config.getObjectAttributes(_virtualHostName).get(VirtualHost.MESSAGE_STORE_SETTINGS); + storeSetting.put(ReplicatedEnvironmentFacadeFactory.DESIGNATED_PRIMARY, designatedPrimary); + config.setObjectAttribute(_virtualHostName, VirtualHost.MESSAGE_STORE_SETTINGS, storeSetting); + config.setSaved(false); } - /** - * @param configKeySuffix "highAvailability.designatedPrimary", for example - * @return "virtualhost.test.store.highAvailability.designatedPrimary", for example - */ - private String getConfigKey(String configKeySuffix) + private int getPrimaryBrokerPort() { - final String configKey = StringUtils.substringAfter(_vhostStoreConfigKeyPrefix + configKeySuffix, "virtualhosts."); - return configKey; + return _brokerPortToBdbPortMap.keySet().iterator().next(); } public void startNode(final int brokerPortNumber) throws Exception { - final BrokerConfigHolder brokerConfigHolder = _brokerConfigurations.get(brokerPortNumber); - - _testcase.setTestVirtualhosts(brokerConfigHolder.getTestVirtualhosts()); - _testcase.startBroker(brokerPortNumber); } public void startCluster() throws Exception { - for (final Integer brokerPortNumber : _brokerConfigurations.keySet()) + for (final Integer brokerPortNumber : _brokerPortToBdbPortMap.keySet()) { startNode(brokerPortNumber); } @@ -155,21 +159,20 @@ public class HATestClusterCreator public void startClusterParallel() throws Exception { - final ExecutorService executor = Executors.newFixedThreadPool(_brokerConfigurations.size()); + final ExecutorService executor = Executors.newFixedThreadPool(_brokerPortToBdbPortMap.size()); try { List> brokers = new CopyOnWriteArrayList>(); - for (final Integer brokerPortNumber : _brokerConfigurations.keySet()) + for (final Integer brokerPortNumber : _brokerPortToBdbPortMap.keySet()) { - final BrokerConfigHolder brokerConfigHolder = _brokerConfigurations.get(brokerPortNumber); + final TestBrokerConfiguration brokerConfig = _testcase.getBrokerConfiguration(brokerPortNumber); Future future = executor.submit(new Callable() { public Object call() { try { - _testcase.startBroker(brokerPortNumber, brokerConfigHolder.getTestConfiguration(), - brokerConfigHolder.getTestVirtualhosts()); + _testcase.startBroker(brokerPortNumber, brokerConfig); return "OK"; } catch (Exception e) @@ -213,7 +216,7 @@ public class HATestClusterCreator public void stopCluster() throws Exception { - for (final Integer brokerPortNumber : _brokerConfigurations.keySet()) + for (final Integer brokerPortNumber : _brokerPortToBdbPortMap.keySet()) { try { @@ -345,22 +348,9 @@ public class HATestClusterCreator public Set getBrokerPortNumbersForNodes() { - return new HashSet(_brokerConfigurations.keySet()); + return new HashSet(_brokerPortToBdbPortMap.keySet()); } - private void configureClusterNode(final int brokerPort, final int bdbPort) throws Exception - { - final String nodeName = getNodeNameForNodeAt(bdbPort); - - - _testcase.setVirtualHostConfigurationProperty(_vhostConfigKeyPrefix + "type", BDBHAVirtualHostFactory.TYPE); - _testcase.setVirtualHostConfigurationProperty(_vhostStoreConfigKeyPrefix + "class", "org.apache.qpid.server.store.berkeleydb.BDBHAMessageStore"); - - _testcase.setVirtualHostConfigurationProperty(_vhostStoreConfigKeyPrefix + "highAvailability.groupName", _groupName); - _testcase.setVirtualHostConfigurationProperty(_vhostStoreConfigKeyPrefix + "highAvailability.nodeName", nodeName); - _testcase.setVirtualHostConfigurationProperty(_vhostStoreConfigKeyPrefix + "highAvailability.nodeHostPort", getNodeHostPortForNodeAt(bdbPort)); - _testcase.setVirtualHostConfigurationProperty(_vhostStoreConfigKeyPrefix + "highAvailability.helperHostPort", getHelperHostPort()); - } public String getIpAddressOfBrokerHost() { @@ -375,55 +365,19 @@ public class HATestClusterCreator } } - private void collectConfig(final int brokerPortNumber, TestBrokerConfiguration testConfiguration, XMLConfiguration testVirtualhosts) - { - _brokerConfigurations.put(brokerPortNumber, new BrokerConfigHolder(testConfiguration, - (XMLConfiguration) testVirtualhosts.clone())); - } - - public class BrokerConfigHolder - { - private final TestBrokerConfiguration _testConfiguration; - private final XMLConfiguration _testVirtualhosts; - - public BrokerConfigHolder(TestBrokerConfiguration testConfiguration, XMLConfiguration testVirtualhosts) - { - _testConfiguration = testConfiguration; - _testVirtualhosts = testVirtualhosts; - } - - public TestBrokerConfiguration getTestConfiguration() - { - return _testConfiguration; - } - - public XMLConfiguration getTestVirtualhosts() - { - return _testVirtualhosts; - } - } - public void modifyClusterNodeBdbAddress(int brokerPortNumberToBeMoved, int newBdbPort) { - final BrokerConfigHolder brokerConfigHolder = _brokerConfigurations.get(brokerPortNumberToBeMoved); - final XMLConfiguration virtualHostConfig = brokerConfigHolder.getTestVirtualhosts(); - - final String configKey = getConfigKey("highAvailability.nodeHostPort"); - final String oldBdbHostPort = virtualHostConfig.getString(configKey); - - final String[] oldHostAndPort = StringUtils.split(oldBdbHostPort, ":"); - final String oldHost = oldHostAndPort[0]; - - final String newBdbHostPort = oldHost + ":" + newBdbPort; + TestBrokerConfiguration config = _testcase.getBrokerConfiguration(brokerPortNumberToBeMoved); - virtualHostConfig.setProperty(configKey, newBdbHostPort); - collectConfig(brokerPortNumberToBeMoved, brokerConfigHolder.getTestConfiguration(), virtualHostConfig); + @SuppressWarnings("unchecked") + Map storeSetting = (Map) config.getObjectAttributes(_virtualHostName).get(VirtualHost.MESSAGE_STORE_SETTINGS); + String oldBdbHostPort = (String) storeSetting.get(ReplicatedEnvironmentFacadeFactory.NODE_ADDRESS); + String[] oldHostAndPort = StringUtils.split(oldBdbHostPort, ":"); + String oldHost = oldHostAndPort[0]; + String newBdbHostPort = oldHost + ":" + newBdbPort; + storeSetting.put(ReplicatedEnvironmentFacadeFactory.NODE_ADDRESS, newBdbHostPort); + config.setObjectAttribute(_virtualHostName, VirtualHost.MESSAGE_STORE_SETTINGS, storeSetting); + config.setSaved(false); } - public String getStoreConfigKeyPrefix() - { - return _vhostStoreConfigKeyPrefix; - } - - } Modified: qpid/trunk/qpid/java/broker-core/pom.xml URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/pom.xml?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/pom.xml (original) +++ qpid/trunk/qpid/java/broker-core/pom.xml Tue Apr 1 10:35:33 2014 @@ -60,28 +60,7 @@ slf4j-log4j12 - - commons-logging - commons-logging - - - - commons-beanutils - commons-beanutils-core - - - - commons-digester - commons-digester - - - commons-beanutils - commons-beanutils - - - - - + commons-codec commons-codec @@ -92,16 +71,6 @@ - commons-collections - commons-collections - - - - commons-configuration - commons-configuration - - - org.codehaus.jackson jackson-core-asl Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecoverer.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecoverer.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecoverer.java (original) +++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecoverer.java Tue Apr 1 10:35:33 2014 @@ -41,7 +41,7 @@ public class PreferencesProviderRecovere AuthenticationProvider authenticationProvider = RecovererHelper.verifyOnlyParentIsOfType(AuthenticationProvider.class, parents); Map attributes = entry.getAttributes(); String type = MapValueConverter.getStringAttribute(PreferencesProvider.TYPE, attributes); - PreferencesProviderFactory factory = PreferencesProviderFactory.FACTORIES.get(type); + PreferencesProviderFactory factory = PreferencesProviderFactory.FACTORY_LOADER.get(type); return factory.createInstance(entry.getId(), attributes, authenticationProvider); } Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java (original) +++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java Tue Apr 1 10:35:33 2014 @@ -1,4 +1,4 @@ -package org.apache.qpid.server.configuration.startup;/* +/* * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -19,10 +19,13 @@ package org.apache.qpid.server.configura * */ +package org.apache.qpid.server.configuration.startup; + import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; + import org.apache.qpid.server.configuration.ConfigurationEntry; import org.apache.qpid.server.configuration.ConfigurationEntryStore; import org.apache.qpid.server.model.Broker; @@ -30,6 +33,7 @@ import org.apache.qpid.server.model.Brok public abstract class StoreUpgrader { + private static Map _upgraders = new HashMap(); // Note: don't use externally defined constants in upgraders in case they change, the values here MUST stay the same @@ -134,7 +138,9 @@ public abstract class StoreUpgrader } }; - private StoreUpgrader(String version) + final static StoreUpgrader UPGRADE_1_3 = new StoreUpgrader1_3("1.3"); + + protected StoreUpgrader(String version) { _upgraders.put(version, this); } Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java (original) +++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java Tue Apr 1 10:35:33 2014 @@ -60,6 +60,7 @@ import org.codehaus.jackson.node.ArrayNo public class MemoryConfigurationEntryStore implements ConfigurationEntryStore { + public static final String STORE_TYPE = "memory"; private static final String DEFAULT_BROKER_NAME = "Broker"; @@ -545,7 +546,11 @@ public class MemoryConfigurationEntrySto } else if (fieldNode.isObject()) { - // ignore, in-line objects are not supported yet + if (attributes == null) + { + attributes = new HashMap(); + } + attributes.put(fieldName, toObject(fieldNode) ); } else { Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java (original) +++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java Tue Apr 1 10:35:33 2014 @@ -20,8 +20,6 @@ */ package org.apache.qpid.server.logging.subjects; -import org.apache.qpid.server.virtualhost.VirtualHost; - import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.STORE_FORMAT; public class MessageStoreLogSubject extends AbstractLogSubject Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java (original) +++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java Tue Apr 1 10:35:33 2014 @@ -34,10 +34,11 @@ public class Model * * 1.0 Initial version * 1.1 Addition of mandatory virtual host type / different types of virtual host - * + * 1.3 Truststore/Keystore type => trustStoreType / type => keyStoreType + * 1.4 Separate messageStoreSettings from virtualhost */ public static final int MODEL_MAJOR_VERSION = 1; - public static final int MODEL_MINOR_VERSION = 3; + public static final int MODEL_MINOR_VERSION = 4; public static final String MODEL_VERSION = MODEL_MAJOR_VERSION + "." + MODEL_MINOR_VERSION; private static final Model MODEL_INSTANCE = new Model(); Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java (original) +++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java Tue Apr 1 10:35:33 2014 @@ -22,8 +22,6 @@ package org.apache.qpid.server.model; import java.util.Collection; -import org.apache.qpid.server.message.MessageInstance; -import org.apache.qpid.server.queue.QueueEntry; import org.apache.qpid.server.queue.QueueEntryVisitor; @ManagedObject Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original) +++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java Tue Apr 1 10:35:33 2014 @@ -20,13 +20,14 @@ */ package org.apache.qpid.server.model; +import java.security.AccessControlException; +import java.util.Collection; +import java.util.Map; + import org.apache.qpid.server.configuration.updater.TaskExecutor; import org.apache.qpid.server.message.MessageInstance; import org.apache.qpid.server.store.MessageStore; -import java.security.AccessControlException; -import java.util.Collection; -import java.util.Map; import java.util.UUID; @ManagedObject( managesChildren = true ) @@ -48,19 +49,16 @@ public interface VirtualHost getSupportedExchangeTypes(); @@ -84,18 +82,6 @@ public interface VirtualHost getMessageStoreSettings(); + + @ManagedAttribute + Map getConfigurationStoreSettings(); @ManagedStatistic long getQueueCount(); Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java (original) +++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java Tue Apr 1 10:35:33 2014 @@ -39,7 +39,6 @@ import org.apache.qpid.server.configurat import org.apache.qpid.server.security.SecurityManager; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; import org.apache.qpid.server.store.ConfiguredObjectRecord; -import org.apache.qpid.server.util.MapValueConverter; import org.apache.qpid.server.util.ServerScopedRuntimeException; import javax.security.auth.Subject; @@ -415,6 +414,25 @@ public abstract class AbstractConfigured } } + > Object getAttribute(String name, T parent, String parentAttributeName) + { + Object value = getActualAttribute(name); + if (value != null ) + { + return value; + } + if (parent != null) + { + value = parent.getAttribute(parentAttributeName); + if (value != null) + { + return value; + } + } + return getDefaultAttribute(name); + } + + @Override public String getDescription() { @@ -546,10 +564,19 @@ public abstract class AbstractConfigured return getClass().getSimpleName() + " [id=" + _id + ", name=" + getName() + "]"; } + public ConfiguredObjectRecord asObjectRecord() { return new ConfiguredObjectRecord() { + + @Override + public String toString() + { + return getClass().getSimpleName() + "[name=" + getName() + ", categoryClass=" + getCategoryClass() + ", type=" + + getType() + ", id=" + getId() + "]"; + } + @Override public UUID getId() { @@ -598,9 +625,11 @@ public abstract class AbstractConfigured } return parents; } + }; } + @SuppressWarnings("unchecked") @Override public C createChild(Class childClass, Map attributes, ConfiguredObject... otherParents) Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java?rev=1583597&r1=1583596&r2=1583597&view=diff ============================================================================== --- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original) +++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java Tue Apr 1 10:35:33 2014 @@ -43,6 +43,7 @@ import org.apache.qpid.server.logging.Ev import org.apache.qpid.server.logging.LogRecorder; import org.apache.qpid.server.logging.messages.BrokerMessages; import org.apache.qpid.server.model.*; +import org.apache.qpid.server.plugin.MessageStoreFactory; import org.apache.qpid.server.plugin.PreferencesProviderFactory; import org.apache.qpid.server.plugin.VirtualHostFactory; import org.apache.qpid.server.security.SecurityManager; @@ -50,7 +51,6 @@ import org.apache.qpid.server.security.S import org.apache.qpid.server.security.access.Operation; import org.apache.qpid.server.security.auth.manager.SimpleAuthenticationManager; import org.apache.qpid.server.stats.StatisticsGatherer; -import org.apache.qpid.server.store.MessageStoreCreator; import org.apache.qpid.server.util.MapValueConverter; import org.apache.qpid.server.virtualhost.VirtualHostRegistry; import org.apache.qpid.util.SystemUtils; @@ -197,7 +197,7 @@ public class BrokerAdapter getSupportedPreferencesProviderTypes() { - return PreferencesProviderFactory.FACTORIES.getDescriptiveTypes(); + return PreferencesProviderFactory.FACTORY_LOADER.getSupportedTypes(); } @Override @@ -969,7 +969,7 @@ public class BrokerAdapter