[hornetq-commits] JBoss hornetq SVN: r9059 - in trunk: tests/src/org/hornetq/tests/integration/cluster/bridge and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Apr 6 04:41:38 EDT 2010


Author: jmesnil
Date: 2010-04-06 04:41:37 -0400 (Tue, 06 Apr 2010)
New Revision: 9059

Modified:
   trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java
Log:
https://jira.jboss.org/jira/browse/HORNETQ-338: forwarding-address must neither be null nor empty

* added test

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-06 08:23:42 UTC (rev 9058)
+++ trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java	2010-04-06 08:41:37 UTC (rev 9059)
@@ -466,7 +466,7 @@
                                  pair,
                                  executorFactory.getExecutor(),
                                  SimpleString.toSimpleString(config.getFilterString()),
-                                 new SimpleString(config.getForwardingAddress()),
+                                 SimpleString.toSimpleString(config.getForwardingAddress()),
                                  scheduledExecutor,
                                  transformer,
                                  config.getRetryInterval(),

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java	2010-04-06 08:23:42 UTC (rev 9058)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java	2010-04-06 08:41:37 UTC (rev 9059)
@@ -713,7 +713,147 @@
       }
 
    }
+   
+   public void testNullForwardingAddress() throws Exception
+   {
+      HornetQServer server0 = null;
+      HornetQServer server1 = null;
 
+      try
+      {
+         Map<String, Object> server0Params = new HashMap<String, Object>();
+         server0 = createClusteredServerWithParams(isNetty(), 0, false, server0Params);
+
+         Map<String, Object> server1Params = new HashMap<String, Object>();
+         addTargetParameters(server1Params);
+         server1 = createClusteredServerWithParams(isNetty(), 1, false, server1Params);
+
+         final String testAddress = "testAddress";
+         final String queueName0 = "queue0";
+         final String queueName1 = "queue1";
+
+         Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+         TransportConfiguration server0tc = new TransportConfiguration(getConnector(), server0Params);
+
+         TransportConfiguration server1tc = new TransportConfiguration(getConnector(), server1Params);
+         connectors.put(server1tc.getName(), server1tc);
+
+         server0.getConfiguration().setConnectorConfigurations(connectors);
+
+         Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), null);
+
+         final int messageSize = 1024;
+
+         final int numMessages = 10;
+
+         BridgeConfiguration bridgeConfiguration = new BridgeConfiguration("bridge1",
+                                                                           queueName0,
+                                                                           null, // pass a null forwarding address to use messages' original address
+                                                                           null,
+                                                                           null,
+                                                                           1000,
+                                                                           1d,
+                                                                           -1,
+                                                                           true,
+                                                                           false,
+                                                                           // Choose confirmation size to make sure acks
+                                                                           // are sent
+                                                                           numMessages * messageSize / 2,
+                                                                           HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
+                                                                           connectorPair,
+                                                                           ConfigurationImpl.DEFAULT_CLUSTER_USER,
+                                                                           ConfigurationImpl.DEFAULT_CLUSTER_PASSWORD);
+
+         List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+         bridgeConfigs.add(bridgeConfiguration);
+         server0.getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+         CoreQueueConfiguration queueConfig0 = new CoreQueueConfiguration(testAddress, queueName0, null, true);
+         List<CoreQueueConfiguration> queueConfigs0 = new ArrayList<CoreQueueConfiguration>();
+         queueConfigs0.add(queueConfig0);
+         server0.getConfiguration().setQueueConfigurations(queueConfigs0);
+
+         // on server #1, we bind queueName1 to same address testAddress 
+         CoreQueueConfiguration queueConfig1 = new CoreQueueConfiguration(testAddress, queueName1, null, true);
+         List<CoreQueueConfiguration> queueConfigs1 = new ArrayList<CoreQueueConfiguration>();
+         queueConfigs1.add(queueConfig1);
+         server1.getConfiguration().setQueueConfigurations(queueConfigs1);
+
+         server1.start();
+         server0.start();
+
+         ClientSessionFactory sf0 = HornetQClient.createClientSessionFactory(server0tc);
+
+         ClientSessionFactory sf1 = HornetQClient.createClientSessionFactory(server1tc);
+
+         ClientSession session0 = sf0.createSession(false, true, true);
+
+         ClientSession session1 = sf1.createSession(false, true, true);
+
+         ClientProducer producer0 = session0.createProducer(new SimpleString(testAddress));
+
+         ClientConsumer consumer1 = session1.createConsumer(queueName1);
+
+         session1.start();
+
+         final byte[] bytes = new byte[messageSize];
+
+         final SimpleString propKey = new SimpleString("testkey");
+
+         for (int i = 0; i < numMessages; i++)
+         {
+            ClientMessage message = session0.createMessage(false);
+
+            message.putIntProperty(propKey, i);
+
+            message.getBodyBuffer().writeBytes(bytes);
+
+            producer0.send(message);
+         }
+
+         for (int i = 0; i < numMessages; i++)
+         {
+            ClientMessage message = consumer1.receive(200);
+
+            Assert.assertNotNull(message);
+
+            Assert.assertEquals(i, message.getObjectProperty(propKey));
+
+            message.acknowledge();
+         }
+
+         Assert.assertNull(consumer1.receiveImmediate());
+
+         session0.close();
+
+         session1.close();
+
+         sf0.close();
+
+         sf1.close();
+
+      }
+      finally
+      {
+         try
+         {
+            server0.stop();
+         }
+         catch (Throwable ignored)
+         {
+         }
+
+         try
+         {
+            server1.stop();
+         }
+         catch (Throwable ignored)
+         {
+         }
+      }
+
+   }
+
    @Override
    protected void setUp() throws Exception
    {



More information about the hornetq-commits mailing list