summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-12-27 17:03:48 +0000
committerAlex Rudyy <orudyy@apache.org>2013-12-27 17:03:48 +0000
commit4e99d2f6a47801531ddd443fc120fee79e0568b2 (patch)
tree68b19d781ac726ff95319a31fecdeab5b9b4f045 /qpid/java
parent24382d0a05b7203e62a3d6f09364518e06a23a56 (diff)
downloadqpid-python-4e99d2f6a47801531ddd443fc120fee79e0568b2.tar.gz
QPID-5412: Stop saving virtual host state in conviguration store
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-broker-bdb-ha@1553696 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/VirtualHostRestTest.java19
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java13
-rw-r--r--qpid/java/systests/etc/config-systests.json2
4 files changed, 31 insertions, 9 deletions
diff --git a/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/VirtualHostRestTest.java b/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/VirtualHostRestTest.java
index 3d92573dea..7b0877eea7 100644
--- a/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/VirtualHostRestTest.java
+++ b/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/VirtualHostRestTest.java
@@ -21,6 +21,7 @@
package org.apache.qpid.server.store.berkeleydb;
import java.io.File;
+import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -70,6 +71,8 @@ public class VirtualHostRestTest extends QpidRestTestCase
responseCode = getRestTestHelper().submitRequest("/rest/virtualhost/" + hostName, "PUT", hostData);
assertEquals("Unexpected response code for virtual host update status", 200, responseCode);
+ waitForVirtualHostActivation(hostName, 10000l);
+
Map<String, Object> replicationNodeDetails = getRestTestHelper().getJsonAsSingletonList("/rest/replicationnode/" + hostName + "/" + nodeName);
assertLocalNode(nodeData, replicationNodeDetails);
try
@@ -77,7 +80,7 @@ public class VirtualHostRestTest extends QpidRestTestCase
// make sure that the host is saved in the broker store
restartBroker();
- Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList("/rest/virtualhost/" + hostName);
+ Map<String, Object> hostDetails = waitForVirtualHostActivation(hostName, 10000l);
Asserts.assertVirtualHost(hostName, hostDetails);
assertEquals("Unexpected virtual host type", BDBHAVirtualHostFactory.TYPE.toString(), hostDetails.get(VirtualHost.TYPE));
@@ -109,4 +112,18 @@ public class VirtualHostRestTest extends QpidRestTestCase
}
}
+ private Map<String, Object> waitForVirtualHostActivation(String hostName, long timeout) throws IOException
+ {
+ Map<String, Object> hostDetails = null;
+ long startTime = System.currentTimeMillis();
+ boolean isActive = false;
+ do
+ {
+ hostDetails = getRestTestHelper().getJsonAsSingletonList("/rest/virtualhost/" + hostName);
+ isActive = hostDetails.get(VirtualHost.STATE).equals(State.ACTIVE.name());
+ }
+ while(!isActive && System.currentTimeMillis() - startTime < timeout );
+ assertTrue("Unexpected virtual host state:" + hostDetails.get(VirtualHost.STATE), isActive);
+ return hostDetails;
+ }
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
index d4397081d3..40560be379 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
@@ -290,6 +290,11 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
private VirtualHost createVirtualHost(final Map<String, Object> attributes)
throws AccessControlException, IllegalArgumentException
{
+ State desiredState = MapValueConverter.getEnumAttribute(State.class, VirtualHost.STATE, attributes, State.ACTIVE);
+
+ //TODO: do no save state attribute if it is present
+ attributes.remove(VirtualHost.STATE);
+
final VirtualHostAdapter virtualHostAdapter = new VirtualHostAdapter(UUID.randomUUID(), attributes, this,
_statisticsGatherer, getTaskExecutor());
addVirtualHost(virtualHostAdapter);
@@ -297,7 +302,6 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
// permission has already been granted to create the virtual host
// disable further access check on other operations, e.g. create exchange
SecurityManager.setAccessChecksDisabled(true);
- State desiredState = MapValueConverter.getEnumAttribute(State.class, VirtualHost.STATE, attributes, State.ACTIVE);
try
{
virtualHostAdapter.setDesiredState(State.INITIALISING, desiredState);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
index 7968b6d00d..f83d5b81db 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
@@ -1136,7 +1136,6 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
}
else if (desiredState == State.QUIESCED)
{
- setAttribute(VirtualHost.STATE, getActualState(), State.QUIESCED);
return true;
}
return false;
@@ -1266,16 +1265,18 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
// TODO: a hack to change a virtual host state only
if (attributes.size() == 2 && attributes.containsKey(STATE) && getName().equals(attributes.get(NAME)))
{
- State newState = MapValueConverter.getEnumAttribute(State.class, STATE, attributes);
+ State desiredState = MapValueConverter.getEnumAttribute(State.class, STATE, attributes);
State actualState = getActualState();
+
if (LOGGER.isDebugEnabled())
{
- LOGGER.debug(String.format("Change virtual host %s state from %s to %s", getName(), actualState.toString(),
- newState.toString()));
+ LOGGER.debug(String.format("Change state of virtual host '%s' from '%s' to '%s'", getName(),
+ actualState.toString(), desiredState.toString()));
}
- if (actualState != newState && setState(actualState, newState))
+
+ if (actualState != desiredState)
{
- super.changeAttributes(Collections.<String, Object>singletonMap(STATE, newState));
+ setDesiredState(actualState, desiredState);
}
}
else
diff --git a/qpid/java/systests/etc/config-systests.json b/qpid/java/systests/etc/config-systests.json
index 12a8a5c5a6..55b73a4263 100644
--- a/qpid/java/systests/etc/config-systests.json
+++ b/qpid/java/systests/etc/config-systests.json
@@ -22,7 +22,7 @@
"name": "Broker",
"defaultVirtualHost" : "test",
"storeVersion": 1,
- "modelVersion": "1.0",
+ "modelVersion": "1.3",
"authenticationproviders" : [ {
"name" : "plain",
"type" : "PlainPasswordFile",