[hornetq-commits] JBoss hornetq SVN: r9108 - in trunk: src/main/org/hornetq/api/core/client and 20 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Apr 13 11:16:49 EDT 2010


Author: timfox
Date: 2010-04-13 11:16:44 -0400 (Tue, 13 Apr 2010)
New Revision: 9108

Added:
   trunk/tests/config/hornetq-jms-for-JMSServerDeployerTest2.xml
Modified:
   trunk/src/config/common/schema/hornetq-configuration.xsd
   trunk/src/main/org/hornetq/api/core/client/ClientSessionFactory.java
   trunk/src/main/org/hornetq/api/jms/management/ConnectionFactoryControl.java
   trunk/src/main/org/hornetq/core/client/impl/ClientSessionFactoryImpl.java
   trunk/src/main/org/hornetq/core/cluster/impl/DiscoveryGroupImpl.java
   trunk/src/main/org/hornetq/core/config/DiscoveryGroupConfiguration.java
   trunk/src/main/org/hornetq/core/deployers/impl/FileConfigurationParser.java
   trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java
   trunk/src/main/org/hornetq/jms/client/HornetQConnectionFactory.java
   trunk/src/main/org/hornetq/jms/management/impl/JMSConnectionFactoryControlImpl.java
   trunk/src/main/org/hornetq/jms/server/JMSServerManager.java
   trunk/src/main/org/hornetq/jms/server/config/ConnectionFactoryConfiguration.java
   trunk/src/main/org/hornetq/jms/server/config/impl/ConnectionFactoryConfigurationImpl.java
   trunk/src/main/org/hornetq/jms/server/impl/JMSServerConfigParserImpl.java
   trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java
   trunk/tests/config/ConfigurationTest-full-config.xml
   trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java
   trunk/tests/src/org/hornetq/tests/integration/discovery/DiscoveryTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControl2Test.java
   trunk/tests/src/org/hornetq/tests/integration/management/DiscoveryGroupControlTest.java
   trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java
Log:
https://jira.jboss.org/jira/browse/HORNETQ-342

Modified: trunk/src/config/common/schema/hornetq-configuration.xsd
===================================================================
--- trunk/src/config/common/schema/hornetq-configuration.xsd	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/config/common/schema/hornetq-configuration.xsd	2010-04-13 15:16:44 UTC (rev 9108)
@@ -228,6 +228,8 @@
 	<xsd:element name="discovery-group">
 		<xsd:complexType>
 			<xsd:sequence>
+			    <xsd:element maxOccurs="1" minOccurs="0" ref="local-bind-address">
+                </xsd:element>
 				<xsd:element maxOccurs="1" minOccurs="1" ref="group-address">
 				</xsd:element>
 				<xsd:element maxOccurs="1" minOccurs="1" ref="group-port">

Modified: trunk/src/main/org/hornetq/api/core/client/ClientSessionFactory.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/client/ClientSessionFactory.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/api/core/client/ClientSessionFactory.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -474,6 +474,22 @@
    void setAckBatchSize(int ackBatchSize);
 
    /**
+    * Returns the local bind address to which the multicast socket is bound for discovery.
+    * 
+    * This is null if the multicast socket is not bound, or no discovery is being used
+    * 
+    * @return the local bind address to which the multicast socket is bound for discovery
+    */
+   String getLocalBindAddress();
+
+   /**
+    * Sets the local bind address to which the multicast socket is bound for discovery.
+    * 
+    * @param the local bind address
+    */
+   void setLocalBindAddress(String localBindAddress);
+   
+   /**
     * Returns the address to listen to discover which connectors this factory can use.
     * The discovery address must be set to enable this factory to discover HornetQ servers.
     * 

Modified: trunk/src/main/org/hornetq/api/jms/management/ConnectionFactoryControl.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/management/ConnectionFactoryControl.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/api/jms/management/ConnectionFactoryControl.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -370,7 +370,17 @@
     */
    void setStaticConnectors(List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors);
 
+   /**
+    * @see ClientSessionFactory#getLocalBindAddress()
+    */
+   String getLocalBindAddress();
+
     /**
+    * @see ClientSessionFactory#setLocalBindAddress(String)
+    */
+   void setLocalBindAddress(String localBindAddress);
+   
+    /**
     * @see ClientSessionFactory#getDiscoveryAddress()
     */
    String getDiscoveryAddress();
@@ -379,6 +389,8 @@
     * @see ClientSessionFactory#setDiscoveryAddress(String)
     */
    void setDiscoveryAddress(String discoveryAddress);
+   
+   
 
     /**
     * @see ClientSessionFactory#getDiscoveryPort()

Modified: trunk/src/main/org/hornetq/core/client/impl/ClientSessionFactoryImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/client/impl/ClientSessionFactoryImpl.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/core/client/impl/ClientSessionFactoryImpl.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -86,6 +86,8 @@
 
    private List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors;
 
+   private String localBindAddress;
+   
    private String discoveryAddress;
 
    private int discoveryPort;
@@ -219,9 +221,21 @@
          if (discoveryAddress != null)
          {
             InetAddress groupAddress = InetAddress.getByName(discoveryAddress);
+            
+            InetAddress lbAddress;
+            
+            if (localBindAddress != null)
+            {
+               lbAddress = InetAddress.getByName(localBindAddress);
+            }
+            else
+            {
+               lbAddress = null;
+            }
 
             discoveryGroup = new DiscoveryGroupImpl(UUIDGenerator.getInstance().generateStringUUID(),
                                                     discoveryAddress,
+                                                    lbAddress,
                                                     groupAddress,
                                                     discoveryPort,
                                                     discoveryRefreshTimeout);
@@ -270,6 +284,8 @@
 
    public ClientSessionFactoryImpl(final ClientSessionFactory other)
    {
+      localBindAddress =  other.getLocalBindAddress();
+      
       discoveryAddress = other.getDiscoveryAddress();
 
       discoveryPort = other.getDiscoveryPort();
@@ -402,7 +418,18 @@
 
       this.discoveryPort = discoveryPort;
    }
+   
+   public ClientSessionFactoryImpl(final String localBindAddress, final String discoveryAddress, final int discoveryPort)
+   {
+      this();
+      
+      this.localBindAddress = localBindAddress;
 
+      this.discoveryAddress = discoveryAddress;
+
+      this.discoveryPort = discoveryPort;
+   }
+
    public ClientSessionFactoryImpl(final List<Pair<TransportConfiguration, TransportConfiguration>> staticConnectors)
    {
       this();
@@ -724,7 +751,18 @@
       checkWrite();
       connectionLoadBalancingPolicyClassName = loadBalancingPolicyClassName;
    }
+   
+   public synchronized String getLocalBindAddress()
+   {
+      return localBindAddress;
+   }
 
+   public synchronized void setLocalBindAddress(final String localBindAddress)
+   {
+      checkWrite();
+      this.localBindAddress = localBindAddress;
+   }
+
    public synchronized String getDiscoveryAddress()
    {
       return discoveryAddress;

Modified: trunk/src/main/org/hornetq/core/cluster/impl/DiscoveryGroupImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/cluster/impl/DiscoveryGroupImpl.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/core/cluster/impl/DiscoveryGroupImpl.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -16,6 +16,7 @@
 import java.io.InterruptedIOException;
 import java.net.DatagramPacket;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.net.MulticastSocket;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -70,6 +71,8 @@
    private volatile boolean started;
 
    private final String nodeID;
+   
+   private final InetAddress localBindAddress;
 
    private final InetAddress groupAddress;
 
@@ -81,6 +84,7 @@
 
    public DiscoveryGroupImpl(final String nodeID,
                              final String name,
+                             final InetAddress localBindAddress,
                              final InetAddress groupAddress,
                              final int groupPort,
                              final long timeout) throws Exception
@@ -90,6 +94,8 @@
       this.name = name;
 
       this.timeout = timeout;
+      
+      this.localBindAddress = localBindAddress;
 
       this.groupAddress = groupAddress;
 
@@ -108,7 +114,16 @@
          return;
       }
 
-      socket = new MulticastSocket(groupPort);
+      if (localBindAddress == null)
+      {
+         socket = new MulticastSocket(groupPort);
+      }
+      else
+      {
+         InetSocketAddress saddress = new InetSocketAddress(localBindAddress, groupPort);
+         
+         socket = new MulticastSocket(saddress);
+      }
 
       socket.joinGroup(groupAddress);
 
@@ -125,8 +140,11 @@
       if (notificationService != null)
       {
          TypedProperties props = new TypedProperties();
+         
          props.putSimpleStringProperty(new SimpleString("name"), new SimpleString(name));
+         
          Notification notification = new Notification(nodeID, NotificationType.DISCOVERY_GROUP_STARTED, props);
+         
          notificationService.sendNotification(notification);
       }
    }

Modified: trunk/src/main/org/hornetq/core/config/DiscoveryGroupConfiguration.java
===================================================================
--- trunk/src/main/org/hornetq/core/config/DiscoveryGroupConfiguration.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/core/config/DiscoveryGroupConfiguration.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -15,6 +15,8 @@
 
 import java.io.Serializable;
 
+import org.hornetq.core.logging.Logger;
+
 /**
  * A DiscoveryGroupConfiguration
  *
@@ -27,8 +29,13 @@
 public class DiscoveryGroupConfiguration implements Serializable
 {
    private static final long serialVersionUID = 8657206421727863400L;
+   
+   private static final Logger log = Logger.getLogger(DiscoveryGroupConfiguration.class);
 
+
    private String name;
+   
+   private String localBindAddress;
 
    private String groupAddress;
 
@@ -37,12 +44,14 @@
    private long refreshTimeout;
 
    public DiscoveryGroupConfiguration(final String name,
+                                      final String localBindAddress,
                                       final String groupAddress,
                                       final int groupPort,
                                       final long refreshTimeout)
    {
       this.name = name;
       this.groupAddress = groupAddress;
+      this.localBindAddress = localBindAddress;
       this.groupPort = groupPort;
       this.refreshTimeout = refreshTimeout;
    }
@@ -51,6 +60,11 @@
    {
       return name;
    }
+   
+   public String getLocalBindAddress()
+   {
+      return localBindAddress;
+   }
 
    public String getGroupAddress()
    {
@@ -74,6 +88,14 @@
    {
       this.name = name;
    }
+   
+   /**
+    * @param localBindAddress the localBindAddress to set
+    */
+   public void setLocalBindAdress(final String localBindAddress)
+   {
+      this.localBindAddress = localBindAddress;
+   }
 
    /**
     * @param groupAddress the groupAddress to set

Modified: trunk/src/main/org/hornetq/core/deployers/impl/FileConfigurationParser.java
===================================================================
--- trunk/src/main/org/hornetq/core/deployers/impl/FileConfigurationParser.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/core/deployers/impl/FileConfigurationParser.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -894,6 +894,8 @@
    {
       String name = e.getAttribute("name");
 
+      String localBindAddress = XMLConfigurationUtil.getString(e, "local-bind-address", null, Validators.NO_CHECK);
+      
       String groupAddress = XMLConfigurationUtil.getString(e, "group-address", null, Validators.NOT_NULL_OR_EMPTY);
 
       int groupPort = XMLConfigurationUtil.getInteger(e, "group-port", -1, Validators.MINUS_ONE_OR_GT_ZERO);
@@ -904,6 +906,7 @@
                                                          Validators.GT_ZERO);
 
       DiscoveryGroupConfiguration config = new DiscoveryGroupConfiguration(name,
+                                                                           localBindAddress,
                                                                            groupAddress,
                                                                            groupPort,
                                                                            refreshTimeout);

Modified: trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -331,9 +331,23 @@
       }
 
       InetAddress groupAddress = InetAddress.getByName(config.getGroupAddress());
+      
+      InetAddress localBindAddress;
+      
+      if (config.getLocalBindAddress() != null)
+      {
+         localBindAddress = InetAddress.getByName(config.getLocalBindAddress());
+      }
+      else
+      {
+         localBindAddress = null;
+      }
 
+      log.info("local bind address " + localBindAddress);
+      
       DiscoveryGroup group = new DiscoveryGroupImpl(nodeUUID.toString(),
                                                     config.getName(),
+                                                    localBindAddress,
                                                     groupAddress,
                                                     config.getGroupPort(),
                                                     config.getRefreshTimeout());

Modified: trunk/src/main/org/hornetq/jms/client/HornetQConnectionFactory.java
===================================================================
--- trunk/src/main/org/hornetq/jms/client/HornetQConnectionFactory.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/jms/client/HornetQConnectionFactory.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -209,7 +209,18 @@
       checkWrite();
       sessionFactory.setStaticConnectors(staticConnectors);
    }
+   
+   public synchronized String getLocalBindAddress()
+   {
+      return sessionFactory.getLocalBindAddress();
+   }
 
+   public synchronized void setLocalBindAddress(final String localBindAddress)
+   {
+      checkWrite();
+      sessionFactory.setLocalBindAddress(localBindAddress);
+   }
+
    public synchronized String getDiscoveryAddress()
    {
       return sessionFactory.getDiscoveryAddress();

Modified: trunk/src/main/org/hornetq/jms/management/impl/JMSConnectionFactoryControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/management/impl/JMSConnectionFactoryControlImpl.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/jms/management/impl/JMSConnectionFactoryControlImpl.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -297,7 +297,17 @@
    {
       cf.setStaticConnectors(staticConnectors);
    }
+   
+   public String getLocalBindAddress()
+   {
+      return cf.getLocalBindAddress();
+   }
 
+   public void setLocalBindAddress(String localBindAddress)
+   {
+      cf.setLocalBindAddress(localBindAddress);
+   }
+
    public String getDiscoveryAddress()
    {
       return cf.getDiscoveryAddress();

Modified: trunk/src/main/org/hornetq/jms/server/JMSServerManager.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/JMSServerManager.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/jms/server/JMSServerManager.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -223,6 +223,7 @@
                                 String ... jndiBindings) throws Exception;
 
    void createConnectionFactory(String name,
+                                String localBindAdress,
                                 String discoveryAddress,
                                 int discoveryPort,
                                 String clientID,

Modified: trunk/src/main/org/hornetq/jms/server/config/ConnectionFactoryConfiguration.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/ConnectionFactoryConfiguration.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/jms/server/config/ConnectionFactoryConfiguration.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -34,6 +34,10 @@
    String[] getBindings();
 
    void setBindings(String[] bindings);
+   
+   String getLocalBindAddress();
+   
+   void setLocalBindAddress(String localBindAddress);
 
    String getDiscoveryAddress();
 

Modified: trunk/src/main/org/hornetq/jms/server/config/impl/ConnectionFactoryConfigurationImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/impl/ConnectionFactoryConfigurationImpl.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/jms/server/config/impl/ConnectionFactoryConfigurationImpl.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -42,6 +42,8 @@
    private String[] bindings;
 
    private String discoveryGroupName;
+   
+   private String localBindAddress;
 
    private String discoveryAddress;
 
@@ -129,6 +131,18 @@
       this.discoveryAddress = discoveryAddress;
       this.discoveryPort = discoveryPort;
    }
+   
+   public ConnectionFactoryConfigurationImpl(final String name,
+                                             final String localBindAddress,
+                                             final String discoveryAddress,
+                                             final int discoveryPort,
+                                             final String... bindings)
+   {
+      this(name, bindings);
+      this.localBindAddress = localBindAddress;
+      this.discoveryAddress = discoveryAddress;
+      this.discoveryPort = discoveryPort;
+   }
 
    public ConnectionFactoryConfigurationImpl(final String name,
                                              final TransportConfiguration liveConfig,
@@ -179,7 +193,17 @@
    {
       return name;
    }
+   
+   public String getLocalBindAddress()
+   {
+      return localBindAddress;
+   }
 
+   public void setLocalBindAddress(final String localBindAddress)
+   {
+      this.localBindAddress = localBindAddress;
+   }
+
    public String getDiscoveryAddress()
    {
       return discoveryAddress;
@@ -553,6 +577,8 @@
 
       discoveryGroupName = BufferHelper.readNullableSimpleStringAsString(buffer); 
 
+      localBindAddress = BufferHelper.readNullableSimpleStringAsString(buffer);
+      
       discoveryAddress = BufferHelper.readNullableSimpleStringAsString(buffer);
 
       discoveryPort = buffer.readInt();
@@ -642,6 +668,8 @@
 
       BufferHelper.writeAsNullableSimpleString(buffer, discoveryGroupName);
 
+      BufferHelper.writeAsNullableSimpleString(buffer, localBindAddress);
+      
       BufferHelper.writeAsNullableSimpleString(buffer, discoveryAddress);
 
       buffer.writeInt(discoveryPort);
@@ -746,6 +774,8 @@
              
              BufferHelper.sizeOfNullableSimpleString(discoveryGroupName) +
              
+             BufferHelper.sizeOfNullableSimpleString(localBindAddress)+
+             
              BufferHelper.sizeOfNullableSimpleString(discoveryAddress)+
              
              DataConstants.SIZE_INT + // discoveryPort

Modified: trunk/src/main/org/hornetq/jms/server/impl/JMSServerConfigParserImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/impl/JMSServerConfigParserImpl.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/jms/server/impl/JMSServerConfigParserImpl.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -366,6 +366,7 @@
 
       if (discoveryGroupName != null)
       {
+         log.info("discovery group name is " + discoveryGroupName);
          cfConfig = new ConnectionFactoryConfigurationImpl(name, strbindings);
          cfConfig.setInitialWaitTimeout(discoveryInitialWaitTimeout);
          cfConfig.setDiscoveryGroupName(discoveryGroupName);

Modified: trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -767,6 +767,7 @@
    }
 
    public synchronized void createConnectionFactory(final String name,
+                                                    final String localBindAddress,
                                                     final String discoveryAddress,
                                                     final int discoveryPort,
                                                     final String clientID,
@@ -801,11 +802,15 @@
                                                     final String groupId,
                                                     final String... jndiBindings) throws Exception
    {
+      log.info("calling create cf " + discoveryRefreshTimeout + " lba " + localBindAddress);
+      
+      
       checkInitialised();
       HornetQConnectionFactory cf = connectionFactories.get(name);
       if (cf == null)
       {
          ConnectionFactoryConfiguration configuration = new ConnectionFactoryConfigurationImpl(name,
+                                                                                               localBindAddress,
                                                                                                discoveryAddress,
                                                                                                discoveryPort);
          configuration.setClientID(clientID);
@@ -903,6 +908,7 @@
    }
 
    private HornetQConnectionFactory internalCreateConnectionFactory(final String name,
+                                                                    final String localBindAddress,
                                                                     final String discoveryAddress,
                                                                     final int discoveryPort,
                                                                     final String clientID,
@@ -942,6 +948,7 @@
       {
          cf = (HornetQConnectionFactory)HornetQJMSClient.createConnectionFactory(discoveryAddress, discoveryPort);
          cf.setClientID(clientID);
+         cf.setLocalBindAddress(localBindAddress);
          cf.setDiscoveryRefreshTimeout(discoveryRefreshTimeout);
          cf.setClientFailureCheckPeriod(clientFailureCheckPeriod);
          cf.setConnectionTTL(connectionTTL);
@@ -1141,6 +1148,7 @@
       if (cfConfig.getDiscoveryAddress() != null)
       {
          cf = internalCreateConnectionFactory(cfConfig.getName(),
+                                              cfConfig.getLocalBindAddress(),
                                               cfConfig.getDiscoveryAddress(),
                                               cfConfig.getDiscoveryPort(),
                                               cfConfig.getClientID(),
@@ -1416,8 +1424,10 @@
                                                 "' deployed.");
          }
 
+         cfConfig.setLocalBindAddress(discoveryGroupConfiguration.getLocalBindAddress());
          cfConfig.setDiscoveryAddress(discoveryGroupConfiguration.getGroupAddress());
          cfConfig.setDiscoveryPort(discoveryGroupConfiguration.getGroupPort());
+         cfConfig.setDiscoveryRefreshTimeout(discoveryGroupConfiguration.getRefreshTimeout());
 
       }
    }

Modified: trunk/tests/config/ConfigurationTest-full-config.xml
===================================================================
--- trunk/tests/config/ConfigurationTest-full-config.xml	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/tests/config/ConfigurationTest-full-config.xml	2010-04-13 15:16:44 UTC (rev 9108)
@@ -104,11 +104,13 @@
       </broadcast-groups>
       <discovery-groups>
          <discovery-group name="dg1">
+            <local-bind-address>172.16.8.10</local-bind-address>
             <group-address>192.168.0.120</group-address>
             <group-port>11999</group-port>
             <refresh-timeout>12345</refresh-timeout>
          </discovery-group>
          <discovery-group name="dg2">
+            <local-bind-address>172.16.8.11</local-bind-address>
             <group-address>192.168.0.121</group-address>
             <group-port>12999</group-port>
             <refresh-timeout>23456</refresh-timeout>

Added: trunk/tests/config/hornetq-jms-for-JMSServerDeployerTest2.xml
===================================================================
--- trunk/tests/config/hornetq-jms-for-JMSServerDeployerTest2.xml	                        (rev 0)
+++ trunk/tests/config/hornetq-jms-for-JMSServerDeployerTest2.xml	2010-04-13 15:16:44 UTC (rev 9108)
@@ -0,0 +1,53 @@
+<configuration xmlns="urn:hornetq"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:hornetq ../../src/schemas/hornetq-jms.xsd ">
+
+   <connection-factory name="fullConfigurationConnectionFactory">
+      <entries>
+         <entry name="/fullConfigurationConnectionFactory"/>
+         <entry name="/acme/fullConfigurationConnectionFactory"/>
+         <entry name="java:/xyz/tfullConfigurationConnectionFactory"/>
+         <entry name="java:/connectionfactories/acme/fullConfigurationConnectionFactory"/>
+      </entries>
+      <connectors>
+         <connector-ref connector-name="netty"/>
+      </connectors>
+      <discovery-group-ref discovery-group-name="mygroup"/>
+      <client-failure-check-period>1234</client-failure-check-period>
+      <call-timeout>5678</call-timeout>
+      <consumer-window-size>12345</consumer-window-size>
+      <consumer-max-rate>6789</consumer-max-rate>
+      <confirmation-window-size>123456</confirmation-window-size>
+      <producer-window-size>7712652</producer-window-size>
+      <producer-max-rate>789</producer-max-rate>
+      <min-large-message-size>12</min-large-message-size>
+      <client-id>TestClientID</client-id>
+      <dups-ok-batch-size>3456</dups-ok-batch-size>
+      <transaction-batch-size>4567</transaction-batch-size>
+      <block-on-acknowledge>true</block-on-acknowledge>
+      <block-on-non-durable-send>false</block-on-non-durable-send>
+      <block-on-durable-send>true</block-on-durable-send>
+      <auto-group-id>false</auto-group-id>
+      <pre-acknowledge>true</pre-acknowledge>
+      <connection-ttl>2345</connection-ttl>
+      <discovery-initial-wait-timeout>678</discovery-initial-wait-timeout>
+      <failover-on-server-shutdown>false</failover-on-server-shutdown>
+      <connection-load-balancing-policy-class-name>FooClass</connection-load-balancing-policy-class-name>
+      <reconnect-attempts>34</reconnect-attempts>
+      <retry-interval>5</retry-interval>
+      <retry-interval-multiplier>6.0</retry-interval-multiplier>
+      <max-retry-interval>300</max-retry-interval>
+      <cache-large-message-client>true</cache-large-message-client>
+   </connection-factory>
+
+   <queue name="fullConfigurationQueue">
+      <entry name="/fullConfigurationQueue"/>
+      <entry name="/queue/fullConfigurationQueue"/>
+   </queue>
+
+   <topic name="fullConfigurationTopic">
+      <entry name="/fullConfigurationTopic"/>
+      <entry name="/topic/fullConfigurationTopic"/>
+   </topic>
+
+</configuration>
\ No newline at end of file

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -96,7 +96,7 @@
 
       server0.getConfiguration().getBroadcastGroupConfigurations().add(bcConfig);
 
-      DiscoveryGroupConfiguration dcConfig = new DiscoveryGroupConfiguration("dg1", groupAddress, port, 5000);
+      DiscoveryGroupConfiguration dcConfig = new DiscoveryGroupConfiguration("dg1", null, groupAddress, port, 5000);
 
       server0.getConfiguration().getDiscoveryGroupConfigurations().put(dcConfig.getName(), dcConfig);
 

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -1406,12 +1406,12 @@
                                                                              -1,
                                                                              groupAddress,
                                                                              port,
-                                                                             250,
+                                                                             1000,
                                                                              connectorPairs);
 
       configuration.getBroadcastGroupConfigurations().add(bcConfig);
 
-      DiscoveryGroupConfiguration dcConfig = new DiscoveryGroupConfiguration("dg1", groupAddress, port, 5000);
+      DiscoveryGroupConfiguration dcConfig = new DiscoveryGroupConfiguration("dg1", null, groupAddress, port, 5000);
 
       configuration.getDiscoveryGroupConfigurations().put(dcConfig.getName(), dcConfig);
 

Modified: trunk/tests/src/org/hornetq/tests/integration/discovery/DiscoveryTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/discovery/DiscoveryTest.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/tests/src/org/hornetq/tests/integration/discovery/DiscoveryTest.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -86,6 +86,7 @@
 
       DiscoveryGroup dg = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                  RandomUtil.randomString(),
+                                                 null,
                                                  groupAddress,
                                                  groupPort,
                                                  timeout);
@@ -145,6 +146,7 @@
 
       DiscoveryGroup dg = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                  RandomUtil.randomString(),
+                                                 null,
                                                  groupAddress,
                                                  groupPort,
                                                  timeout);
@@ -224,7 +226,7 @@
 
       bg.addConnectorPair(connectorPair);
 
-      DiscoveryGroup dg = new DiscoveryGroupImpl(nodeID, RandomUtil.randomString(), groupAddress, groupPort, timeout);
+      DiscoveryGroup dg = new DiscoveryGroupImpl(nodeID, RandomUtil.randomString(), null, groupAddress, groupPort, timeout);
 
       dg.start();
 
@@ -317,6 +319,7 @@
 
       DiscoveryGroup dg = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                  RandomUtil.randomString(),
+                                                 null,
                                                  groupAddress,
                                                  port2,
                                                  timeout);
@@ -364,6 +367,7 @@
 
       DiscoveryGroup dg = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                  RandomUtil.randomString(),
+                                                 null,
                                                  groupAddress2,
                                                  port2,
                                                  timeout);
@@ -451,6 +455,7 @@
 
       DiscoveryGroup dg1 = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                   RandomUtil.randomString(),
+                                                  null,
                                                   groupAddress1,
                                                   groupPort1,
                                                   timeout);
@@ -458,6 +463,7 @@
 
       DiscoveryGroup dg2 = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                   RandomUtil.randomString(),
+                                                  null,
                                                   groupAddress2,
                                                   groupPort2,
                                                   timeout);
@@ -465,6 +471,7 @@
 
       DiscoveryGroup dg3 = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                   RandomUtil.randomString(),
+                                                  null,
                                                   groupAddress3,
                                                   groupPort3,
                                                   timeout);
@@ -539,6 +546,7 @@
 
       DiscoveryGroup dg = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                  RandomUtil.randomString(),
+                                                 null,
                                                  groupAddress,
                                                  groupPort,
                                                  timeout);
@@ -591,6 +599,7 @@
 
       DiscoveryGroup dg = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                  RandomUtil.randomString(),
+                                                 null,
                                                  groupAddress,
                                                  groupPort,
                                                  timeout);
@@ -688,6 +697,7 @@
 
       DiscoveryGroup dg = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                  RandomUtil.randomString(),
+                                                 null,
                                                  groupAddress,
                                                  groupPort,
                                                  timeout);
@@ -927,18 +937,21 @@
 
       DiscoveryGroup dg1 = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                   RandomUtil.randomString(),
+                                                  null,
                                                   groupAddress,
                                                   groupPort,
                                                   timeout);
 
       DiscoveryGroup dg2 = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                   RandomUtil.randomString(),
+                                                  null,
                                                   groupAddress,
                                                   groupPort,
                                                   timeout);
 
       DiscoveryGroup dg3 = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                   RandomUtil.randomString(),
+                                                  null,
                                                   groupAddress,
                                                   groupPort,
                                                   timeout);
@@ -995,6 +1008,7 @@
 
       DiscoveryGroup dg = new DiscoveryGroupImpl(RandomUtil.randomString(),
                                                  RandomUtil.randomString(),
+                                                 null,
                                                  groupAddress,
                                                  groupPort,
                                                  timeout);

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -23,6 +23,7 @@
 
 import org.hornetq.api.core.TransportConfiguration;
 import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.DiscoveryGroupConfiguration;
 import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.deployers.DeploymentManager;
 import org.hornetq.core.deployers.impl.FileDeploymentManager;
@@ -239,7 +240,97 @@
          Assert.assertEquals("fullConfigurationTopic", topic.getTopicName());
       }
    }
+   
+   public void testDeployFullConfiguration2() throws Exception
+   {
+      JMSServerDeployer deployer = new JMSServerDeployer(jmsServer, deploymentManager, config);
 
+      String conf = "hornetq-jms-for-JMSServerDeployerTest2.xml";
+      URL confURL = Thread.currentThread().getContextClassLoader().getResource(conf);
+
+      String[] connectionFactoryBindings = new String[] { "/fullConfigurationConnectionFactory",
+                                                         "/acme/fullConfigurationConnectionFactory",
+                                                         "java:/xyz/tfullConfigurationConnectionFactory",
+                                                         "java:/connectionfactories/acme/fullConfigurationConnectionFactory" };
+      String[] queueBindings = new String[] { "/fullConfigurationQueue", "/queue/fullConfigurationQueue" };
+      String[] topicBindings = new String[] { "/fullConfigurationTopic", "/topic/fullConfigurationTopic" };
+
+      for (String binding : connectionFactoryBindings)
+      {
+         UnitTestCase.checkNoBinding(context, binding);
+      }
+      for (String binding : queueBindings)
+      {
+         UnitTestCase.checkNoBinding(context, binding);
+      }
+      for (String binding : topicBindings)
+      {
+         UnitTestCase.checkNoBinding(context, binding);
+      }
+
+      deployer.deploy(confURL);
+
+      for (String binding : connectionFactoryBindings)
+      {
+         UnitTestCase.checkBinding(context, binding);
+      }
+      for (String binding : queueBindings)
+      {
+         UnitTestCase.checkBinding(context, binding);
+      }
+      for (String binding : topicBindings)
+      {
+         UnitTestCase.checkBinding(context, binding);
+      }
+
+      for (String binding : connectionFactoryBindings)
+      {
+         HornetQConnectionFactory cf = (HornetQConnectionFactory)context.lookup(binding);
+         Assert.assertNotNull(cf);
+         Assert.assertEquals(1234, cf.getClientFailureCheckPeriod());
+         Assert.assertEquals(5678, cf.getCallTimeout());
+         Assert.assertEquals(12345, cf.getConsumerWindowSize());
+         Assert.assertEquals(6789, cf.getConsumerMaxRate());
+         Assert.assertEquals(123456, cf.getConfirmationWindowSize());
+         Assert.assertEquals(7712652, cf.getProducerWindowSize());
+         Assert.assertEquals(789, cf.getProducerMaxRate());
+         Assert.assertEquals(12, cf.getMinLargeMessageSize());
+         Assert.assertEquals("TestClientID", cf.getClientID());
+         Assert.assertEquals(3456, cf.getDupsOKBatchSize());
+         Assert.assertEquals(4567, cf.getTransactionBatchSize());
+         Assert.assertEquals(true, cf.isBlockOnAcknowledge());
+         Assert.assertEquals(false, cf.isBlockOnNonDurableSend());
+         Assert.assertEquals(true, cf.isBlockOnDurableSend());
+         Assert.assertEquals(false, cf.isAutoGroup());
+         Assert.assertEquals(true, cf.isPreAcknowledge());
+         Assert.assertEquals(2345, cf.getConnectionTTL());
+         Assert.assertEquals(false, cf.isFailoverOnServerShutdown());
+         Assert.assertEquals(34, cf.getReconnectAttempts());
+         Assert.assertEquals(5, cf.getRetryInterval());
+         Assert.assertEquals(6.0, cf.getRetryIntervalMultiplier());
+         Assert.assertEquals(true, cf.isCacheLargeMessagesClient());
+         
+         assertEquals("243.7.7.7", cf.getDiscoveryAddress());
+         assertEquals("172.16.8.10", cf.getLocalBindAddress());
+         assertEquals(12345, cf.getDiscoveryPort());
+         assertEquals(5000, cf.getDiscoveryRefreshTimeout());
+      }
+
+      for (String binding : queueBindings)
+      {
+         Queue queue = (Queue)context.lookup(binding);
+         Assert.assertNotNull(queue);
+         Assert.assertEquals("fullConfigurationQueue", queue.getQueueName());
+      }
+
+      for (String binding : topicBindings)
+      {
+         Topic topic = (Topic)context.lookup(binding);
+         Assert.assertNotNull(topic);
+         Assert.assertEquals("fullConfigurationTopic", topic.getTopicName());
+      }
+   }
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------
@@ -252,6 +343,11 @@
       config = new ConfigurationImpl();
       config.getConnectorConfigurations().put("netty",
                                               new TransportConfiguration(NettyConnectorFactory.class.getName()));
+      
+      DiscoveryGroupConfiguration dcg = new DiscoveryGroupConfiguration("mygroup", "172.16.8.10",
+                                                                        "243.7.7.7", 12345,
+                                                                        5000);
+      config.getDiscoveryGroupConfigurations().put("mygroup", dcg);
       HornetQServer server = createServer(false, config);
 
       deploymentManager = new FileDeploymentManager(config.getFileDeployerScanPeriod());

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -14,6 +14,13 @@
 package org.hornetq.tests.integration.jms.server.management;
 
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
 import javax.jms.Queue;
@@ -53,9 +60,6 @@
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;
 
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
 /**
  * A JMSServerControlTest
  *
@@ -509,6 +513,7 @@
       conf.getDiscoveryGroupConfigurations()
           .put("discovery",
                new DiscoveryGroupConfiguration("discovery",
+                                               null,
                                                "231.7.7.7",
                                                discoveryPort,
                                                ConfigurationImpl.DEFAULT_BROADCAST_REFRESH_TIMEOUT));

Modified: trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControl2Test.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControl2Test.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControl2Test.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -148,6 +148,7 @@
                                                                                          250,
                                                                                          connectorInfos);
       DiscoveryGroupConfiguration discoveryGroupConfig = new DiscoveryGroupConfiguration(discoveryName,
+                                                                                         null,
                                                                                          groupAddress,
                                                                                          groupPort,
                                                                                          HornetQClient.DEFAULT_DISCOVERY_REFRESH_TIMEOUT);

Modified: trunk/tests/src/org/hornetq/tests/integration/management/DiscoveryGroupControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/DiscoveryGroupControlTest.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/tests/src/org/hornetq/tests/integration/management/DiscoveryGroupControlTest.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -52,6 +52,7 @@
    public void testAttributes() throws Exception
    {
       DiscoveryGroupConfiguration discoveryGroupConfig = new DiscoveryGroupConfiguration(RandomUtil.randomString(),
+                                                                                         null,
                                                                                          "231.7.7.7",
                                                                                          2000,
                                                                                          RandomUtil.randomPositiveLong());
@@ -76,6 +77,7 @@
    public void testStartStop() throws Exception
    {
       DiscoveryGroupConfiguration discoveryGroupConfig = new DiscoveryGroupConfiguration(RandomUtil.randomString(),
+                                                                                         null,
                                                                                          "231.7.7.7",
                                                                                          2000,
                                                                                          RandomUtil.randomPositiveLong());

Modified: trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java	2010-04-13 14:46:35 UTC (rev 9107)
+++ trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java	2010-04-13 15:16:44 UTC (rev 9108)
@@ -164,12 +164,14 @@
       DiscoveryGroupConfiguration dc = conf.getDiscoveryGroupConfigurations().get("dg1");
       Assert.assertEquals("dg1", dc.getName());
       Assert.assertEquals("192.168.0.120", dc.getGroupAddress());
+      assertEquals("172.16.8.10", dc.getLocalBindAddress());
       Assert.assertEquals(11999, dc.getGroupPort());
       Assert.assertEquals(12345, dc.getRefreshTimeout());
 
       dc = conf.getDiscoveryGroupConfigurations().get("dg2");
       Assert.assertEquals("dg2", dc.getName());
       Assert.assertEquals("192.168.0.121", dc.getGroupAddress());
+      assertEquals("172.16.8.11", dc.getLocalBindAddress());
       Assert.assertEquals(12999, dc.getGroupPort());
       Assert.assertEquals(23456, dc.getRefreshTimeout());
 



More information about the hornetq-commits mailing list