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]

Reply via email to