[jboss-cvs] JBoss Messaging SVN: r7060 - in trunk: src/config/common/schema and 9 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed May 27 03:50:45 EDT 2009


Author: jmesnil
Date: 2009-05-27 03:50:44 -0400 (Wed, 27 May 2009)
New Revision: 7060

Modified:
   trunk/docs/user-manual/en/clusters.xml
   trunk/src/config/common/schema/jbm-configuration.xsd
   trunk/src/main/org/jboss/messaging/core/config/cluster/BroadcastGroupConfiguration.java
   trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
   trunk/src/main/org/jboss/messaging/core/server/cluster/impl/BroadcastGroupImpl.java
   trunk/src/main/org/jboss/messaging/core/server/cluster/impl/ClusterManagerImpl.java
   trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionFactoryTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/ClusterTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/integration/discovery/DiscoveryTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/JBossConnectionFactoryTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java
Log:
fixed JBMESSAGING-1520: Specify the local address & port and for the broadcast group

* the local bind address can be specified. If it is set to null (or not set 
  in the configuration file), the datagram socket will be bound to the 
  wildcard address, an IP address chosen by the kernel

Modified: trunk/docs/user-manual/en/clusters.xml
===================================================================
--- trunk/docs/user-manual/en/clusters.xml	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/docs/user-manual/en/clusters.xml	2009-05-27 07:50:44 UTC (rev 7060)
@@ -86,11 +86,12 @@
                         have a unique name. </para>
                 </listitem>
                 <listitem>
-                    <para><literal>local-bind-address</literal>. TODO. This is the local bind
+                    <para><literal>local-bind-address</literal>. This is the local bind
                         address that the datagram socket is bound to. If you have multiple network
                         interfaces on your server, you would specify which one you wish to use for
                         broadcasts by setting this property. If this property is not specified then
-                        TODO TODO</para>
+                        the socket will be bound to the wildcard address, an IP address chosen by 
+                        the kernel.</para>
                 </listitem>
                 <listitem>
                     <para><literal>local-bind-port</literal>. If you want to specify a local port to

Modified: trunk/src/config/common/schema/jbm-configuration.xsd
===================================================================
--- trunk/src/config/common/schema/jbm-configuration.xsd	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/src/config/common/schema/jbm-configuration.xsd	2009-05-27 07:50:44 UTC (rev 7060)
@@ -242,6 +242,9 @@
 	<xsd:element name="broadcast-group">
 		<xsd:complexType>
 			<xsd:sequence>
+                <xsd:element ref="local-bind-address" maxOccurs="1"
+                    minOccurs="0">
+                </xsd:element>
 				<xsd:element ref="local-bind-port" maxOccurs="1"
 					minOccurs="0">
 				</xsd:element>

Modified: trunk/src/main/org/jboss/messaging/core/config/cluster/BroadcastGroupConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/cluster/BroadcastGroupConfiguration.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/src/main/org/jboss/messaging/core/config/cluster/BroadcastGroupConfiguration.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -46,6 +46,8 @@
   
    private final String name;
    
+   private final String localBindAddress;
+
    private final int localBindPort;
    
    private final String groupAddress;
@@ -55,8 +57,9 @@
    private final long broadcastPeriod;
    
    private final List<Pair<String, String>> connectorInfos;
-
+   
    public BroadcastGroupConfiguration(final String name,
+                                      final String localBindAddress,
                                       final int localBindPort,
                                       final String groupAddress,
                                       final int groupPort,
@@ -65,6 +68,7 @@
    {
       super();
       this.name = name;
+      this.localBindAddress = localBindAddress;
       this.localBindPort = localBindPort;
       this.groupAddress = groupAddress;
       this.groupPort = groupPort;
@@ -77,6 +81,11 @@
       return name;
    }
 
+   public String getLocalBindAddress()
+   {
+      return localBindAddress;
+   }
+
    public int getLocalBindPort()
    {
       return localBindPort;

Modified: trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -444,6 +444,8 @@
    {
       String name = bgNode.getAttribute("name");
 
+      String localAddress = null;
+      
       int localBindPort = -1;
 
       String groupAddress = null;
@@ -460,8 +462,12 @@
       {
          Node child = children.item(j);
 
-         if (child.getNodeName().equals("local-bind-port"))
+         if (child.getNodeName().equals("local-bind-address"))
          {
+            localAddress = child.getTextContent().trim();
+         }
+         else if (child.getNodeName().equals("local-bind-port"))
+         {
             localBindPort = org.jboss.messaging.utils.XMLUtil.parseInt(child);
          }
          else if (child.getNodeName().equals("group-address"))
@@ -496,6 +502,7 @@
       }
 
       BroadcastGroupConfiguration config = new BroadcastGroupConfiguration(name,
+                                                                           localAddress,
                                                                            localBindPort,
                                                                            groupAddress,
                                                                            groupPort,

Modified: trunk/src/main/org/jboss/messaging/core/server/cluster/impl/BroadcastGroupImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/cluster/impl/BroadcastGroupImpl.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/src/main/org/jboss/messaging/core/server/cluster/impl/BroadcastGroupImpl.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -53,6 +53,8 @@
 
    private final String name;
 
+   private final InetAddress localAddress;
+
    private final int localPort;
 
    private final InetAddress groupAddress;
@@ -73,8 +75,12 @@
    //on the network which would be an error
    private final String uniqueID;
 
+   /**
+    * Broadcast group is bound locally to the wildcard address
+    */
    public BroadcastGroupImpl(final String nodeID,
                              final String name,
+                             final InetAddress localAddress,
                              final int localPort,
                              final InetAddress groupAddress,
                              final int groupPort,
@@ -83,6 +89,8 @@
       this.nodeID = nodeID;
 
       this.name = name;
+      
+      this.localAddress = localAddress;
 
       this.localPort = localPort;
 
@@ -102,10 +110,9 @@
          return;
       }
 
-      // we configure only the port, the address must be bound to the wildcard address to receive broadcast packets
       if (localPort != -1)
       {
-         socket = new DatagramSocket(localPort);
+         socket = new DatagramSocket(localPort, localAddress);
       }
       else
       {

Modified: trunk/src/main/org/jboss/messaging/core/server/cluster/impl/ClusterManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/cluster/impl/ClusterManagerImpl.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/src/main/org/jboss/messaging/core/server/cluster/impl/ClusterManagerImpl.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -25,13 +25,13 @@
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
 import java.net.InetAddress;
+import java.net.NetworkInterface;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.Executor;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 
@@ -45,18 +45,15 @@
 import org.jboss.messaging.core.config.cluster.DiscoveryGroupConfiguration;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.management.ManagementService;
-import org.jboss.messaging.core.persistence.StorageManager;
 import org.jboss.messaging.core.postoffice.Binding;
 import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.remoting.Channel;
 import org.jboss.messaging.core.server.MessagingServer;
 import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.core.server.QueueFactory;
 import org.jboss.messaging.core.server.cluster.Bridge;
 import org.jboss.messaging.core.server.cluster.BroadcastGroup;
 import org.jboss.messaging.core.server.cluster.ClusterConnection;
 import org.jboss.messaging.core.server.cluster.ClusterManager;
-import org.jboss.messaging.core.server.cluster.MessageFlowRecord;
 import org.jboss.messaging.core.server.cluster.Transformer;
 import org.jboss.messaging.utils.Pair;
 import org.jboss.messaging.utils.SimpleString;
@@ -264,10 +261,17 @@
          return;
       }
 
+      InetAddress localAddress = null;
+      if (config.getLocalBindAddress() != null)
+      {
+         localAddress = InetAddress.getByName(config.getLocalBindAddress());
+      }
+
       InetAddress groupAddress = InetAddress.getByName(config.getGroupAddress());
 
       BroadcastGroupImpl group = new BroadcastGroupImpl(nodeUUID.toString(),
                                                         config.getName(),
+                                                        localAddress,
                                                         config.getLocalBindPort(),
                                                         groupAddress,
                                                         config.getGroupPort(),

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionFactoryTest.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientSessionFactoryTest.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -864,6 +864,7 @@
       final int localBindPort = 5432;
 
       BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration(bcGroupName,
+                                                                              null,
                                                                               localBindPort,
                                                                               groupAddress,
                                                                               groupPort,

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/ClusterTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/ClusterTestBase.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/ClusterTestBase.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -1045,6 +1045,7 @@
       }
 
       BroadcastGroupConfiguration bcConfig = new BroadcastGroupConfiguration("bg1",
+                                                                             null,
                                                                              -1,
                                                                              groupAddress,
                                                                              port,

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverTestBase.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverTestBase.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -241,6 +241,7 @@
       final long broadcastPeriod = 250;
 
       BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration(bcGroupName,
+                                                                              null,
                                                                               localBindPort,
                                                                               groupAddress,
                                                                               groupPort,

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/discovery/DiscoveryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/discovery/DiscoveryTest.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/discovery/DiscoveryTest.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -71,7 +71,7 @@
       
       final String nodeID = randomString();
 
-      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), null, -1, groupAddress, groupPort, true);
 
       bg.start();
 
@@ -120,7 +120,7 @@
       
       final String nodeID = randomString();
 
-      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), null, -1, groupAddress, groupPort, true);
 
       bg.start();
 
@@ -191,7 +191,7 @@
       
       String nodeID = randomString();
 
-      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), null, -1, groupAddress, groupPort, true);
 
       bg.start();
 
@@ -273,7 +273,7 @@
       final int groupPort = 6745;
       final int timeout = 500;
 
-      BroadcastGroup bg = new BroadcastGroupImpl(randomString(), randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg = new BroadcastGroupImpl(randomString(), randomString(), null, -1, groupAddress, groupPort, true);
 
       bg.start();
 
@@ -309,7 +309,7 @@
       final int groupPort = 6745;
       final int timeout = 500;
 
-      BroadcastGroup bg = new BroadcastGroupImpl(randomString(), randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg = new BroadcastGroupImpl(randomString(), randomString(), null, -1, groupAddress, groupPort, true);
 
       bg.start();
 
@@ -359,13 +359,13 @@
       
       String node3 = randomString();
 
-      BroadcastGroup bg1 = new BroadcastGroupImpl(node1, randomString(), -1, groupAddress1, groupPort1, true);
+      BroadcastGroup bg1 = new BroadcastGroupImpl(node1, randomString(), null, -1, groupAddress1, groupPort1, true);
       bg1.start();
 
-      BroadcastGroup bg2 = new BroadcastGroupImpl(node2, randomString(), -1, groupAddress2, groupPort2, true);
+      BroadcastGroup bg2 = new BroadcastGroupImpl(node2, randomString(), null, -1, groupAddress2, groupPort2, true);
       bg2.start();
 
-      BroadcastGroup bg3 = new BroadcastGroupImpl(node3, randomString(), -1, groupAddress3, groupPort3, true);
+      BroadcastGroup bg3 = new BroadcastGroupImpl(node3, randomString(), null, -1, groupAddress3, groupPort3, true);
       bg3.start();
 
       TransportConfiguration live1 = generateTC();
@@ -449,7 +449,7 @@
       
       String nodeID = randomString();
 
-      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), null, -1, groupAddress, groupPort, true);
 
       bg.start();
 
@@ -491,7 +491,7 @@
       
       String nodeID = randomString();
 
-      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), null, -1, groupAddress, groupPort, true);
 
       bg.start();
 
@@ -550,13 +550,13 @@
       String node2 = randomString();
       String node3 = randomString();
 
-      BroadcastGroup bg1 = new BroadcastGroupImpl(node1, randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg1 = new BroadcastGroupImpl(node1, randomString(), null, -1, groupAddress, groupPort, true);
       bg1.start();
 
-      BroadcastGroup bg2 = new BroadcastGroupImpl(node2, randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg2 = new BroadcastGroupImpl(node2, randomString(), null, -1, groupAddress, groupPort, true);
       bg2.start();
 
-      BroadcastGroup bg3 = new BroadcastGroupImpl(node3, randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg3 = new BroadcastGroupImpl(node3, randomString(), null, -1, groupAddress, groupPort, true);
       bg3.start();
 
       TransportConfiguration live1 = generateTC();
@@ -794,7 +794,7 @@
       
       String nodeID = randomString();
 
-      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), -1, groupAddress, groupPort, true);
+      BroadcastGroup bg = new BroadcastGroupImpl(nodeID, randomString(), null, -1, groupAddress, groupPort, true);
 
       bg.start();
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/jms/JBossConnectionFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/JBossConnectionFactoryTest.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/JBossConnectionFactoryTest.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -916,6 +916,7 @@
       final int localBindPort = 5432;
 
       BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration(bcGroupName,
+                                                                              null,
                                                                               localBindPort,
                                                                               groupAddress,
                                                                               groupPort,

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java	2009-05-27 06:14:34 UTC (rev 7059)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java	2009-05-27 07:50:44 UTC (rev 7060)
@@ -61,6 +61,7 @@
    public static BroadcastGroupConfiguration randomBroadcastGroupConfiguration(List<Pair<String, String>> connectorInfos)
    {
       return new BroadcastGroupConfiguration(randomString(),
+                                             null,
                                              1198,
                                              "231.7.7.7",
                                              1199,




More information about the jboss-cvs-commits mailing list