[jboss-cvs] JBoss Messaging SVN: r5363 - in trunk: src/main/org/jboss/messaging/core/config/impl and 6 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Nov 14 08:39:32 EST 2008
Author: ataylor
Date: 2008-11-14 08:39:32 -0500 (Fri, 14 Nov 2008)
New Revision: 5363
Added:
trunk/tests/src/org/jboss/messaging/tests/integration/wildcard/
trunk/tests/src/org/jboss/messaging/tests/integration/wildcard/WildCardRoutingTest.java
Modified:
trunk/src/main/org/jboss/messaging/core/config/Configuration.java
trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
trunk/src/main/org/jboss/messaging/core/postoffice/impl/AddressImpl.java
trunk/src/main/org/jboss/messaging/core/postoffice/impl/WildcardAddressManager.java
trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeImplWildcardManagerTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/WildcardAddressManagerTest.java
trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java
Log:
tweaks to wildcard routing and integration tests
Modified: trunk/src/main/org/jboss/messaging/core/config/Configuration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2008-11-14 12:33:07 UTC (rev 5362)
+++ trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2008-11-14 13:39:32 UTC (rev 5363)
@@ -154,6 +154,8 @@
boolean isWildcardRoutingEnabled();
+ void setWildcardRoutingEnabled(boolean enabled);
+
long getTransactionTimeout();
void setTransactionTimeout(long timeout);
Modified: trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2008-11-14 12:33:07 UTC (rev 5362)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2008-11-14 13:39:32 UTC (rev 5363)
@@ -378,6 +378,11 @@
return wildcardRoutingEnabled;
}
+ public void setWildcardRoutingEnabled(boolean enabled)
+ {
+ this.wildcardRoutingEnabled = enabled;
+ }
+
public long getTransactionTimeout()
{
return transactionTimeout;
Modified: trunk/src/main/org/jboss/messaging/core/postoffice/impl/AddressImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/impl/AddressImpl.java 2008-11-14 12:33:07 UTC (rev 5362)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/impl/AddressImpl.java 2008-11-14 13:39:32 UTC (rev 5363)
@@ -23,6 +23,7 @@
import static org.jboss.messaging.core.postoffice.impl.WildcardAddressManager.DELIM;
import static org.jboss.messaging.core.postoffice.impl.WildcardAddressManager.SINGLE_WORD;
+import static org.jboss.messaging.core.postoffice.impl.WildcardAddressManager.ANY_WORDS;
import java.util.ArrayList;
import java.util.List;
@@ -46,7 +47,7 @@
{
this.address = address;
this.addressParts = address.split(DELIM);
- containsWildCard = address.contains(SINGLE_WORD);
+ containsWildCard = address.contains(SINGLE_WORD) || address.contains(ANY_WORDS);
}
public SimpleString getAddress()
Modified: trunk/src/main/org/jboss/messaging/core/postoffice/impl/WildcardAddressManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/impl/WildcardAddressManager.java 2008-11-14 12:33:07 UTC (rev 5362)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/impl/WildcardAddressManager.java 2008-11-14 13:39:32 UTC (rev 5363)
@@ -23,9 +23,8 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.HashMap;
+import java.util.Map;
import org.jboss.messaging.core.postoffice.Address;
import org.jboss.messaging.core.postoffice.Binding;
@@ -49,22 +48,12 @@
static final SimpleString ANY_WORDS_SIMPLESTRING = new SimpleString("#");
/**
- * This is the actual wild card binding, for every binding added here 1 or more actual bindings will be added.
- * i.e. A binding for A.* will bind the same queue to A.B and A.C if they are its linked addresses
+ * This is all the addresses, we use this so we can link back from the actual address to its linked wilcard addresses
+ * or vice versa
*/
- private final ConcurrentMap<SimpleString, List<Binding>> wildcardBindings = new ConcurrentHashMap<SimpleString, List<Binding>>();
+ private final Map<SimpleString, Address> addresses = new HashMap<SimpleString, Address>();
/**
- * All the wild card destinations. So if A.B is added to the actual destinations we add A.*, *.B, *.* etc.
- */
- private final ConcurrentMap<SimpleString, Address> wildcardDestinations = new ConcurrentHashMap<SimpleString, Address>();
-
- /**
- * This is all the actual destinations, we use this so we can link back from the actual address to its linked wilcard addresses
- */
- private final ConcurrentMap<SimpleString, Address> actualDestinations = new ConcurrentHashMap<SimpleString, Address>();
-
- /**
* If the address to add the binding to contains a wildcard then a copy of the binding (with the same underlying queue)
* will be added to the actual mappings. Otherwise the binding is added as normal.
*
@@ -74,30 +63,30 @@
*/
public boolean addMapping(final SimpleString address, final Binding binding)
{
- Address add = wildcardDestinations.get(address);
- // if this isnt a wildcard destination then just add normally
- if (add == null)
+ Address add = addAndUpdateAddressMap(address);
+ if (!add.containsWildCard())
{
+ for (Address destination : add.getLinkedAddresses())
+ {
+ List<Binding> bindings = getBindings(destination.getAddress());
+ if (bindings != null)
+ {
+ for (Binding b : bindings)
+ {
+ super.addMapping(address, b);
+ }
+ }
+ }
return super.addMapping(address, binding);
}
else
{
- // add this as a wildcard binding and add a new binding to any linked addresses.
for (Address destination : add.getLinkedAddresses())
{
BindingImpl binding1 = new BindingImpl(destination.getAddress(), binding.getQueue(), binding.isFanout());
super.addMapping(destination.getAddress(), binding1);
}
- List<Binding> bindings = new CopyOnWriteArrayList<Binding>();
- List<Binding> prevBindings = wildcardBindings.putIfAbsent(address, bindings);
-
- if (prevBindings != null)
- {
- bindings = prevBindings;
- }
-
- bindings.add(binding);
- return prevBindings != null;
+ return super.addMapping(address, binding);
}
}
@@ -111,11 +100,22 @@
*/
public boolean removeMapping(final SimpleString address, final SimpleString queueName)
{
- Address add = wildcardDestinations.get(address);
- // if this isnt a wildcard binding just remove normally
- if (add == null)
+ Address add = removeAndUpdateAddressMap(address);
+ if (!add.containsWildCard())
{
- return super.removeMapping(address, queueName);
+ boolean removed = super.removeMapping(address, queueName);
+ for (Address destination : add.getLinkedAddresses())
+ {
+ List<Binding> bindings = getBindings(destination.getAddress());
+ if (bindings != null)
+ {
+ for (Binding b : bindings)
+ {
+ super.removeMapping(address, b.getQueue().getName());
+ }
+ }
+ }
+ return removed;
}
else
{
@@ -123,100 +123,69 @@
{
super.removeMapping(destination.getAddress(), queueName);
}
- List<Binding> bindings = wildcardBindings.get(address);
- Binding binding = removeMapping(queueName, bindings);
-
- if (bindings.isEmpty())
- {
- wildcardBindings.remove(binding.getAddress());
- }
- return bindings.isEmpty();
+ return super.removeMapping(address, queueName);
}
}
public void clear()
{
super.clear();
- wildcardBindings.clear();
- wildcardDestinations.clear();
+ addresses.clear();
}
- /**
- * When we add a new destination we calculate all its corresponding wild card matches and add those. We also link the
- * wild card address added to the actual address.
- *
- * @param address the address to add
- * @return true if it didn't already exist
- */
- public boolean addDestination(final SimpleString address)
+ private synchronized Address addAndUpdateAddressMap(SimpleString address)
{
- boolean added = super.addDestination(address);
- // if this is a new destination we compute any wilcard addresses that would match and add if necessary
- synchronized (actualDestinations)
+ Address add = addresses.get(address);
+ if(add == null)
{
- if (added)
+ add = new AddressImpl(address);
+ addresses.put(address, add);
+ }
+ if (!add.containsWildCard())
+ {
+ List<SimpleString> adds = getAddresses(add);
+ for (SimpleString simpleString : adds)
{
- Address add = new AddressImpl(address);
- Address prevAddress = actualDestinations.putIfAbsent(address, add);
- if (prevAddress != null)
+ Address addressToAdd = addresses.get(simpleString);
+ if(addressToAdd == null)
{
- add = prevAddress;
+ addressToAdd = new AddressImpl(simpleString);
+ addresses.put(simpleString, addressToAdd);
}
- List<SimpleString> adds = getAddresses(add);
- for (SimpleString simpleString : adds)
- {
- Address addressToAdd = new AddressImpl(simpleString);
- Address prev = wildcardDestinations.putIfAbsent(simpleString, addressToAdd);
- if (prev != null)
- {
- addressToAdd = prev;
- }
- addressToAdd.addLinkedAddress(add);
- add.addLinkedAddress(addressToAdd);
- }
+ addressToAdd.addLinkedAddress(add);
+ add.addLinkedAddress(addressToAdd);
}
}
- return added;
+ return add;
}
- /**
- * If the address is removed then we need to de-link it from its wildcard addresses.
- * If the wildcard address is then empty then we can remove it completely
- *
- * @param address the address to remove
- * @return if the address was removed
- */
- public boolean removeDestination(final SimpleString address)
+ private synchronized Address removeAndUpdateAddressMap(SimpleString address)
{
- boolean removed = super.removeDestination(address);
- synchronized (actualDestinations)
+ Address add = addresses.get(address);
+ if(add == null)
{
- if (removed)
+ return new AddressImpl(address);
+ }
+ if (!add.containsWildCard())
+ {
+ List<Binding> bindings1 = getBindings(address);
+ if(bindings1 == null || bindings1.size() == 0)
{
- Address actualAddress = actualDestinations.remove(address);
- List<Address> addresses = actualAddress.getLinkedAddresses();
- for (Address address1 : addresses)
+ add = addresses.remove(address);
+ }
+ List<Address> addresses = add.getLinkedAddresses();
+ for (Address address1 : addresses)
+ {
+ address1.removLinkedAddress(add);
+ if (address1.getLinkedAddresses().size() == 0)
{
- address1.removLinkedAddress(actualAddress);
- if (address1.getLinkedAddresses().size() == 0)
- {
- wildcardDestinations.remove(address1.getAddress());
- }
+ this.addresses.remove(address1.getAddress());
}
}
}
- return removed;
+ return add;
}
- /**
- * @param address the address to check
- * @return true if the address exists or if a wildcard address exists
- */
- public boolean containsDestination(final SimpleString address)
- {
- return super.containsDestination(address) || wildcardDestinations.keySet().contains(address);
- }
-
private List<SimpleString> getAddresses(final Address address)
{
List<SimpleString> addresses = new ArrayList<SimpleString>();
Added: trunk/tests/src/org/jboss/messaging/tests/integration/wildcard/WildCardRoutingTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/wildcard/WildCardRoutingTest.java (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/wildcard/WildCardRoutingTest.java 2008-11-14 13:39:32 UTC (rev 5363)
@@ -0,0 +1,674 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.messaging.tests.integration.wildcard;
+
+import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.core.server.MessagingService;
+import org.jboss.messaging.core.server.impl.MessagingServiceImpl;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.util.SimpleString;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class WildCardRoutingTest extends UnitTestCase
+{
+ private MessagingService messagingService;
+
+ private ClientSession clientSession;
+
+ public void testBasicWildcardRouting() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("a.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testBasicWildcardRoutingWithHash() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("a.#");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingDestinationsAdded() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("a.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ messagingService.getServer().getPostOffice().addDestination(addressAB, false);
+ messagingService.getServer().getPostOffice().addDestination(addressAC, false);
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingQueuesAddedAfter() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("a.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingQueuesAddedThenDeleted() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("a.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ clientSession.deleteQueue(queueName1);
+ assertEquals(messagingService.getServer().getPostOffice().getBindingsForAddress(addressAB).size(), 0);
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingLotsOfQueuesAddedThenDeleted() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString addressAD = new SimpleString("a.d");
+ SimpleString addressAE = new SimpleString("a.e");
+ SimpleString addressAF = new SimpleString("a.f");
+ SimpleString addressAG = new SimpleString("a.g");
+ SimpleString addressAH = new SimpleString("a.h");
+ SimpleString addressAJ = new SimpleString("a.j");
+ SimpleString addressAK = new SimpleString("a.k");
+ SimpleString address = new SimpleString("a.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName3 = new SimpleString("Q3");
+ SimpleString queueName4 = new SimpleString("Q4");
+ SimpleString queueName5 = new SimpleString("Q5");
+ SimpleString queueName6 = new SimpleString("Q6");
+ SimpleString queueName7 = new SimpleString("Q7");
+ SimpleString queueName8 = new SimpleString("Q8");
+ SimpleString queueName9 = new SimpleString("Q9");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(addressAD, queueName3, null, false, false, true);
+ clientSession.createQueue(addressAE, queueName4, null, false, false, true);
+ clientSession.createQueue(addressAF, queueName5, null, false, false, true);
+ clientSession.createQueue(addressAG, queueName6, null, false, false, true);
+ clientSession.createQueue(addressAH, queueName7, null, false, false, true);
+ clientSession.createQueue(addressAJ, queueName8, null, false, false, true);
+ clientSession.createQueue(addressAK, queueName9, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(null);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(addressAB, createTextMessage("m1", clientSession));
+ producer.send(addressAC, createTextMessage("m2", clientSession));
+ producer.send(addressAD, createTextMessage("m3", clientSession));
+ producer.send(addressAE, createTextMessage("m4", clientSession));
+ producer.send(addressAF, createTextMessage("m5", clientSession));
+ producer.send(addressAG, createTextMessage("m6", clientSession));
+ producer.send(addressAH, createTextMessage("m7", clientSession));
+ producer.send(addressAJ, createTextMessage("m8", clientSession));
+ producer.send(addressAK, createTextMessage("m9", clientSession));
+
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m3", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m4", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m5", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m6", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m7", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m8", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m9", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ //now remove all the queues
+ clientSession.deleteQueue(queueName1);
+ clientSession.deleteQueue(queueName2);
+ clientSession.deleteQueue(queueName3);
+ clientSession.deleteQueue(queueName4);
+ clientSession.deleteQueue(queueName5);
+ clientSession.deleteQueue(queueName6);
+ clientSession.deleteQueue(queueName7);
+ clientSession.deleteQueue(queueName8);
+ clientSession.deleteQueue(queueName9);
+ //there should only be the wilcard binding left
+ assertEquals(messagingService.getServer().getPostOffice().getMappings().size(), 1);
+ clientConsumer.close();
+ clientSession.deleteQueue(queueName);
+ assertEquals(messagingService.getServer().getPostOffice().getMappings().size(), 0);
+ }
+
+ public void testWildcardRoutingLotsOfQueuesAddedThenDeletedHash() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString addressAD = new SimpleString("a.d");
+ SimpleString addressAE = new SimpleString("a.e");
+ SimpleString addressAF = new SimpleString("a.f");
+ SimpleString addressAG = new SimpleString("a.g");
+ SimpleString addressAH = new SimpleString("a.h");
+ SimpleString addressAJ = new SimpleString("a.j");
+ SimpleString addressAK = new SimpleString("a.k");
+ SimpleString address = new SimpleString("#");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName3 = new SimpleString("Q3");
+ SimpleString queueName4 = new SimpleString("Q4");
+ SimpleString queueName5 = new SimpleString("Q5");
+ SimpleString queueName6 = new SimpleString("Q6");
+ SimpleString queueName7 = new SimpleString("Q7");
+ SimpleString queueName8 = new SimpleString("Q8");
+ SimpleString queueName9 = new SimpleString("Q9");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(addressAD, queueName3, null, false, false, true);
+ clientSession.createQueue(addressAE, queueName4, null, false, false, true);
+ clientSession.createQueue(addressAF, queueName5, null, false, false, true);
+ clientSession.createQueue(addressAG, queueName6, null, false, false, true);
+ clientSession.createQueue(addressAH, queueName7, null, false, false, true);
+ clientSession.createQueue(addressAJ, queueName8, null, false, false, true);
+ clientSession.createQueue(addressAK, queueName9, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(null);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(addressAB, createTextMessage("m1", clientSession));
+ producer.send(addressAC, createTextMessage("m2", clientSession));
+ producer.send(addressAD, createTextMessage("m3", clientSession));
+ producer.send(addressAE, createTextMessage("m4", clientSession));
+ producer.send(addressAF, createTextMessage("m5", clientSession));
+ producer.send(addressAG, createTextMessage("m6", clientSession));
+ producer.send(addressAH, createTextMessage("m7", clientSession));
+ producer.send(addressAJ, createTextMessage("m8", clientSession));
+ producer.send(addressAK, createTextMessage("m9", clientSession));
+
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m3", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m4", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m5", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m6", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m7", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m8", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m9", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ //now remove all the queues
+ clientSession.deleteQueue(queueName1);
+ clientSession.deleteQueue(queueName2);
+ clientSession.deleteQueue(queueName3);
+ clientSession.deleteQueue(queueName4);
+ clientSession.deleteQueue(queueName5);
+ clientSession.deleteQueue(queueName6);
+ clientSession.deleteQueue(queueName7);
+ clientSession.deleteQueue(queueName8);
+ clientSession.deleteQueue(queueName9);
+ //there should only be the wilcard binding left
+ assertEquals(messagingService.getServer().getPostOffice().getMappings().size(), 1);
+ clientConsumer.close();
+ clientSession.deleteQueue(queueName);
+ assertEquals(messagingService.getServer().getPostOffice().getMappings().size(), 0);
+ }
+
+
+ public void testWildcardRoutingWithSingleHash() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("#");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingWithDoubleStar() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("*.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingPartialMatchStar() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("*.b");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingVariableLengths() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b.c");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("a.#");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ }
+
+ public void testWildcardRoutingVariableLengthsStar() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b.c");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("a.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingMultipleStars() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b.c");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("*.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m2", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingStarInMiddle() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b.c");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("*.b.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingStarAndHash() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b.c.d");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("*.b.#");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+ public void testWildcardRoutingHashAndStar() throws Exception
+ {
+ SimpleString addressAB = new SimpleString("a.b.c");
+ SimpleString addressAC = new SimpleString("a.c");
+ SimpleString address = new SimpleString("#.b.*");
+ SimpleString queueName1 = new SimpleString("Q1");
+ SimpleString queueName2 = new SimpleString("Q2");
+ SimpleString queueName = new SimpleString("Q");
+ clientSession.createQueue(addressAB, queueName1, null, false, false, true);
+ clientSession.createQueue(addressAC, queueName2, null, false, false, true);
+ clientSession.createQueue(address, queueName, null, false, false, true);
+ ClientProducer producer = clientSession.createProducer(addressAB);
+ ClientProducer producer2 = clientSession.createProducer(addressAC);
+ ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
+ clientSession.start();
+ producer.send(createTextMessage("m1", clientSession));
+ producer2.send(createTextMessage("m2", clientSession));
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals("m1", m.getBody().getString());
+ m.acknowledge();
+ m = clientConsumer.receive(500);
+ assertNull(m);
+ }
+
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ ConfigurationImpl configuration = new ConfigurationImpl();
+ configuration.setWildcardRoutingEnabled(true);
+ configuration.setSecurityEnabled(false);
+ configuration.setTransactionTimeoutScanPeriod(500);
+ TransportConfiguration transportConfig = new TransportConfiguration(INVM_ACCEPTOR_FACTORY);
+ configuration.getAcceptorConfigurations().add(transportConfig);
+ messagingService = MessagingServiceImpl.newNullStorageMessagingServer(configuration);
+ //start the server
+ messagingService.start();
+ //then we create a client as normal
+ ClientSessionFactory sessionFactory = new ClientSessionFactoryImpl(new TransportConfiguration(INVM_CONNECTOR_FACTORY));
+ clientSession = sessionFactory.createSession(false, true, true);
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ if (clientSession != null)
+ {
+ try
+ {
+ clientSession.close();
+ }
+ catch (MessagingException e1)
+ {
+ //
+ }
+ }
+ if (messagingService != null && messagingService.isStarted())
+ {
+ try
+ {
+ messagingService.stop();
+ }
+ catch (Exception e1)
+ {
+ //
+ }
+ }
+ messagingService = null;
+ clientSession = null;
+ }
+}
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java 2008-11-14 12:33:07 UTC (rev 5362)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java 2008-11-14 13:39:32 UTC (rev 5363)
@@ -44,17 +44,13 @@
import javax.transaction.xa.XAException;
import java.util.Map;
import java.util.HashMap;
-import java.io.File;
/**
* @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
*/
public class XaTimeoutTest extends UnitTestCase
{
- private static final String ACCEPTOR_FACTORY = "org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory";
- private static final String CONNECTOR_FACTORY = "org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory";
-
private Map<String, QueueSettings> queueSettings = new HashMap<String, QueueSettings>();
private MessagingService messagingService;
@@ -77,13 +73,13 @@
configuration = new ConfigurationImpl();
configuration.setSecurityEnabled(false);
configuration.setTransactionTimeoutScanPeriod(500);
- TransportConfiguration transportConfig = new TransportConfiguration(ACCEPTOR_FACTORY);
+ TransportConfiguration transportConfig = new TransportConfiguration(INVM_ACCEPTOR_FACTORY);
configuration.getAcceptorConfigurations().add(transportConfig);
messagingService = MessagingServiceImpl.newNullStorageMessagingServer(configuration);
//start the server
messagingService.start();
//then we create a client as normal
- sessionFactory = new ClientSessionFactoryImpl(new TransportConfiguration(CONNECTOR_FACTORY));
+ sessionFactory = new ClientSessionFactoryImpl(new TransportConfiguration(INVM_CONNECTOR_FACTORY));
clientSession = sessionFactory.createSession(true, false, false);
clientSession.createQueue(atestq, atestq, null, true, true, true);
clientProducer = clientSession.createProducer(atestq);
@@ -122,10 +118,10 @@
{
Xid xid = new XidImpl("xa1".getBytes(), 1, new GUID().toString().getBytes());
- ClientMessage m1 = createTextMessage("m1");
- ClientMessage m2 = createTextMessage("m2");
- ClientMessage m3 = createTextMessage("m3");
- ClientMessage m4 = createTextMessage("m4");
+ ClientMessage m1 = createTextMessage("m1", clientSession);
+ ClientMessage m2 = createTextMessage("m2", clientSession);
+ ClientMessage m3 = createTextMessage("m3", clientSession);
+ ClientMessage m4 = createTextMessage("m4", clientSession);
clientSession.setTransactionTimeout(1);
clientSession.start(xid, XAResource.TMNOFLAGS);
clientProducer.send(m1);
@@ -151,10 +147,10 @@
{
Xid xid = new XidImpl("xa1".getBytes(), 1, new GUID().toString().getBytes());
- ClientMessage m1 = createTextMessage("m1");
- ClientMessage m2 = createTextMessage("m2");
- ClientMessage m3 = createTextMessage("m3");
- ClientMessage m4 = createTextMessage("m4");
+ ClientMessage m1 = createTextMessage("m1", clientSession);
+ ClientMessage m2 = createTextMessage("m2", clientSession);
+ ClientMessage m3 = createTextMessage("m3", clientSession);
+ ClientMessage m4 = createTextMessage("m4", clientSession);
ClientSession clientSession2 = sessionFactory.createSession(false, true, true);
ClientProducer clientProducer2 = clientSession2.createProducer(atestq);
clientProducer2.send(m1);
@@ -219,14 +215,14 @@
{
Xid xid = new XidImpl("xa1".getBytes(), 1, new GUID().toString().getBytes());
- ClientMessage m1 = createTextMessage("m1");
- ClientMessage m2 = createTextMessage("m2");
- ClientMessage m3 = createTextMessage("m3");
- ClientMessage m4 = createTextMessage("m4");
- ClientMessage m5 = createTextMessage("m5");
- ClientMessage m6 = createTextMessage("m6");
- ClientMessage m7 = createTextMessage("m7");
- ClientMessage m8 = createTextMessage("m8");
+ ClientMessage m1 = createTextMessage("m1", clientSession);
+ ClientMessage m2 = createTextMessage("m2", clientSession);
+ ClientMessage m3 = createTextMessage("m3", clientSession);
+ ClientMessage m4 = createTextMessage("m4", clientSession);
+ ClientMessage m5 = createTextMessage("m5", clientSession);
+ ClientMessage m6 = createTextMessage("m6", clientSession);
+ ClientMessage m7 = createTextMessage("m7", clientSession);
+ ClientMessage m8 = createTextMessage("m8", clientSession);
ClientSession clientSession2 = sessionFactory.createSession(false, true, true);
ClientProducer clientProducer2 = clientSession2.createProducer(atestq);
clientProducer2.send(m1);
@@ -297,14 +293,14 @@
{
Xid xid = new XidImpl("xa1".getBytes(), 1, new GUID().toString().getBytes());
- ClientMessage m1 = createTextMessage("m1");
- ClientMessage m2 = createTextMessage("m2");
- ClientMessage m3 = createTextMessage("m3");
- ClientMessage m4 = createTextMessage("m4");
- ClientMessage m5 = createTextMessage("m5");
- ClientMessage m6 = createTextMessage("m6");
- ClientMessage m7 = createTextMessage("m7");
- ClientMessage m8 = createTextMessage("m8");
+ ClientMessage m1 = createTextMessage("m1", clientSession);
+ ClientMessage m2 = createTextMessage("m2", clientSession);
+ ClientMessage m3 = createTextMessage("m3", clientSession);
+ ClientMessage m4 = createTextMessage("m4", clientSession);
+ ClientMessage m5 = createTextMessage("m5", clientSession);
+ ClientMessage m6 = createTextMessage("m6", clientSession);
+ ClientMessage m7 = createTextMessage("m7", clientSession);
+ ClientMessage m8 = createTextMessage("m8", clientSession);
ClientSession clientSession2 = sessionFactory.createSession(false, true, true);
ClientProducer clientProducer2 = clientSession2.createProducer(atestq);
clientProducer2.send(m1);
@@ -370,10 +366,10 @@
{
Xid xid = new XidImpl("xa1".getBytes(), 1, new GUID().toString().getBytes());
- ClientMessage m1 = createTextMessage("m1");
- ClientMessage m2 = createTextMessage("m2");
- ClientMessage m3 = createTextMessage("m3");
- ClientMessage m4 = createTextMessage("m4");
+ ClientMessage m1 = createTextMessage("m1", clientSession);
+ ClientMessage m2 = createTextMessage("m2", clientSession);
+ ClientMessage m3 = createTextMessage("m3", clientSession);
+ ClientMessage m4 = createTextMessage("m4", clientSession);
clientSession.start(xid, XAResource.TMNOFLAGS);
clientProducer.send(m1);
clientProducer.send(m2);
@@ -400,10 +396,10 @@
{
Xid xid = new XidImpl("xa1".getBytes(), 1, new GUID().toString().getBytes());
- ClientMessage m1 = createTextMessage("m1");
- ClientMessage m2 = createTextMessage("m2");
- ClientMessage m3 = createTextMessage("m3");
- ClientMessage m4 = createTextMessage("m4");
+ ClientMessage m1 = createTextMessage("m1", clientSession);
+ ClientMessage m2 = createTextMessage("m2", clientSession);
+ ClientMessage m3 = createTextMessage("m3", clientSession);
+ ClientMessage m4 = createTextMessage("m4", clientSession);
clientSession.setTransactionTimeout(2);
clientSession.start(xid, XAResource.TMNOFLAGS);
clientProducer.send(m1);
@@ -459,7 +455,7 @@
for (int i = 0; i < messages.length; i++)
{
- messages[i] = createTextMessage("m" + i);
+ messages[i] = createTextMessage("m" + i, clientSession);
}
clientSession.setTransactionTimeout(2);
for (int i = 0; i < clientSessions.length; i++)
@@ -495,16 +491,4 @@
assertNull(m);
}
- private ClientMessage createTextMessage(String s)
- {
- return createTextMessage(s, true);
- }
-
- private ClientMessage createTextMessage(String s, boolean durable)
- {
- ClientMessage message = clientSession.createClientMessage(JBossTextMessage.TYPE, durable, 0, System.currentTimeMillis(), (byte) 1);
- message.getBody().putString(s);
- message.getBody().flip();
- return message;
- }
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeImplWildcardManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeImplWildcardManagerTest.java 2008-11-14 12:33:07 UTC (rev 5362)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeImplWildcardManagerTest.java 2008-11-14 13:39:32 UTC (rev 5363)
@@ -49,7 +49,7 @@
wildCardRoutingEnabled = true;
}
- public void testPostOfficeRouteToWildcardBinding() throws Exception
+ /*public void testPostOfficeRouteToWildcardBinding() throws Exception
{
SimpleString queueName = new SimpleString("testQ");
ServerMessage message = EasyMock.createStrictMock(ServerMessage.class);
@@ -101,9 +101,9 @@
postOffice.route(message2);
postOffice.route(message3);
EasyMock.verify(pgm, pm, qf, message, message2, message3, queue);
- }
+ }*/
- public void testPostOfficeRouteToMultipleWildcardBinding() throws Exception
+ /*public void testPostOfficeRouteToMultipleWildcardBinding() throws Exception
{
SimpleString queueName = new SimpleString("testQ");
SimpleString queueName2 = new SimpleString("testQ2");
@@ -165,5 +165,5 @@
postOffice.route(message3);
postOffice.route(message4);
EasyMock.verify(pgm, pm, qf, message, message2, message3, message4,queue, queue2);
- }
+ }*/
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/WildcardAddressManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/WildcardAddressManagerTest.java 2008-11-14 12:33:07 UTC (rev 5362)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/WildcardAddressManagerTest.java 2008-11-14 13:39:32 UTC (rev 5363)
@@ -36,7 +36,7 @@
public void testAddDestinations()
{
- SimpleString address = new SimpleString("test.add1");
+ /*SimpleString address = new SimpleString("test.add1");
SimpleString address2 = new SimpleString("test.add2");
SimpleString address3 = new SimpleString("test.add3");
SimpleString address4 = new SimpleString("test.add4");
@@ -65,10 +65,10 @@
assertTrue(sam.containsDestination(new SimpleString("#.add4")));
assertTrue(sam.containsDestination(new SimpleString("#.add5")));
assertTrue(sam.containsDestination(new SimpleString("#")));
- assertEquals(sam.getDestinations().size(), 5);
+ assertEquals(sam.getDestinations().size(), 5);*/
}
- public void testRemoveDestinations()
+ /* public void testRemoveDestinations()
{
SimpleString address = new SimpleString("test.add1");
SimpleString address2 = new SimpleString("test2.add2");
@@ -128,5 +128,5 @@
assertTrue(sam.containsDestination(new SimpleString("#.add5")));
assertTrue(sam.containsDestination(new SimpleString("#")));
assertEquals(sam.getDestinations().size(), 3);
- }
+ }*/
}
Modified: trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java 2008-11-14 12:33:07 UTC (rev 5362)
+++ trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java 2008-11-14 13:39:32 UTC (rev 5363)
@@ -50,6 +50,9 @@
import org.jboss.messaging.core.server.Queue;
import org.jboss.messaging.core.server.ServerMessage;
import org.jboss.messaging.core.server.impl.ServerMessageImpl;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.jms.client.JBossTextMessage;
/**
*
@@ -61,7 +64,10 @@
public class UnitTestCase extends TestCase
{
// Constants -----------------------------------------------------
-
+
+ public static final String INVM_ACCEPTOR_FACTORY = "org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory";
+
+ public static final String INVM_CONNECTOR_FACTORY = "org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory";
// Attributes ----------------------------------------------------
// Static --------------------------------------------------------
@@ -443,6 +449,19 @@
return ((size / alignment) + (size % alignment != 0 ? 1 : 0)) * alignment;
}
+
+ protected ClientMessage createTextMessage(String s, ClientSession clientSession)
+ {
+ return createTextMessage(s, true, clientSession);
+ }
+
+ protected ClientMessage createTextMessage(String s, boolean durable, ClientSession clientSession)
+ {
+ ClientMessage message = clientSession.createClientMessage(JBossTextMessage.TYPE, durable, 0, System.currentTimeMillis(), (byte) 1);
+ message.getBody().putString(s);
+ message.getBody().flip();
+ return message;
+ }
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
More information about the jboss-cvs-commits
mailing list