[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