Here are the examples of the java api class org.apache.activemq.artemis.core.config.DivertConfiguration taken from open source projects.
1. PersistentDivertTest#doTestPersistentDivertRestartBeforeConsume()
Project: activemq-artemis
File: PersistentDivertTest.java
File: PersistentDivertTest.java
public void doTestPersistentDivertRestartBeforeConsume(final boolean largeMessage) throws Exception { final String testAddress = "testAddress"; final String forwardAddress1 = "forwardAddress1"; final String forwardAddress2 = "forwardAddress2"; final String forwardAddress3 = "forwardAddress3"; DivertConfiguration divertConf1 = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress1); DivertConfiguration divertConf2 = new DivertConfiguration().setName("divert2").setRoutingName("divert2").setAddress(testAddress).setForwardingAddress(forwardAddress2); DivertConfiguration divertConf3 = new DivertConfiguration().setName("divert3").setRoutingName("divert3").setAddress(testAddress).setForwardingAddress(forwardAddress3); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf1).addDivertConfiguration(divertConf2).addDivertConfiguration(divertConf3); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config)); server.start(); ServerLocator locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setBlockOnNonDurableSend(true).setBlockOnDurableSend(true); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(true, true, 0); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress1), queueName1, null, true); session.createQueue(new SimpleString(forwardAddress2), queueName2, null, true); session.createQueue(new SimpleString(forwardAddress3), queueName3, null, true); session.createQueue(new SimpleString(testAddress), queueName4, null, true); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(true); message.putIntProperty(propKey, i); if (largeMessage) { message.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(minLargeMessageSize)); } producer.send(message); } session.close(); sf.close(); server.stop(); waitForServerToStop(server); server.start(); ServerLocator locator2 = createInVMNonHALocator().setBlockOnDurableSend(true); sf = createSessionFactory(locator2); session = sf.createSession(false, true, true); session.start(); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(5000); Assert.assertNotNull(message); if (largeMessage) { checkLargeMessage(message); } Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer2.receive(5000); Assert.assertNotNull(message); if (largeMessage) { checkLargeMessage(message); } Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer2.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer3.receive(5000); Assert.assertNotNull(message); if (largeMessage) { checkLargeMessage(message); } Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer3.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer4.receive(5000); Assert.assertNotNull(message); if (largeMessage) { checkLargeMessage(message); } Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer4.receiveImmediate()); session.close(); sf.close(); server.stop(); waitForServerToStop(server); server.start(); ServerLocator locator3 = createInVMNonHALocator().setBlockOnDurableSend(true); sf = createSessionFactory(locator3); session = sf.createSession(false, true, true); consumer1 = session.createConsumer(queueName1); consumer2 = session.createConsumer(queueName2); consumer3 = session.createConsumer(queueName3); consumer4 = session.createConsumer(queueName4); Assert.assertNull(consumer1.receiveImmediate()); Assert.assertNull(consumer2.receiveImmediate()); Assert.assertNull(consumer3.receiveImmediate()); Assert.assertNull(consumer4.receiveImmediate()); }
2. PersistentDivertTest#doTestPersistentDivert()
Project: activemq-artemis
File: PersistentDivertTest.java
File: PersistentDivertTest.java
public void doTestPersistentDivert(final boolean largeMessage) throws Exception { final String testAddress = "testAddress"; final String forwardAddress1 = "forwardAddress1"; final String forwardAddress2 = "forwardAddress2"; final String forwardAddress3 = "forwardAddress3"; DivertConfiguration divertConf1 = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress1); DivertConfiguration divertConf2 = new DivertConfiguration().setName("divert2").setRoutingName("divert2").setAddress(testAddress).setForwardingAddress(forwardAddress2); DivertConfiguration divertConf3 = new DivertConfiguration().setName("divert3").setRoutingName("divert3").setAddress(testAddress).setForwardingAddress(forwardAddress3); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf1).addDivertConfiguration(divertConf2).addDivertConfiguration(divertConf3); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config)); server.start(); ServerLocator locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setBlockOnNonDurableSend(true).setBlockOnDurableSend(true); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(true, true, 0); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress1), queueName1, null, true); session.createQueue(new SimpleString(forwardAddress2), queueName2, null, true); session.createQueue(new SimpleString(forwardAddress3), queueName3, null, true); session.createQueue(new SimpleString(testAddress), queueName4, null, true); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(true); if (largeMessage) { message.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(minLargeMessageSize)); } message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(5000); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); if (largeMessage) { checkLargeMessage(message); } message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer2.receive(5000); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); if (largeMessage) { checkLargeMessage(message); } message.acknowledge(); } Assert.assertNull(consumer2.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer3.receive(5000); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); if (largeMessage) { checkLargeMessage(message); } message.acknowledge(); } Assert.assertNull(consumer3.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer4.receive(5000); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); if (largeMessage) { checkLargeMessage(message); } message.acknowledge(); } Assert.assertNull(consumer4.receiveImmediate()); }
3. DivertTest#testDeployDivertsSameUniqueName()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testDeployDivertsSameUniqueName() throws Exception { final String testAddress = "testAddress"; final String forwardAddress1 = "forwardAddress1"; final String forwardAddress2 = "forwardAddress2"; final String forwardAddress3 = "forwardAddress3"; DivertConfiguration divertConf1 = new DivertConfiguration().setName("divert1").setRoutingName("thename1").setAddress(testAddress).setForwardingAddress(forwardAddress1); DivertConfiguration divertConf2 = new DivertConfiguration().setName("divert1").setRoutingName("thename2").setAddress(testAddress).setForwardingAddress(forwardAddress2); DivertConfiguration divertConf3 = new DivertConfiguration().setName("divert2").setRoutingName("thename3").setAddress(testAddress).setForwardingAddress(forwardAddress3); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf1).addDivertConfiguration(divertConf2).addDivertConfiguration(divertConf3); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); // Only the first and third should be deployed ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress1), queueName1, null, false); session.createQueue(new SimpleString(forwardAddress2), queueName2, null, false); session.createQueue(new SimpleString(forwardAddress3), queueName3, null, false); session.createQueue(new SimpleString(testAddress), queueName4, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); Assert.assertNull(consumer2.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer3.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer3.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer4.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer4.receiveImmediate()); }
4. DivertTest#testRoundRobinDiverts()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testRoundRobinDiverts() throws Exception { final String testAddress = "testAddress"; final String forwardAddress1 = "forwardAddress1"; final String forwardAddress2 = "forwardAddress2"; final String forwardAddress3 = "forwardAddress3"; DivertConfiguration divertConf1 = new DivertConfiguration().setName("divert1").setRoutingName("thename").setAddress(testAddress).setForwardingAddress(forwardAddress1); DivertConfiguration divertConf2 = new DivertConfiguration().setName("divert2").setRoutingName("thename").setAddress(testAddress).setForwardingAddress(forwardAddress2); DivertConfiguration divertConf3 = new DivertConfiguration().setName("divert3").setRoutingName("thename").setAddress(testAddress).setForwardingAddress(forwardAddress3); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf1).addDivertConfiguration(divertConf2).addDivertConfiguration(divertConf3); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress1), queueName1, null, false); session.createQueue(new SimpleString(forwardAddress2), queueName2, null, false); session.createQueue(new SimpleString(forwardAddress3), queueName3, null, false); session.createQueue(new SimpleString(testAddress), queueName4, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; ) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); i++; if (i == numMessages) { break; } message = consumer2.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); i++; if (i == numMessages) { break; } message = consumer3.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); i++; } Assert.assertNull(consumer1.receiveImmediate()); Assert.assertNull(consumer2.receiveImmediate()); Assert.assertNull(consumer3.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer4.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer4.receiveImmediate()); }
5. DivertTest#testSingleExclusiveNonMatchingAndNonExclusiveDiverts()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
// If no exclusive diverts match then non exclusive ones should be called @Test public void testSingleExclusiveNonMatchingAndNonExclusiveDiverts() throws Exception { final String testAddress = "testAddress"; final String forwardAddress1 = "forwardAddress1"; final String forwardAddress2 = "forwardAddress2"; final String forwardAddress3 = "forwardAddress3"; final String filter = "animal='antelope'"; DivertConfiguration divertConf1 = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress1).setExclusive(true).setFilterString(filter); DivertConfiguration divertConf2 = new DivertConfiguration().setName("divert2").setRoutingName("divert2").setAddress(testAddress).setForwardingAddress(forwardAddress2); DivertConfiguration divertConf3 = new DivertConfiguration().setName("divert3").setRoutingName("divert3").setAddress(testAddress).setForwardingAddress(forwardAddress3); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf1).addDivertConfiguration(divertConf2).addDivertConfiguration(divertConf3); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress1), queueName1, null, false); session.createQueue(new SimpleString(forwardAddress2), queueName2, null, false); session.createQueue(new SimpleString(forwardAddress3), queueName3, null, false); session.createQueue(new SimpleString(testAddress), queueName4, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putStringProperty(new SimpleString("animal"), new SimpleString("giraffe")); message.putIntProperty(propKey, i); producer.send(message); } // for (int i = 0; i < numMessages; i++) // { // ClientMessage message = consumer1.receive(200); // // assertNotNull(message); // // assertEquals((Integer)i, (Integer)message.getProperty(propKey)); // // message.acknowledge(); // } Assert.assertNull(consumer1.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer2.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer2.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer3.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer3.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer4.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer4.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putStringProperty(new SimpleString("animal"), new SimpleString("antelope")); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); Assert.assertNull(consumer2.receiveImmediate()); Assert.assertNull(consumer3.receiveImmediate()); Assert.assertNull(consumer4.receiveImmediate()); }
6. DivertTest#testMixExclusiveAndNonExclusiveDiverts()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testMixExclusiveAndNonExclusiveDiverts() throws Exception { final String testAddress = "testAddress"; final String forwardAddress1 = "forwardAddress1"; final String forwardAddress2 = "forwardAddress2"; final String forwardAddress3 = "forwardAddress3"; DivertConfiguration divertConf1 = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress1).setExclusive(true); DivertConfiguration divertConf2 = new DivertConfiguration().setName("divert2").setRoutingName("divert2").setAddress(testAddress).setForwardingAddress(forwardAddress2).setExclusive(true); DivertConfiguration divertConf3 = new DivertConfiguration().setName("divert3").setRoutingName("divert3").setAddress(testAddress).setForwardingAddress(forwardAddress3); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf1).addDivertConfiguration(divertConf2).addDivertConfiguration(divertConf3); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress1), queueName1, null, false); session.createQueue(new SimpleString(forwardAddress2), queueName2, null, false); session.createQueue(new SimpleString(forwardAddress3), queueName3, null, false); session.createQueue(new SimpleString(testAddress), queueName4, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer2.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer2.receiveImmediate()); Assert.assertNull(consumer3.receiveImmediate()); Assert.assertNull(consumer4.receiveImmediate()); }
7. DivertTest#testMultipleExclusiveDivert()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testMultipleExclusiveDivert() throws Exception { final String testAddress = "testAddress"; final String forwardAddress1 = "forwardAddress1"; final String forwardAddress2 = "forwardAddress2"; final String forwardAddress3 = "forwardAddress3"; DivertConfiguration divertConf1 = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress1).setExclusive(true); DivertConfiguration divertConf2 = new DivertConfiguration().setName("divert2").setRoutingName("divert2").setAddress(testAddress).setForwardingAddress(forwardAddress2).setExclusive(true); DivertConfiguration divertConf3 = new DivertConfiguration().setName("divert3").setRoutingName("divert3").setAddress(testAddress).setForwardingAddress(forwardAddress3).setExclusive(true); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf1).addDivertConfiguration(divertConf2).addDivertConfiguration(divertConf3); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress1), queueName1, null, false); session.createQueue(new SimpleString(forwardAddress2), queueName2, null, false); session.createQueue(new SimpleString(forwardAddress3), queueName3, null, false); session.createQueue(new SimpleString(testAddress), queueName4, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer2.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer2.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer3.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer3.receiveImmediate()); Assert.assertNull(consumer4.receiveImmediate()); }
8. DivertTest#testMultipleNonExclusiveDivert()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testMultipleNonExclusiveDivert() throws Exception { final String testAddress = "testAddress"; final String forwardAddress1 = "forwardAddress1"; final String forwardAddress2 = "forwardAddress2"; final String forwardAddress3 = "forwardAddress3"; DivertConfiguration divertConf1 = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress1); DivertConfiguration divertConf2 = new DivertConfiguration().setName("divert2").setRoutingName("divert2").setAddress(testAddress).setForwardingAddress(forwardAddress2); DivertConfiguration divertConf3 = new DivertConfiguration().setName("divert3").setRoutingName("divert3").setAddress(testAddress).setForwardingAddress(forwardAddress3); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf1).addDivertConfiguration(divertConf2).addDivertConfiguration(divertConf3); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress1), queueName1, null, false); session.createQueue(new SimpleString(forwardAddress2), queueName2, null, false); session.createQueue(new SimpleString(forwardAddress3), queueName3, null, false); session.createQueue(new SimpleString(testAddress), queueName4, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer2.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer2.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer3.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer3.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer4.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getIntProperty(propKey).intValue()); message.acknowledge(); } Assert.assertNull(consumer4.receiveImmediate()); }
9. ClientSoakTest#setUp()
Project: activemq-artemis
File: ClientSoakTest.java
File: ClientSoakTest.java
@Override @Before public void setUp() throws Exception { super.setUp(); clearDataRecreateServerDirs(); Configuration config = createDefaultConfig(isNetty()).setJournalFileSize(10 * 1024 * 1024); server = createServer(IS_JOURNAL, config, -1, -1, new HashMap<String, AddressSettings>()); DivertConfiguration divert1 = new DivertConfiguration().setName("dv1").setRoutingName("nm1").setAddress(ClientSoakTest.ADDRESS.toString()).setForwardingAddress(ClientSoakTest.DIVERTED_AD1.toString()).setExclusive(true); DivertConfiguration divert2 = new DivertConfiguration().setName("dv2").setRoutingName("nm2").setAddress(ClientSoakTest.ADDRESS.toString()).setForwardingAddress(ClientSoakTest.DIVERTED_AD2.toString()).setExclusive(true); ArrayList<DivertConfiguration> divertList = new ArrayList<>(); divertList.add(divert1); divertList.add(divert2); config.setDivertConfigurations(divertList); server.start(); ServerLocator locator = createFactory(isNetty()); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(); session.createQueue(ClientSoakTest.ADDRESS, ClientSoakTest.ADDRESS, true); session.createQueue(ClientSoakTest.DIVERTED_AD1, ClientSoakTest.DIVERTED_AD1, true); session.createQueue(ClientSoakTest.DIVERTED_AD2, ClientSoakTest.DIVERTED_AD2, true); session.close(); sf.close(); locator.close(); }
10. DivertAndACKClientTest#createDefaultConfig()
Project: activemq-artemis
File: DivertAndACKClientTest.java
File: DivertAndACKClientTest.java
@Override protected Configuration createDefaultConfig(final boolean netty) throws Exception { DivertConfiguration divert = new DivertConfiguration().setName("local-divert").setRoutingName("some-name").setAddress("jms.queue.Source").setForwardingAddress("jms.queue.Dest").setExclusive(true); Configuration config = super.createDefaultConfig(netty).addDivertConfiguration(divert); return config; }
11. ReplicationWithDivertTest#setUp()
Project: activemq-artemis
File: ReplicationWithDivertTest.java
File: ReplicationWithDivertTest.java
@Override @Before public void setUp() throws Exception { super.setUp(); System.out.println("Tmp::" + getTemporaryDir()); flagChunkEntered.setCount(1); flagChunkWait.setCount(1); flagSyncEntered.setCount(1); flagSyncWait.setCount(1); messageChunkCount = 0; TransportConfiguration liveConnector = TransportConfigurationUtils.getNettyConnector(true, 0); TransportConfiguration liveAcceptor = TransportConfigurationUtils.getNettyAcceptor(true, 0); TransportConfiguration backupConnector = TransportConfigurationUtils.getNettyConnector(false, 0); TransportConfiguration backupAcceptor = TransportConfigurationUtils.getNettyAcceptor(false, 0); backupConfig = createDefaultInVMConfig().setBindingsDirectory(getBindingsDir(0, true)).setJournalDirectory(getJournalDir(0, true)).setPagingDirectory(getPageDir(0, true)).setLargeMessagesDirectory(getLargeMessagesDir(0, true)); backupConfig.addQueueConfiguration(new CoreQueueConfiguration().setAddress(SOURCE_QUEUE).setName(SOURCE_QUEUE)); backupConfig.addQueueConfiguration(new CoreQueueConfiguration().setAddress(TARGET_QUEUE).setName(TARGET_QUEUE)); DivertConfiguration divertConfiguration = new DivertConfiguration().setName("Test").setAddress(SOURCE_QUEUE).setForwardingAddress(TARGET_QUEUE).setRoutingName("Test"); liveConfig = createDefaultInVMConfig(); liveConfig.addQueueConfiguration(new CoreQueueConfiguration().setAddress(SOURCE_QUEUE).setName(SOURCE_QUEUE).setDurable(true)); liveConfig.addQueueConfiguration(new CoreQueueConfiguration().setAddress(TARGET_QUEUE).setName(TARGET_QUEUE).setDurable(true)); liveConfig.addDivertConfiguration(divertConfiguration); backupConfig.addDivertConfiguration(divertConfiguration); ReplicatedBackupUtils.configureReplicationPair(backupConfig, backupConnector, backupAcceptor, liveConfig, liveConnector, liveAcceptor); liveServer = createServer(liveConfig); liveServer.start(); startBackup(); waitForServerToStart(liveServer); // Just to make sure the expression worked Assert.assertEquals(10000, factory.getMinLargeMessageSize()); Assert.assertEquals(10000, factory.getProducerWindowSize()); Assert.assertEquals(100, factory.getRetryInterval()); Assert.assertEquals(-1, factory.getReconnectAttempts()); Assert.assertTrue(factory.isHA()); connection = (ActiveMQConnection) factory.createConnection(); session = connection.createSession(true, Session.SESSION_TRANSACTED); queue = session.createQueue(JMS_SOURCE_QUEUE); targetQueue = session.createQueue(JMS_TARGET_QUEUE); producer = session.createProducer(queue); }
12. DivertTest#testSingleExclusiveDivert()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testSingleExclusiveDivert() throws Exception { final String testAddress = "testAddress"; final String forwardAddress = "forwardAddress"; DivertConfiguration divertConf = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress).setExclusive(true); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress), queueName1, null, false); session.createQueue(new SimpleString(testAddress), queueName2, null, false); session.createQueue(new SimpleString(testAddress), queueName3, null, false); session.createQueue(new SimpleString(testAddress), queueName4, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); Assert.assertNull(consumer2.receiveImmediate()); Assert.assertNull(consumer3.receiveImmediate()); Assert.assertNull(consumer4.receiveImmediate()); }
13. DivertTest#testSingleNonExclusiveDivert3()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testSingleNonExclusiveDivert3() throws Exception { final String testAddress = "testAddress"; final String forwardAddress = "forwardAddress"; DivertConfiguration divertConf = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); session.createQueue(new SimpleString(forwardAddress), queueName1, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); }
14. DivertTest#testSingleNonExclusiveDivert2()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testSingleNonExclusiveDivert2() throws Exception { final String testAddress = "testAddress"; final String forwardAddress = "forwardAddress"; DivertConfiguration divertConf = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); final SimpleString queueName3 = new SimpleString("queue3"); final SimpleString queueName4 = new SimpleString("queue4"); session.createQueue(new SimpleString(forwardAddress), queueName1, null, false); session.createQueue(new SimpleString(testAddress), queueName2, null, false); session.createQueue(new SimpleString(testAddress), queueName3, null, false); session.createQueue(new SimpleString(testAddress), queueName4, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); ClientConsumer consumer3 = session.createConsumer(queueName3); ClientConsumer consumer4 = session.createConsumer(queueName4); final int numMessages = 10; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer2.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer2.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer3.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer3.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer4.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer4.receiveImmediate()); }
15. DivertTest#testSingleDivertWithExpiry()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testSingleDivertWithExpiry() throws Exception { final String testAddress = "testAddress"; final String forwardAddress = "forwardAddress"; final String expiryAddress = "expiryAddress"; AddressSettings expirySettings = new AddressSettings().setExpiryAddress(new SimpleString(expiryAddress)); DivertConfiguration divertConf = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf).clearAddressesSettings().addAddressesSetting("#", expirySettings); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, true)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, false, false); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); session.createQueue(new SimpleString(forwardAddress), queueName1, null, true); session.createQueue(new SimpleString(testAddress), queueName2, null, true); session.createQueue(new SimpleString(expiryAddress), new SimpleString(expiryAddress), null, true); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); final int numMessages = 1; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(true); message.putIntProperty(propKey, i); message.setExpiration(System.currentTimeMillis() + 1000); producer.send(message); } session.commit(); // this context is validating if these messages are routed correctly { int count1 = 0; ClientMessage message = null; while ((message = consumer1.receiveImmediate()) != null) { message.acknowledge(); count1++; } int count2 = 0; while ((message = consumer2.receiveImmediate()) != null) { message.acknowledge(); count2++; } assertEquals(1, count1); assertEquals(1, count2); session.rollback(); } Thread.sleep(2000); // it must been expired by now assertNull(consumer1.receiveImmediate()); // it must been expired by now assertNull(consumer2.receiveImmediate()); int countOriginal1 = 0; int countOriginal2 = 0; ClientConsumer consumerExpiry = session.createConsumer(expiryAddress); for (int i = 0; i < numMessages * 2; i++) { ClientMessage message = consumerExpiry.receive(5000); System.out.println("Received message " + message); assertNotNull(message); if (message.getStringProperty(Message.HDR_ORIGINAL_QUEUE).equals("queue1")) { countOriginal1++; } else if (message.getStringProperty(Message.HDR_ORIGINAL_QUEUE).equals("queue2")) { countOriginal2++; } else { System.out.println("message not part of any expired queue" + message); } } assertEquals(numMessages, countOriginal1); assertEquals(numMessages, countOriginal2); }
16. DivertTest#testSingleNonExclusiveDivert()
Project: activemq-artemis
File: DivertTest.java
File: DivertTest.java
@Test public void testSingleNonExclusiveDivert() throws Exception { final String testAddress = "testAddress"; final String forwardAddress = "forwardAddress"; DivertConfiguration divertConf = new DivertConfiguration().setName("divert1").setRoutingName("divert1").setAddress(testAddress).setForwardingAddress(forwardAddress); Configuration config = createDefaultInVMConfig().addDivertConfiguration(divertConf); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); final SimpleString queueName1 = new SimpleString("queue1"); final SimpleString queueName2 = new SimpleString("queue2"); session.createQueue(new SimpleString(forwardAddress), queueName1, null, false); session.createQueue(new SimpleString(testAddress), queueName2, null, false); session.start(); ClientProducer producer = session.createProducer(new SimpleString(testAddress)); ClientConsumer consumer1 = session.createConsumer(queueName1); ClientConsumer consumer2 = session.createConsumer(queueName2); final int numMessages = 1; final SimpleString propKey = new SimpleString("testkey"); for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.putIntProperty(propKey, i); producer.send(message); } for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer1.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer1.receiveImmediate()); for (int i = 0; i < numMessages; i++) { ClientMessage message = consumer2.receive(DivertTest.TIMEOUT); Assert.assertNotNull(message); Assert.assertEquals(i, message.getObjectProperty(propKey)); message.acknowledge(); } Assert.assertNull(consumer2.receiveImmediate()); }
17. ActiveMQServerImpl#deployDiverts()
Project: activemq-artemis
File: ActiveMQServerImpl.java
File: ActiveMQServerImpl.java
private void deployDiverts() throws Exception { for (DivertConfiguration config : configuration.getDivertConfigurations()) { deployDivert(config); } }
18. FileConfigurationParser#parseDivertConfiguration()
Project: activemq-artemis
File: FileConfigurationParser.java
File: FileConfigurationParser.java
private void parseDivertConfiguration(final Element e, final Configuration mainConfig) { String name = e.getAttribute("name"); String routingName = getString(e, "routing-name", null, Validators.NO_CHECK); String address = getString(e, "address", null, Validators.NOT_NULL_OR_EMPTY); String forwardingAddress = getString(e, "forwarding-address", null, Validators.NOT_NULL_OR_EMPTY); boolean exclusive = getBoolean(e, "exclusive", ActiveMQDefaultConfiguration.isDefaultDivertExclusive()); String transformerClassName = getString(e, "transformer-class-name", null, Validators.NO_CHECK); String filterString = null; NodeList children = e.getChildNodes(); for (int j = 0; j < children.getLength(); j++) { Node child = children.item(j); if (child.getNodeName().equals("filter")) { filterString = getAttributeValue(child, "string"); } } DivertConfiguration config = new DivertConfiguration().setName(name).setRoutingName(routingName).setAddress(address).setForwardingAddress(forwardingAddress).setExclusive(exclusive).setFilterString(filterString).setTransformerClassName(transformerClassName); mainConfig.getDivertConfigurations().add(config); }