You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2017/09/16 11:14:28 UTC
qpid-broker-j git commit: QPID-7773: [Java Broker] [Perf Tests]
Really restore compatibility with older Java Brokers.
Repository: qpid-broker-j
Updated Branches:
refs/heads/master f8e43f2e5 -> a0eaf5c15
QPID-7773: [Java Broker] [Perf Tests] Really restore compatibility with older Java Brokers.
Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/a0eaf5c1
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/a0eaf5c1
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/a0eaf5c1
Branch: refs/heads/master
Commit: a0eaf5c157554489da55960f20dd3a4f7292f921
Parents: f8e43f2
Author: Keith Wall <ke...@gmail.com>
Authored: Sat Sep 16 12:13:07 2017 +0100
Committer: Keith Wall <ke...@gmail.com>
Committed: Sat Sep 16 12:14:10 2017 +0100
----------------------------------------------------------------------
.../disttest/jms/QpidRestAPIQueueCreator.java | 39 +++++++++++++++-----
1 file changed, 29 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a0eaf5c1/perftests/src/main/java/org/apache/qpid/disttest/jms/QpidRestAPIQueueCreator.java
----------------------------------------------------------------------
diff --git a/perftests/src/main/java/org/apache/qpid/disttest/jms/QpidRestAPIQueueCreator.java b/perftests/src/main/java/org/apache/qpid/disttest/jms/QpidRestAPIQueueCreator.java
index 475bef5..b65c21e 100644
--- a/perftests/src/main/java/org/apache/qpid/disttest/jms/QpidRestAPIQueueCreator.java
+++ b/perftests/src/main/java/org/apache/qpid/disttest/jms/QpidRestAPIQueueCreator.java
@@ -24,8 +24,8 @@ import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
-import java.util.Collections;
-import java.util.HashMap;
+import java.util.Collection;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -36,7 +36,6 @@ import javax.jms.MessageConsumer;
import javax.jms.QueueBrowser;
import javax.jms.Session;
-import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpHost;
import org.apache.http.HttpRequest;
@@ -67,7 +66,6 @@ public class QpidRestAPIQueueCreator implements QueueCreator
{
private static final Logger LOGGER = LoggerFactory.getLogger(QpidRestAPIQueueCreator.class);
private static int _drainPollTimeout = Integer.getInteger(QUEUE_CREATOR_DRAIN_POLL_TIMEOUT, 500);
- private static final TypeReference<List<HashMap<String, Object>>> MAP_TYPE_REFERENCE = new TypeReference<List<HashMap<String,Object>>>(){};
private final HttpHost _management;
private final String _virtualhostnode;
@@ -87,8 +85,7 @@ public class QpidRestAPIQueueCreator implements QueueCreator
_management = HttpHost.create(System.getProperty("perftests.manangement-url", "http://localhost:8080"));
_queueApiUrl = System.getProperty("perftests.manangement-api-queue", "/api/latest/queue/%s/%s/%s");
- // QPID-7773: singletonModelObjectResponseAsList caused Java Broker v7.0 to return lists, like older versions did.
- _brokerApiUrl = System.getProperty("perftests.manangement-api-broker", "/api/latest/broker?singletonModelObjectResponseAsList=true");
+ _brokerApiUrl = System.getProperty("perftests.manangement-api-broker", "/api/latest/broker");
_credentialsProvider = getCredentialsProvider(managementUser, managementPassword);
}
@@ -242,11 +239,33 @@ public class QpidRestAPIQueueCreator implements QueueCreator
}
}
+ @SuppressWarnings("unchecked")
private Map<String, Object> managementQueryBroker(final HttpClientContext context)
{
HttpGet get = new HttpGet(_brokerApiUrl);
- final List<Map<String, Object>> maps = executeManagement(get, context);
- return maps.isEmpty() ? Collections.emptyMap() : maps.get(0);
+ Object obj = executeManagement(get, context);
+ if (obj == null)
+ {
+ throw new IllegalStateException(String.format("Unexpected null response from management query '%s'", get));
+ }
+ else if (obj instanceof Collection)
+ {
+ Iterator itr = ((Collection) obj).iterator();
+ if (!itr.hasNext())
+ {
+ throw new IllegalStateException(String.format("Unexpected empty list response from management query '%s'", get));
+ }
+ obj = itr.next();
+ }
+
+ if (obj instanceof Map)
+ {
+ return (Map<String, Object>) obj;
+ }
+ else
+ {
+ throw new IllegalStateException(String.format("Unexpected response '%s' from management query '%s'", obj, get));
+ }
}
private void managementCreateQueue(final String name, final HttpClientContext context)
@@ -266,7 +285,7 @@ public class QpidRestAPIQueueCreator implements QueueCreator
executeManagement(delete, context);
}
- private List<Map<String, Object>> executeManagement(final HttpRequest httpRequest, final HttpClientContext context)
+ private Object executeManagement(final HttpRequest httpRequest, final HttpClientContext context)
{
try(CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCredentialsProvider(_credentialsProvider)
@@ -287,7 +306,7 @@ public class QpidRestAPIQueueCreator implements QueueCreator
response.getEntity().writeTo(bos);
if (bos.size() > 0)
{
- return new ObjectMapper().readValue(bos.toByteArray(), MAP_TYPE_REFERENCE);
+ return new ObjectMapper().readValue(bos.toByteArray(), Object.class);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org