Author: rgodfrey
Date: Mon Mar 5 13:39:16 2012
New Revision: 1297049
URL: http://svn.apache.org/viewvc?rev=1297049&view=rev
Log:
QPID-3408 : Fix the Java Broker code so it both copes with machines where IPv6
is present, but disabled, and does not open a random port to get a wildcard
address
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerNetworkTransportConfiguration.java
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkTransportConfiguration.java
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java?rev=1297049&r1=1297048&r2=1297049&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java
Mon Mar 5 13:39:16 2012
@@ -192,7 +192,7 @@ public class Broker
InetAddress bindAddress;
if (bindAddr.equals(WILDCARD_ADDRESS))
{
- bindAddress = new InetSocketAddress(0).getAddress();
+ bindAddress = null;
}
else
{
@@ -205,18 +205,21 @@ public class Broker
{
for(int port : ports)
{
+ final InetSocketAddress inetSocketAddress = new
InetSocketAddress(bindAddress, port);
+
final Set<AmqpProtocolVersion> supported =
getSupportedVersions(port, exclude_0_10,
exclude_0_9_1, exclude_0_9, exclude_0_8, serverConfig);
final NetworkTransportConfiguration settings =
- new
ServerNetworkTransportConfiguration(serverConfig, port,
bindAddress.getHostName(), Transport.TCP);
+ new
ServerNetworkTransportConfiguration(serverConfig, inetSocketAddress,
Transport.TCP);
final IncomingNetworkTransport transport =
Transport.getIncomingTransportInstance();
final MultiVersionProtocolEngineFactory
protocolEngineFactory =
new
MultiVersionProtocolEngineFactory(supported, defaultSupportedProtocolReply);
transport.accept(settings, protocolEngineFactory, null);
- ApplicationRegistry.getInstance().addAcceptor(new
InetSocketAddress(bindAddress, port),
+
+
ApplicationRegistry.getInstance().addAcceptor(inetSocketAddress,
new QpidAcceptor(transport,"TCP"));
CurrentActor.get().message(BrokerMessages.LISTENING("TCP",
port));
}
@@ -231,17 +234,20 @@ public class Broker
for(int sslPort : sslPorts)
{
+ final InetSocketAddress inetSocketAddress = new
InetSocketAddress(bindAddress, sslPort);
+
final Set<AmqpProtocolVersion> supported =
getSupportedVersions(sslPort,
exclude_0_10, exclude_0_9_1, exclude_0_9, exclude_0_8, serverConfig);
final NetworkTransportConfiguration settings =
- new ServerNetworkTransportConfiguration(serverConfig,
sslPort, bindAddress.getHostName(), Transport.TCP);
+ new ServerNetworkTransportConfiguration(serverConfig,
inetSocketAddress, Transport.TCP);
final IncomingNetworkTransport transport =
Transport.getIncomingTransportInstance();
final MultiVersionProtocolEngineFactory
protocolEngineFactory =
new
MultiVersionProtocolEngineFactory(supported, defaultSupportedProtocolReply);
transport.accept(settings, protocolEngineFactory,
sslContext);
- ApplicationRegistry.getInstance().addAcceptor(new
InetSocketAddress(bindAddress, sslPort),
+
+
ApplicationRegistry.getInstance().addAcceptor(inetSocketAddress,
new QpidAcceptor(transport,"TCP"));
CurrentActor.get().message(BrokerMessages.LISTENING("TCP/SSL", sslPort));
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerNetworkTransportConfiguration.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerNetworkTransportConfiguration.java?rev=1297049&r1=1297048&r2=1297049&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerNetworkTransportConfiguration.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerNetworkTransportConfiguration.java
Mon Mar 5 13:39:16 2012
@@ -19,22 +19,21 @@
*/
package org.apache.qpid.server.configuration;
+import java.net.InetSocketAddress;
import org.apache.qpid.transport.NetworkTransportConfiguration;
public class ServerNetworkTransportConfiguration implements
NetworkTransportConfiguration
{
private final ServerConfiguration _serverConfig;
- private final int _port;
- private final String _host;
private final String _transport;
+ private InetSocketAddress _address;
public ServerNetworkTransportConfiguration(final ServerConfiguration
serverConfig,
- final int port, final String
host,
+ final InetSocketAddress address,
final String transport)
{
_serverConfig = serverConfig;
- _port = port;
- _host = host;
+ _address = address;
_transport = transport;
}
@@ -55,12 +54,12 @@ public class ServerNetworkTransportConfi
public Integer getPort()
{
- return _port;
+ return _address.getPort();
}
public String getHost()
{
- return _host;
+ return _address.getHostName();
}
public String getTransport()
@@ -72,4 +71,9 @@ public class ServerNetworkTransportConfi
{
return _serverConfig.getConnectorProcessors();
}
+
+ public InetSocketAddress getAddress()
+ {
+ return _address;
+ }
}
Modified:
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkTransportConfiguration.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkTransportConfiguration.java?rev=1297049&r1=1297048&r2=1297049&view=diff
==============================================================================
---
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkTransportConfiguration.java
(original)
+++
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkTransportConfiguration.java
Mon Mar 5 13:39:16 2012
@@ -20,6 +20,8 @@
*/
package org.apache.qpid.transport;
+import java.net.InetSocketAddress;
+
/**
* This interface provides a means for NetworkDrivers to configure TCP options
such as incoming and outgoing
* buffer sizes and set particular options on the socket. NetworkDrivers
should honour the values returned
@@ -43,4 +45,6 @@ public interface NetworkTransportConfigu
String getTransport();
Integer getConnectorProcessors();
+
+ InetSocketAddress getAddress();
}
Modified:
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java?rev=1297049&r1=1297048&r2=1297049&view=diff
==============================================================================
---
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java
(original)
+++
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java
Mon Mar 5 13:39:16 2012
@@ -157,7 +157,7 @@ public class IoNetworkTransport implemen
_factory = factory;
_sslContext = sslContext;
- InetSocketAddress address = new
InetSocketAddress(config.getHost(), config.getPort());
+ InetSocketAddress address = config.getAddress();
if(sslContext == null)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]