summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2015-02-25 08:32:40 +0000
committerKeith Wall <kwall@apache.org>2015-02-25 08:32:40 +0000
commit8322532da30ec68bf4ebdf725adbdaef19901ff4 (patch)
tree3501749f29ad3fbedfc70a429daed609a13a53ac
parentba21d36ab3d8b9fcfe06d1df14b3707af8d53ecd (diff)
downloadqpid-python-8322532da30ec68bf4ebdf725adbdaef19901ff4.tar.gz
QPID-6410: [Java Broker] Disambiguate the connection adapter name by adding a connection ID to the name
Merged from trunk with command. svn merge -c 1661929 https://svn.apache.org/repos/asf/qpid/trunk git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.32@1662180 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java2
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java2
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBeanTest.java6
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java18
-rw-r--r--qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ConnectionRestTest.java12
5 files changed, 29 insertions, 11 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
index 62f0e6ae06..e03904789d 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
@@ -78,7 +78,7 @@ public final class ConnectionAdapter extends AbstractConfiguredObject<Connection
{
Map<String,Object> attributes = new HashMap<String, Object>();
attributes.put(ID, UUID.randomUUID());
- attributes.put(NAME, _connection.getRemoteAddressString().replaceAll("/", ""));
+ attributes.put(NAME, "[" + _connection.getConnectionId() + "] " + _connection.getRemoteAddressString().replaceAll("/", ""));
attributes.put(DURABLE, false);
return attributes;
}
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java
index a016ff9d9d..0787e404fa 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java
@@ -100,7 +100,7 @@ public class ConnectionMBean extends AbstractStatisticsGatheringMBean<Connection
public String getObjectInstanceName()
{
- return ObjectName.quote(getRemoteAddress());
+ return ObjectName.quote(getConfiguredObject().getName());
}
@Override
diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBeanTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBeanTest.java
index 8754f9a465..232094ce9e 100644
--- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBeanTest.java
+++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBeanTest.java
@@ -159,9 +159,9 @@ public class ConnectionMBeanTest extends TestCase
public void testGetObjectInstanceName()
{
- String remoteAddress = "testRemoteAddress";
- String quotedRemoteAddress = "\"testRemoteAddress\"";
- when(_mockConnection.getAttribute(Connection.REMOTE_ADDRESS)).thenReturn(remoteAddress);
+ String name = "[1] 127.0.0.1:5555";
+ String quotedRemoteAddress = "\"" + name +"\"";
+ when(_mockConnection.getName()).thenReturn(name);
String objectInstanceName = _connectionMBean.getObjectInstanceName();
assertEquals(quotedRemoteAddress, objectInstanceName);
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
index 469e6ce52b..31d148a529 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
@@ -31,10 +31,12 @@ import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLDecoder;
+import java.net.URLEncoder;
import java.security.GeneralSecurityException;
import java.security.KeyStore;
import java.util.Collections;
@@ -575,4 +577,20 @@ public class RestTestHelper
}
}
+ public String encode(String value, String encoding) throws UnsupportedEncodingException
+ {
+ return URLEncoder.encode(value, encoding).replace("+", "%20");
+ }
+
+ public String encodeAsUTF(String value)
+ {
+ try
+ {
+ return encode(value, "UTF8");
+ }
+ catch(UnsupportedEncodingException e)
+ {
+ throw new RuntimeException("Unsupported encoding UTF8", e);
+ }
+ }
}
diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ConnectionRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ConnectionRestTest.java
index 439e592a7e..2142004411 100644
--- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ConnectionRestTest.java
+++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ConnectionRestTest.java
@@ -21,7 +21,6 @@
package org.apache.qpid.systest.rest;
import java.io.IOException;
-import java.net.URLDecoder;
import java.util.List;
import java.util.Map;
@@ -112,7 +111,7 @@ public class ConnectionRestTest extends QpidRestTestCase
String connectionName = getConnectionName();
Map<String, Object> connectionDetails = getRestTestHelper().getJsonAsSingletonList("connection/test/test/"
- + URLDecoder.decode(connectionName, "UTF-8"));
+ + getRestTestHelper().encodeAsUTF(connectionName));
assertConnection(connectionDetails);
}
@@ -124,7 +123,7 @@ public class ConnectionRestTest extends QpidRestTestCase
List<Map<String, Object>> connections = getRestTestHelper().getJsonAsList("connection/test/test");
assertEquals("Unexpected number of connections before deletion", 1, connections.size());
- String connectionUrl = "connection/test/test/" + URLDecoder.decode(connectionName, "UTF-8");
+ String connectionUrl = "connection/test/test/" + getRestTestHelper().encodeAsUTF(connectionName);
getRestTestHelper().submitRequest(connectionUrl, "DELETE", HttpServletResponse.SC_OK);
connections = getRestTestHelper().getJsonAsList("connection/test/test");
@@ -161,7 +160,7 @@ public class ConnectionRestTest extends QpidRestTestCase
String connectionName = getConnectionName();
List<Map<String, Object>> sessions = getRestTestHelper().getJsonAsList("session/test/test/"
- + URLDecoder.decode(connectionName, "UTF-8"));
+ + getRestTestHelper().encodeAsUTF(connectionName));
assertEquals("Unexpected number of sessions", 1, sessions.size());
assertSession(sessions.get(0), (AMQSession<?, ?>) _session);
}
@@ -172,7 +171,7 @@ public class ConnectionRestTest extends QpidRestTestCase
String connectionName = getConnectionName();
List<Map<String, Object>> sessions = getRestTestHelper().getJsonAsList("session/test/test/"
- + URLDecoder.decode(connectionName, "UTF-8") + "/" + ((AMQSession<?, ?>) _session).getChannelId());
+ + getRestTestHelper().encodeAsUTF(connectionName) + "/" + ((AMQSession<?, ?>) _session).getChannelId());
assertEquals("Unexpected number of sessions", 1, sessions.size());
assertSession(sessions.get(0), (AMQSession<?, ?>) _session);
}
@@ -187,7 +186,8 @@ public class ConnectionRestTest extends QpidRestTestCase
String connectionName = getConnectionName();
List<Map<String, Object>> sessions = getRestTestHelper().getJsonAsList("session/test/test/"
- + URLDecoder.decode(connectionName, "UTF-8") + "/" + ((AMQSession<?, ?>) _session).getChannelId());
+ + getRestTestHelper().encodeAsUTF(connectionName)
+ + "/" + ((AMQSession<?, ?>) _session).getChannelId());
assertEquals("Unexpected number of sessions", 1, sessions.size());
final Map<String, Object> sessionData = sessions.get(0);