summaryrefslogtreecommitdiff
path: root/qpid/java/bdbstore/src
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2014-05-20 15:04:11 +0000
committerKeith Wall <kwall@apache.org>2014-05-20 15:04:11 +0000
commit65af0e588588f15bbb1498403ee49f3c41ed04a0 (patch)
tree6c249ba8f011e0b033caa5ef77ec10fc5dbcfdc4 /qpid/java/bdbstore/src
parent7371feb185388d4bedda4ac10ee7c78a17023a7e (diff)
downloadqpid-python-65af0e588588f15bbb1498403ee49f3c41ed04a0.tar.gz
QPID-5715: [Java Broker] Make virtualhosts respect the states ACTIVE and STOPPED
* Changes in virtualhost state are now persisted to store. * VirtualHostState eliminated. The PASSIVE state used when a BDB HA Virtualhost is in replica is replaced by UNAVAILABLE. Work by me and Andrew MacBean <andymacbean@gmail.com>. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1596281 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore/src')
-rw-r--r--qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java37
1 files changed, 34 insertions, 3 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
index c019465176..4061da177b 100644
--- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
+++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
@@ -44,6 +44,8 @@ import com.sleepycat.je.rep.util.ReplicationGroupAdmin;
import com.sleepycat.je.rep.utilint.HostPortPair;
import org.apache.log4j.Logger;
+
+import org.apache.qpid.server.exchange.ExchangeImpl;
import org.apache.qpid.server.logging.messages.ConfigStoreMessages;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.BrokerModel;
@@ -57,6 +59,7 @@ import org.apache.qpid.server.model.StateTransition;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.VirtualHostNode;
import org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory;
+import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.server.store.DurableConfigurationStore;
import org.apache.qpid.server.store.VirtualHostStoreUpgraderAndRecoverer;
@@ -66,7 +69,6 @@ import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironment
import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeFactory;
import org.apache.qpid.server.store.berkeleydb.replication.ReplicationGroupListener;
import org.apache.qpid.server.util.ServerScopedRuntimeException;
-import org.apache.qpid.server.virtualhost.VirtualHostState;
import org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode;
@ManagedObject( category = false, type = "BDB_HA" )
@@ -702,12 +704,41 @@ public class BDBHAVirtualHostNodeImpl extends AbstractVirtualHostNode<BDBHAVirtu
ReplicaVirtualHost(Map<String, Object> attributes, VirtualHostNode<?> virtualHostNode)
{
super(attributes, virtualHostNode);
- setState(VirtualHostState.PASSIVE);
}
@Override
- public void onCreate()
+ protected <C extends ConfiguredObject> C addChild(final Class<C> childClass,
+ final Map<String, Object> attributes,
+ final ConfiguredObject... otherParents)
+ {
+ throwUnsupportedForReplica();
+ return null;
+ }
+
+ @Override
+ public ExchangeImpl createExchange(final Map<String, Object> attributes)
+ {
+ throwUnsupportedForReplica();
+ return null;
+ }
+
+ @Override
+ public AMQQueue<?> createQueue(final Map<String, Object> attributes)
+ {
+ throwUnsupportedForReplica();
+ return null;
+ }
+
+ @Override
+ public State getState()
+ {
+ return State.UNAVAILABLE;
+ }
+
+ private void throwUnsupportedForReplica()
{
+ throw new IllegalStateException("The virtual host state of " + getState()
+ + " does not permit this operation.");
}
}