summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-01-18 17:55:03 +0000
committerAlex Rudyy <orudyy@apache.org>2013-01-18 17:55:03 +0000
commit3d736a72c6e202d1213d0b27ff18bb9b237cdfd8 (patch)
treebe811e1f02aaa7e858745c487519ae603e1c8ae9
parentdb3b0c970f9a3b681458c3950b645e7d469d5bae (diff)
downloadqpid-python-3d736a72c6e202d1213d0b27ff18bb9b237cdfd8.tar.gz
QPID-4390: Change port defaults to provide a default port name based on port value, binding address and protocol, remove name field from a port adapter
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-broker-config-qpid-4390@1435276 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java1
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java1
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java15
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java31
-rw-r--r--qpid/java/broker/src/main/resources/default.json22
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java8
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java1
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java7
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java4
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java12
11 files changed, 49 insertions, 55 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
index 9d1eb12f7e..7860c6ee05 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
@@ -196,6 +196,8 @@ public class HttpManagement extends AbstractPluginAdapter
{
final Collection<Protocol> protocols = port.getProtocols();
Connector connector = null;
+
+ //TODO: what to do if protocol HTTP and transport SSL?
if (protocols.contains(Protocol.HTTP))
{
connector = new SelectChannelConnector();
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java
index c86f2e6ff1..d6fae20a68 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java
@@ -201,6 +201,7 @@ public class PortConfigurationHelper
serverConfig);
Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(Port.NAME, port + "-" + Protocol.ProtocolType.AMQP);
attributes.put(Port.PROTOCOLS, supported);
attributes.put(Port.TRANSPORTS, Collections.singleton(transport));
attributes.put(Port.PORT, port);
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java
index a377ff2c32..cb31228c71 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java
@@ -312,6 +312,7 @@ public class XMLConfigurationEntryStore implements ConfigurationEntryStore
attributes.put(Port.TRANSPORTS, Collections.singleton(transport));
attributes.put(Port.PORT, port);
attributes.put(Port.BINDING_ADDRESS, null);
+ attributes.put(Port.NAME, port + "-" + protocol);
return new ConfigurationEntry(UUID.randomUUID(), Port.class.getSimpleName(), attributes, null, this);
}
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
index c83d776bd1..090bb59835 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
@@ -45,7 +45,6 @@ import org.apache.qpid.server.model.VirtualHostAlias;
public class PortAdapter extends AbstractAdapter implements Port
{
- private final String _name;
private final Broker _broker;
private AuthenticationProvider _authenticationProvider;
@@ -61,14 +60,6 @@ public class PortAdapter extends AbstractAdapter implements Port
addParent(Broker.class, broker);
- String name = (String)getAttribute(NAME);
- if (name == null)
- {
- Integer port = getPort();
- String bindingAddress = getBindingAddress();
- name = bindingAddress == null? port + "" : bindingAddress + ":" + port;
- }
- _name = name;
}
@Override
@@ -151,7 +142,7 @@ public class PortAdapter extends AbstractAdapter implements Port
@Override
public String getName()
{
- return _name;
+ return (String)getAttribute(NAME);
}
@Override
@@ -237,10 +228,6 @@ public class PortAdapter extends AbstractAdapter implements Port
{
return getId();
}
- else if(NAME.equals(name))
- {
- return getName();
- }
else if(STATE.equals(name))
{
return getActualState();
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java
index 8c2ac664fa..6488405d64 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java
@@ -42,19 +42,11 @@ import org.apache.qpid.server.util.MapValueConverter;
public class PortFactory
{
public static final int DEFAULT_AMQP_SEND_BUFFER_SIZE = 262144;
-
public static final int DEFAULT_AMQP_RECEIVE_BUFFER_SIZE = 262144;
-
public static final boolean DEFAULT_AMQP_NEED_CLIENT_AUTH = false;
-
public static final boolean DEFAULT_AMQP_WANT_CLIENT_AUTH = false;
-
public static final boolean DEFAULT_AMQP_TCP_NO_DELAY = true;
-
- public static final int DEFAULT_AMQP_PORT = 5672;
-
public static final String DEFAULT_AMQP_BINDING = "*";
-
public static final Transport DEFAULT_TRANSPORT = Transport.TCP;
private final Collection<Protocol> _defaultProtocols;
@@ -93,20 +85,38 @@ public class PortFactory
final Port port;
Map<String, Object> defaults = new HashMap<String, Object>();
defaults.put(Port.TRANSPORTS, Collections.singleton(DEFAULT_TRANSPORT));
+ Object portValue = attributes.get(Port.PORT);
+ if (portValue == null)
+ {
+ throw new IllegalConfigurationException("Port attribute is not specified for port: " + attributes);
+ }
if (isAmqpProtocol(attributes))
{
+ Object binding = attributes.get(Port.BINDING_ADDRESS);
+ if (binding == null)
+ {
+ binding = DEFAULT_AMQP_BINDING;
+ defaults.put(Port.BINDING_ADDRESS, DEFAULT_AMQP_BINDING);
+ }
+ defaults.put(Port.NAME, binding + ":" + portValue);
defaults.put(Port.PROTOCOLS, _defaultProtocols);
- defaults.put(Port.PORT, DEFAULT_AMQP_PORT);
defaults.put(Port.TCP_NO_DELAY, DEFAULT_AMQP_TCP_NO_DELAY);
defaults.put(Port.WANT_CLIENT_AUTH, DEFAULT_AMQP_WANT_CLIENT_AUTH);
defaults.put(Port.NEED_CLIENT_AUTH, DEFAULT_AMQP_NEED_CLIENT_AUTH);
defaults.put(Port.RECEIVE_BUFFER_SIZE, DEFAULT_AMQP_RECEIVE_BUFFER_SIZE);
defaults.put(Port.SEND_BUFFER_SIZE, DEFAULT_AMQP_SEND_BUFFER_SIZE);
- defaults.put(Port.BINDING_ADDRESS, DEFAULT_AMQP_BINDING);
port = new AmqpPortAdapter(id, broker, attributes, defaults);
}
else
{
+ @SuppressWarnings("unchecked")
+ Collection<Protocol> protocols = (Collection<Protocol>)attributes.get(Port.PROTOCOLS);
+ if (protocols.size() > 1)
+ {
+ throw new IllegalConfigurationException("Only one protocol can be used on non AMQP port");
+ }
+ Protocol protocol = protocols.iterator().next();
+ defaults.put(Port.NAME, portValue + "-" + protocol.name());
port = new PortAdapter(id, broker, attributes, defaults);
}
return port;
@@ -179,6 +189,7 @@ public class PortFactory
Set<Protocol> protocols = (Set<Protocol>) portAttributes.get(Port.PROTOCOLS);
if (protocols == null || protocols.isEmpty())
{
+ // defaulting to AMQP if protocol is not specified
return true;
}
diff --git a/qpid/java/broker/src/main/resources/default.json b/qpid/java/broker/src/main/resources/default.json
index 35f6c1640f..44c6744377 100644
--- a/qpid/java/broker/src/main/resources/default.json
+++ b/qpid/java/broker/src/main/resources/default.json
@@ -29,26 +29,26 @@
"authenticationProviderType" : "PlainPasswordFileAuthenticationProvider",
"path" : "${QPID_HOME}/etc/passwd"
} ],
- "ports" : [ {
+ "ports" : [ {
"type" : "Port",
+ "name" : "5672-AMQP",
+ "port" : 5672
+ }, {
+ "type" : "Port",
+ "name" : "8080-HTTP",
"port" : 8080,
- "name" : "8080",
"protocols" : [ "HTTP" ]
}, {
"type" : "Port",
- "name" : "5672",
- "port" : 5672
+ "name" : "8999-RMI",
+ "port" : 8999,
+ "protocols" : [ "RMI" ]
}, {
"type" : "Port",
- "name" : "9099",
+ "name" : "9099-JMX_RMI",
"port" : 9099,
"protocols" : [ "JMX_RMI" ]
- }, {
- "type" : "Port",
- "name" : "8999",
- "port" : 8999,
- "protocols" : [ "RMI" ]
- } ],
+ }],
"virtualhosts" : [ {
"type" : "VirtualHost",
"name" : "default",
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
index cf70e78bb5..ffed6ef6f2 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
@@ -97,13 +97,15 @@ public class PortFactoryTest extends QpidTestCase
assertEquals("Unexpected protocols", new HashSet<Protocol>(expected), new HashSet<Protocol>(protocols));
}
- public void testCreatePortWithEmptyAttributes()
+ public void testCreatePortWithMinimumAttributes()
{
- Port port = _portFactory.createPort(_portId, _broker, Collections.<String, Object> emptyMap());
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(Port.PORT, 1);
+ Port port = _portFactory.createPort(_portId, _broker, attributes);
assertNotNull(port);
assertTrue(port instanceof AmqpPortAdapter);
- assertEquals("Unexpected port", PortFactory.DEFAULT_AMQP_PORT, port.getPort());
+ assertEquals("Unexpected port", 1, port.getPort());
assertEquals("Unexpected transports", Collections.singleton(PortFactory.DEFAULT_TRANSPORT), port.getTransports());
assertEquals("Unexpected protocols", _portFactory.getDefaultProtocols(), port.getProtocols());
assertEquals("Unexpected send buffer size", PortFactory.DEFAULT_AMQP_SEND_BUFFER_SIZE,
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
index dd1902866b..f15a1d1e6a 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
@@ -212,7 +212,6 @@ public class Asserts
Port.BINDING_ADDRESS, Port.TCP_NO_DELAY, Port.SEND_BUFFER_SIZE, Port.RECEIVE_BUFFER_SIZE,
Port.NEED_CLIENT_AUTH, Port.WANT_CLIENT_AUTH);
}
- assertNotNull("Unexpected value of attribute " + Port.NAME, port.get(Port.NAME));
@SuppressWarnings("unchecked")
Collection<String> transports = (Collection<String>) port.get(Port.TRANSPORTS);
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
index 8759254d12..bf7da5ce83 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
@@ -68,11 +68,10 @@ public class BrokerRestTest extends QpidRestTestCase
Asserts.assertPortAttributes(port);
}
- String bindingAddress = (String)ports.get(0).get(Port.BINDING_ADDRESS);
-
- Map<String, Object> amqpPort = getRestTestHelper().find(Port.NAME, bindingAddress + ":" + getPort(), ports);
- Map<String, Object> httpPort = getRestTestHelper().find(Port.NAME, "" + getRestTestHelper().getHttpPort(), ports);
+ Map<String, Object> amqpPort = getRestTestHelper().find(Port.NAME, getPort() +"-AMQP", ports);
+ Map<String, Object> httpPort = getRestTestHelper().find(Port.NAME, getRestTestHelper().getHttpPort() + "-HTTP", ports);
+ assertEquals("Unexpected binding address", "*", amqpPort.get(Port.BINDING_ADDRESS));
assertNotNull("Cannot find AMQP port", amqpPort);
assertNotNull("Cannot find HTTP port", httpPort);
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
index bbc034c754..4a12b475af 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
@@ -34,12 +34,12 @@ public class PortRestTest extends QpidRestTestCase
assertNotNull("Port data cannot be null", ports);
assertEquals("Unexpected number of ports", 2, ports.size());
- String httpPortName = "" + getRestTestHelper().getHttpPort();
+ String httpPortName = getRestTestHelper().getHttpPort() + "-HTTP";
Map<String, Object> portData = getRestTestHelper().find(Port.NAME, httpPortName, ports);
assertNotNull("Http port " + httpPortName + " is not found", portData);
Asserts.assertPortAttributes(portData);
- String amqpPortName = "*:" + getPort();
+ String amqpPortName = getPort() + "-AMQP";
Map<String, Object> amqpPortData = getRestTestHelper().find(Port.NAME, amqpPortName, ports);
assertNotNull("Amqp port " + amqpPortName + " is not found", amqpPortData);
Asserts.assertPortAttributes(amqpPortData);
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java
index 9971a6b549..a84708060a 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java
@@ -91,23 +91,15 @@ public class StructureRestTest extends QpidRestTestCase
}
}
}
-
- /*
- @SuppressWarnings("unchecked")
- List<Map<String, Object>> aliases = (List<Map<String, Object>>) host.get("virtualhostaliases");
- assertNotNull("Host " + hostName + " aliases are not found ", aliases);
- assertEquals("Unexpected aliases size", 1, aliases.size());
- assertNode(aliases.get(0), hostName);
- */
}
- String httpPortName = "" + getRestTestHelper().getHttpPort();
+ String httpPortName = getRestTestHelper().getHttpPort() + "-HTTP";
Map<String, Object> portData = getRestTestHelper().find(Port.NAME, httpPortName, ports);
assertNotNull("Http Port " + httpPortName + " is not found", portData);
assertNode(portData, httpPortName);
- String amqpPortName = "*:" + getPort();
+ String amqpPortName = getPort() + "-AMQP";
Map<String, Object> amqpPortData = getRestTestHelper().find(Port.NAME, amqpPortName, ports);
assertNotNull("Amqp port " + amqpPortName + " is not found", amqpPortData);
assertNode(amqpPortData, amqpPortName);