Here are the examples of the java api class org.apache.activemq.command.ConsumerInfo taken from open source projects.
1. UdpTestSupport#testSendingSmallMessage()
Project: activemq-artemis
File: UdpTestSupport.java
File: UdpTestSupport.java
public void testSendingSmallMessage() throws Exception { ConsumerInfo expected = new ConsumerInfo(); expected.setSelector("Cheese"); expected.setExclusive(true); expected.setExclusive(true); expected.setPrefetchSize(3456); try { LOG.info("About to send: " + expected); producer.oneway(expected); Command received = assertCommandReceived(); assertTrue("Should have received a ConsumerInfo but was: " + received, received instanceof ConsumerInfo); ConsumerInfo actual = (ConsumerInfo) received; assertEquals("Selector", expected.getSelector(), actual.getSelector()); assertEquals("isExclusive", expected.isExclusive(), actual.isExclusive()); assertEquals("getPrefetchSize", expected.getPrefetchSize(), actual.getPrefetchSize()); } catch (Exception e) { LOG.info("Caught: " + e); e.printStackTrace(); fail("Failed to send to transport: " + e); } }
2. ConcurrentConnectSimulationTest#testConcurrentConnection()
Project: activemq-artemis
File: ConcurrentConnectSimulationTest.java
File: ConcurrentConnectSimulationTest.java
/* * simulate failover and retry of connection before broker has killed connection * which appears as a concurrent connect request to the broker * see: https://issues.apache.org/activemq/browse/AMQ-2241 */ public void testConcurrentConnection() throws Exception { StubConnection connection1 = createConnection(); StubConnection connection2 = createConnection(); // reuse same connection info ConnectionInfo connectionInfo = createConnectionInfo(); connection1.request(connectionInfo); connection2.request(connectionInfo); // second one should win out, verify using consumer on default session (watchAdvisories) ConsumerId consumerId = new ConsumerId(new SessionId(connectionInfo.getConnectionId(), -1), 1); ConsumerInfo consumerInfo = new ConsumerInfo(consumerId); consumerInfo.setDestination(AdvisorySupport.TEMP_DESTINATION_COMPOSITE_ADVISORY_TOPIC); connection2.request(consumerInfo); }
3. RecoverExpiredMessagesTest#consumeExpected()
Project: activemq-artemis
File: RecoverExpiredMessagesTest.java
File: RecoverExpiredMessagesTest.java
private void consumeExpected() throws Exception { // Setup the consumer and receive the message. StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); connection.send(connectionInfo); connection.send(sessionInfo); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); Message m = receiveMessage(connection); assertNotNull("Should have received message " + expected.get(0) + " by now!", m); assertEquals(expected.get(0), m.getMessageId().toString()); MessageAck ack = createAck(consumerInfo, m, 1, MessageAck.STANDARD_ACK_TYPE); connection.send(ack); assertNoMessagesLeft(connection); connection.request(closeConnectionInfo(connectionInfo)); }
4. BrokerTest#testAddConsumerThenSend()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testAddConsumerThenSend() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); connection.send(createMessage(producerInfo, destination, deliveryMode)); // Make sure the message was delivered. Message m = receiveMessage(connection); assertNotNull(m); }
5. BrokerTest#testQueueSendThenAddConsumer()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testQueueSendThenAddConsumer() throws Exception { // Start a producer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); // Send a message to the broker. connection.send(createMessage(producerInfo, destination, deliveryMode)); // Start the consumer ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // Make sure the message was delivered. Message m = receiveMessage(connection); assertNotNull(m); }
6. ConsumerInfoTest#populateObject()
Project: activemq-artemis
File: ConsumerInfoTest.java
File: ConsumerInfoTest.java
@Override protected void populateObject(Object object) throws Exception { super.populateObject(object); ConsumerInfo info = (ConsumerInfo) object; info.setConsumerId(createConsumerId("ConsumerId:1")); info.setBrowser(true); info.setDestination(createActiveMQDestination("Destination:2")); info.setPrefetchSize(1); info.setMaximumPendingMessageLimit(2); info.setDispatchAsync(false); info.setSelector("Selector:3"); info.setSubscriptionName("SubscriptionName:4"); info.setNoLocal(true); info.setExclusive(false); info.setRetroactive(true); info.setPriority((byte) 1); { BrokerId value[] = new BrokerId[2]; for (int i = 0; i < 2; i++) { value[i] = createBrokerId("BrokerPath:5"); } info.setBrokerPath(value); } info.setAdditionalPredicate(createBooleanExpression("AdditionalPredicate:6")); info.setNetworkSubscription(false); info.setOptimizedAcknowledge(true); info.setNoRangeAcks(false); }
7. ConsumerInfoTest#populateObject()
Project: activemq-artemis
File: ConsumerInfoTest.java
File: ConsumerInfoTest.java
@Override protected void populateObject(Object object) throws Exception { super.populateObject(object); ConsumerInfo info = (ConsumerInfo) object; info.setConsumerId(createConsumerId("ConsumerId:1")); info.setBrowser(true); info.setDestination(createActiveMQDestination("Destination:2")); info.setPrefetchSize(1); info.setMaximumPendingMessageLimit(2); info.setDispatchAsync(false); info.setSelector("Selector:3"); info.setSubscriptionName("SubscriptionName:4"); info.setNoLocal(true); info.setExclusive(false); info.setRetroactive(true); info.setPriority((byte) 1); { BrokerId value[] = new BrokerId[2]; for (int i = 0; i < 2; i++) { value[i] = createBrokerId("BrokerPath:5"); } info.setBrokerPath(value); } info.setAdditionalPredicate(createBooleanExpression("AdditionalPredicate:6")); info.setNetworkSubscription(false); info.setOptimizedAcknowledge(true); info.setNoRangeAcks(false); }
8. ConsumerInfoTest#populateObject()
Project: activemq-artemis
File: ConsumerInfoTest.java
File: ConsumerInfoTest.java
@Override protected void populateObject(Object object) throws Exception { super.populateObject(object); ConsumerInfo info = (ConsumerInfo) object; info.setConsumerId(createConsumerId("ConsumerId:1")); info.setBrowser(true); info.setDestination(createActiveMQDestination("Destination:2")); info.setPrefetchSize(1); info.setMaximumPendingMessageLimit(2); info.setDispatchAsync(false); info.setSelector("Selector:3"); info.setSubscriptionName("SubcriptionName:4"); info.setNoLocal(true); info.setExclusive(false); info.setRetroactive(true); info.setPriority((byte) 1); { BrokerId value[] = new BrokerId[2]; for (int i = 0; i < 2; i++) { value[i] = createBrokerId("BrokerPath:5"); } info.setBrokerPath(value); } info.setAdditionalPredicate(createBooleanExpression("AdditionalPredicate:6")); info.setNetworkSubscription(false); info.setOptimizedAcknowledge(true); info.setNoRangeAcks(false); }
9. NetworkRouteTest#before()
Project: activemq-artemis
File: NetworkRouteTest.java
File: NetworkRouteTest.java
@Before public void before() throws Exception { control = EasyMock.createControl(); localBroker = control.createMock(Transport.class); remoteBroker = control.createMock(Transport.class); NetworkBridgeConfiguration configuration = new NetworkBridgeConfiguration(); brokerService = new BrokerService(); BrokerInfo remoteBrokerInfo = new BrokerInfo(); configuration.setDuplex(true); configuration.setNetworkTTL(5); brokerService.setBrokerId("broker-1"); brokerService.setPersistent(false); brokerService.setUseJmx(false); brokerService.start(); brokerService.waitUntilStarted(); remoteBrokerInfo.setBrokerId(new BrokerId("remote-broker-id")); remoteBrokerInfo.setBrokerName("remote-broker-name"); localBroker.setTransportListener(EasyMock.isA(TransportListener.class)); ArgHolder localListenerRef = ArgHolder.holdArgsForLastVoidCall(); remoteBroker.setTransportListener(EasyMock.isA(TransportListener.class)); ArgHolder remoteListenerRef = ArgHolder.holdArgsForLastVoidCall(); localBroker.start(); remoteBroker.start(); remoteBroker.oneway(EasyMock.isA(Object.class)); EasyMock.expectLastCall().times(4); remoteBroker.oneway(EasyMock.isA(Object.class)); ExpectationWaiter remoteInitWaiter = ExpectationWaiter.waiterForLastVoidCall(); localBroker.oneway(remoteBrokerInfo); EasyMock.expect(localBroker.request(EasyMock.isA(Object.class))).andReturn(null); localBroker.oneway(EasyMock.isA(Object.class)); ExpectationWaiter localInitWaiter = ExpectationWaiter.waiterForLastVoidCall(); control.replay(); DurableConduitBridge bridge = new DurableConduitBridge(configuration, localBroker, remoteBroker); bridge.setBrokerService(brokerService); bridge.start(); localListener = (TransportListener) localListenerRef.getArguments()[0]; Assert.assertNotNull(localListener); remoteListener = (TransportListener) remoteListenerRef.getArguments()[0]; Assert.assertNotNull(remoteListener); remoteListener.onCommand(remoteBrokerInfo); remoteInitWaiter.assertHappens(5, TimeUnit.SECONDS); localInitWaiter.assertHappens(5, TimeUnit.SECONDS); control.verify(); control.reset(); ActiveMQMessage msg = new ActiveMQMessage(); msg.setDestination(new ActiveMQTopic("test")); msgDispatch = new MessageDispatch(); msgDispatch.setMessage(msg); ConsumerInfo path1 = new ConsumerInfo(); path1.setDestination(msg.getDestination()); path1.setConsumerId(new ConsumerId(new SessionId(new ConnectionId("conn-id-1"), 1), 3)); path1.setBrokerPath(new BrokerId[] { new BrokerId("remote-broker-id"), new BrokerId("server(1)-broker-id") }); path1Msg = new ActiveMQMessage(); path1Msg.setDestination(AdvisorySupport.getConsumerAdvisoryTopic(path1.getDestination())); path1Msg.setDataStructure(path1); ConsumerInfo path2 = new ConsumerInfo(); path2.setDestination(path1.getDestination()); path2.setConsumerId(new ConsumerId(new SessionId(new ConnectionId("conn-id-2"), 2), 4)); path2.setBrokerPath(new BrokerId[] { new BrokerId("remote-broker-id"), new BrokerId("server(2)-broker-id"), new BrokerId("server(1)-broker-id") }); path2Msg = new ActiveMQMessage(); path2Msg.setDestination(path1Msg.getDestination()); path2Msg.setDataStructure(path2); RemoveInfo removePath1 = new RemoveInfo(path1.getConsumerId()); RemoveInfo removePath2 = new RemoveInfo(path2.getConsumerId()); removePath1Msg = new ActiveMQMessage(); removePath1Msg.setDestination(path1Msg.getDestination()); removePath1Msg.setDataStructure(removePath1); removePath2Msg = new ActiveMQMessage(); removePath2Msg.setDestination(path1Msg.getDestination()); removePath2Msg.setDataStructure(removePath2); }
10. BrokerTest#testTopicNoLocal()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
// https://issues.apache.org/jira/browse/ARTEMIS-402 public void testTopicNoLocal() throws Exception { ActiveMQDestination destination = new ActiveMQTopic("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setRetroactive(true); consumerInfo1.setPrefetchSize(100); consumerInfo1.setNoLocal(true); connection1.send(consumerInfo1); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ProducerInfo producerInfo2 = createProducerInfo(sessionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(producerInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setRetroactive(true); consumerInfo2.setPrefetchSize(100); consumerInfo2.setNoLocal(true); connection2.send(consumerInfo2); // Send the messages connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); // The 2nd connection should get the messages. for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection2); assertNotNull(m1); } // Send a message with the 2nd connection Message message = createMessage(producerInfo2, destination, deliveryMode); connection2.send(message); // The first connection should not see the initial 4 local messages sent // but should // see the messages from connection 2. Message m = receiveMessage(connection1); assertNotNull(m); assertEquals(message.getMessageId(), m.getMessageId()); assertNoMessagesLeft(connection1); assertNoMessagesLeft(connection2); }
11. RecoveryBrokerTest#testTopicDurableConsumerHoldsPersistentMessageAfterRestart()
Project: activemq-artemis
File: RecoveryBrokerTest.java
File: RecoveryBrokerTest.java
public void testTopicDurableConsumerHoldsPersistentMessageAfterRestart() throws Exception { ActiveMQDestination destination = new ActiveMQTopic("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); connectionInfo1.setClientId("A"); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); // Create the durable subscription. ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setSubscriptionName("test"); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); // Close the subscription. connection1.send(closeConsumerInfo(consumerInfo1)); // Send the messages connection1.send(createMessage(producerInfo1, destination, DeliveryMode.PERSISTENT)); connection1.send(createMessage(producerInfo1, destination, DeliveryMode.PERSISTENT)); connection1.send(createMessage(producerInfo1, destination, DeliveryMode.PERSISTENT)); connection1.send(createMessage(producerInfo1, destination, DeliveryMode.PERSISTENT)); connection1.request(closeConnectionInfo(connectionInfo1)); // Restart the broker. restartBroker(); // Get a connection to the new broker. StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); connectionInfo2.setClientId("A"); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); // Re-open the subscription. ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setSubscriptionName("test"); consumerInfo2.setPrefetchSize(100); connection2.send(consumerInfo2); // The we should get the messages. for (int i = 0; i < 4; i++) { Message m2 = receiveMessage(connection2); assertNotNull("Did not get message " + i, m2); } assertNoMessagesLeft(connection2); }
12. BrokerTest#testTopicDispatchIsBroadcast()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
//https://issues.apache.org/jira/browse/ARTEMIS-402 public void testTopicDispatchIsBroadcast() throws Exception { ActiveMQDestination destination = new ActiveMQTopic("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setRetroactive(true); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setRetroactive(true); consumerInfo2.setPrefetchSize(100); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(consumerInfo2); // Send the messages connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); // Get the messages for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull(m1); m1 = receiveMessage(connection2); assertNotNull(m1); } }
13. BrokerTest#testCompositeSend()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testCompositeSend() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); ActiveMQDestination destinationA = ActiveMQDestination.createDestination("A", destinationType); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destinationA); consumerInfo1.setRetroactive(true); consumerInfo1.setPrefetchSize(100); connection1.request(consumerInfo1); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); ActiveMQDestination destinationB = ActiveMQDestination.createDestination("B", destinationType); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destinationB); consumerInfo2.setRetroactive(true); consumerInfo2.setPrefetchSize(100); connection2.request(consumerInfo2); // Send the messages to the composite destination. ActiveMQDestination compositeDestination = ActiveMQDestination.createDestination("A,B", destinationType); for (int i = 0; i < 4; i++) { connection1.request(createMessage(producerInfo1, compositeDestination, deliveryMode)); } // destination. for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); Message m2 = receiveMessage(connection2); assertNotNull(m1); assertNotNull(m2); assertEquals(m1.getMessageId(), m2.getMessageId()); assertEquals(compositeDestination, m1.getOriginalDestination()); assertEquals(compositeDestination, m2.getOriginalDestination()); connection1.request(createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE)); connection2.request(createAck(consumerInfo2, m2, 1, MessageAck.STANDARD_ACK_TYPE)); } assertNoMessagesLeft(connection1); assertNoMessagesLeft(connection2); connection1.send(closeConnectionInfo(connectionInfo1)); connection2.send(closeConnectionInfo(connectionInfo2)); }
14. BrokerTest#testExclusiveQueueDeliversToOnlyOneConsumer()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testExclusiveQueueDeliversToOnlyOneConsumer() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(1); consumerInfo1.setExclusive(true); connection1.send(consumerInfo1); // Send a message.. this should make consumer 1 the exclusive owner. connection1.request(createMessage(producerInfo, destination, deliveryMode)); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setPrefetchSize(1); consumerInfo2.setExclusive(true); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(consumerInfo2); // Second message should go to consumer 1 even though consumer 2 is // ready // for dispatch. connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); // Acknowledge the first 2 messages for (int i = 0; i < 2; i++) { Message m1 = receiveMessage(connection1); assertNotNull(m1); connection1.send(createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE)); } // Close the first consumer. connection1.send(closeConsumerInfo(consumerInfo1)); // The last two messages should now go the the second consumer. connection1.send(createMessage(producerInfo, destination, deliveryMode)); for (int i = 0; i < 2; i++) { Message m1 = receiveMessage(connection2); assertNotNull(m1); connection2.send(createAck(consumerInfo2, m1, 1, MessageAck.STANDARD_ACK_TYPE)); } assertNoMessagesLeft(connection2); }
15. BrokerTest#testTopicDurableSubscriptionCanBeRestored()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testTopicDurableSubscriptionCanBeRestored() throws Exception { ActiveMQDestination destination = new ActiveMQTopic("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); connectionInfo1.setClientId("clientid1"); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); consumerInfo1.setSubscriptionName("test"); connection1.send(consumerInfo1); // Send the messages connection1.send(createMessage(producerInfo1, destination, DeliveryMode.PERSISTENT)); connection1.send(createMessage(producerInfo1, destination, DeliveryMode.PERSISTENT)); connection1.send(createMessage(producerInfo1, destination, DeliveryMode.PERSISTENT)); connection1.request(createMessage(producerInfo1, destination, DeliveryMode.PERSISTENT)); // Get the messages Message m = null; for (int i = 0; i < 2; i++) { m = receiveMessage(connection1); assertNotNull(m); } // Ack the last message. connection1.send(createAck(consumerInfo1, m, 2, MessageAck.STANDARD_ACK_TYPE)); // Close the connection. connection1.request(closeConnectionInfo(connectionInfo1)); connection1.stop(); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); connectionInfo2.setClientId("clientid1"); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setPrefetchSize(100); consumerInfo2.setSubscriptionName("test"); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(consumerInfo2); // Get the rest of the messages for (int i = 0; i < 2; i++) { Message m1 = receiveMessage(connection2); assertNotNull("m1 is null for index: " + i, m1); } assertNoMessagesLeft(connection2); }
16. FanoutTransportBrokerTest#createConsumerInfo()
Project: activemq-artemis
File: FanoutTransportBrokerTest.java
File: FanoutTransportBrokerTest.java
protected ConsumerInfo createConsumerInfo(SessionInfo sessionInfo, ActiveMQDestination destination) throws Exception { ConsumerInfo info = new ConsumerInfo(sessionInfo, ++idGenerator); info.setBrowser(false); info.setDestination(destination); info.setPrefetchSize(1000); info.setDispatchAsync(false); return info; }
17. FailoverTransportBrokerTest#createConsumerInfo()
Project: activemq-artemis
File: FailoverTransportBrokerTest.java
File: FailoverTransportBrokerTest.java
protected ConsumerInfo createConsumerInfo(SessionInfo sessionInfo, ActiveMQDestination destination) throws Exception { ConsumerInfo info = new ConsumerInfo(sessionInfo, ++idGenerator); info.setBrowser(false); info.setDestination(destination); info.setPrefetchSize(1000); info.setDispatchAsync(false); return info; }
18. BrokerNetworkWithStuckMessagesTest#createConsumerInfo()
Project: activemq-artemis
File: BrokerNetworkWithStuckMessagesTest.java
File: BrokerNetworkWithStuckMessagesTest.java
protected ConsumerInfo createConsumerInfo(SessionInfo sessionInfo, ActiveMQDestination destination) throws Exception { ConsumerInfo info = new ConsumerInfo(sessionInfo, ++idGenerator); info.setBrowser(false); info.setDestination(destination); info.setPrefetchSize(1000); info.setDispatchAsync(false); return info; }
19. ClientTestSupport#createConsumerInfo()
Project: activemq-artemis
File: ClientTestSupport.java
File: ClientTestSupport.java
protected ConsumerInfo createConsumerInfo(SessionInfo sessionInfo, ActiveMQDestination destination) throws Exception { ConsumerInfo info = new ConsumerInfo(sessionInfo, ++idGenerator); info.setBrowser(false); info.setDestination(destination); info.setPrefetchSize(1000); info.setDispatchAsync(false); return info; }
20. BrokerTestSupport#createConsumerInfo()
Project: activemq-artemis
File: BrokerTestSupport.java
File: BrokerTestSupport.java
protected ConsumerInfo createConsumerInfo(SessionInfo sessionInfo, ActiveMQDestination destination) throws Exception { ConsumerInfo info = new ConsumerInfo(sessionInfo, ++idGenerator); info.setBrowser(false); info.setDestination(destination); info.setPrefetchSize(1000); info.setDispatchAsync(false); return info; }
21. BrokerTest#testQueueBrowserWith2ConsumersInterleaved()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testQueueBrowserWith2ConsumersInterleaved() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); deliveryMode = DeliveryMode.NON_PERSISTENT; // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(10); connection1.request(consumerInfo1); // Send the messages connection1.request(createMessage(producerInfo, destination, deliveryMode)); // Setup a second connection with a queue browser. StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setPrefetchSize(1); consumerInfo2.setBrowser(true); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(consumerInfo2); connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); //as the messages are sent async - need to synchronize the last //one to ensure they arrive in the order we want connection1.request(createMessage(producerInfo, destination, deliveryMode)); List<Message> messages = new ArrayList<>(); for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull("m1 is null for index: " + i, m1); messages.add(m1); } for (int i = 0; i < 4; i++) { Message m1 = messages.get(i); Message m2 = receiveMessage(connection2); assertNotNull("m2 is null for index: " + i, m2); assertEquals(m1.getMessageId(), m2.getMessageId()); connection2.send(createAck(consumerInfo2, m2, 1, MessageAck.DELIVERED_ACK_TYPE)); } assertNoMessagesLeft(connection1); assertNoMessagesLeft(connection2); }
22. BrokerTest#testQueueBrowserWith2ConsumersBrowseFirst()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
/* * change the order of the above test */ public void testQueueBrowserWith2ConsumersBrowseFirst() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); deliveryMode = DeliveryMode.NON_PERSISTENT; // Setup a second connection with a queue browser. StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setPrefetchSize(10); consumerInfo2.setBrowser(true); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(consumerInfo2); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(10); connection1.request(consumerInfo1); // Send the messages connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); //as the messages are sent async - need to synchronize the last //one to ensure they arrive in the order we want connection1.request(createMessage(producerInfo, destination, deliveryMode)); List<Message> messages = new ArrayList<>(); for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull("m1 is null for index: " + i, m1); messages.add(m1); } // no messages present in queue browser as there were no messages when it // was created assertNoMessagesLeft(connection1); assertNoMessagesLeft(connection2); }
23. BrokerTest#testQueueBrowserWith2Consumers()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
//https://issues.apache.org/jira/browse/ARTEMIS-384 public void testQueueBrowserWith2Consumers() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(10); connection1.request(consumerInfo1); // Send the messages connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); //as the messages are sent async - need to synchronize the last //one to ensure they arrive in the order we want connection1.request(createMessage(producerInfo, destination, deliveryMode)); // Setup a second connection with a queue browser. StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setPrefetchSize(1); consumerInfo2.setBrowser(true); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(consumerInfo2); List<Message> messages = new ArrayList<>(); for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull("m1 is null for index: " + i, m1); messages.add(m1); } for (int i = 0; i < 4; i++) { Message m1 = messages.get(i); Message m2 = receiveMessage(connection2); assertNotNull("m2 is null for index: " + i, m2); assertEquals(m1.getMessageId(), m2.getMessageId()); connection2.send(createAck(consumerInfo2, m2, 1, MessageAck.DELIVERED_ACK_TYPE)); } assertNoMessagesLeft(connection1); assertNoMessagesLeft(connection2); }
24. BrokerTest#testQueueDispatchedAreRedeliveredOnConsumerClose()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testQueueDispatchedAreRedeliveredOnConsumerClose() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); destination = createDestinationInfo(connection1, connectionInfo1, destinationType); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); // Send the messages connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); // Get the messages for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull(m1); assertFalse(m1.isRedelivered()); } // Close the consumer without sending any ACKS. connection1.send(closeConsumerInfo(consumerInfo1)); // Drain any in flight messages.. while (connection1.getDispatchQueue().poll(0, TimeUnit.MILLISECONDS) != null) { } // Add the second consumer ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo1, destination); consumerInfo2.setPrefetchSize(100); connection1.send(consumerInfo2); // Make sure the messages were re delivered to the 2nd consumer. for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull(m1); assertTrue(m1.isRedelivered()); } }
25. BrokerTest#testGroupedMessagesDeliveredToOnlyOneConsumer()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testGroupedMessagesDeliveredToOnlyOneConsumer() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(1); connection1.send(consumerInfo1); // Send the messages. for (int i = 0; i < 4; i++) { Message message = createMessage(producerInfo, destination, deliveryMode); message.setGroupID("TEST-GROUP"); message.setGroupSequence(i + 1); connection1.request(message); } // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setPrefetchSize(1); connection2.send(consumerInfo2); // the first 3 for (int i = 0; i < 3; i++) { Message m1 = receiveMessage(connection1); assertNotNull("m1 is null for index: " + i, m1); connection1.send(createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE)); } // Close the first consumer. connection1.request(closeConsumerInfo(consumerInfo1)); // The last messages should now go the the second consumer. for (int i = 0; i < 1; i++) { Message m1 = receiveMessage(connection2); assertNotNull("m1 is null for index: " + i, m1); connection2.request(createAck(consumerInfo2, m1, 1, MessageAck.STANDARD_ACK_TYPE)); } assertNoMessagesLeft(connection2); }
26. BrokerTest#testConsumerCloseCausesRedelivery()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testConsumerCloseCausesRedelivery() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.request(consumerInfo1); // Send the messages connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); // Receive the messages. for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull("m1 is null for index: " + i, m1); assertFalse(m1.isRedelivered()); } // Close the consumer without acking.. this should cause re-delivery of // the messages. connection1.send(consumerInfo1.createRemoveCommand()); // Create another consumer that should get the messages again. ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo1, destination); consumerInfo2.setPrefetchSize(100); connection1.request(consumerInfo2); // Receive the messages. for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull("m1 is null for index: " + i, m1); assertTrue(m1.isRedelivered()); } assertNoMessagesLeft(connection1); }
27. BrokerTest#testQueueOnlyOnceDeliveryWith2Consumers()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testQueueOnlyOnceDeliveryWith2Consumers() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(1); connection1.request(consumerInfo1); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setPrefetchSize(1); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(consumerInfo2); // Send the messages connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.send(createMessage(producerInfo, destination, deliveryMode)); connection1.request(createMessage(producerInfo, destination, deliveryMode)); for (int i = 0; i < 2; i++) { Message m1 = receiveMessage(connection1); Message m2 = receiveMessage(connection2); assertNotNull("m1 is null for index: " + i, m1); assertNotNull("m2 is null for index: " + i, m2); assertNotSame(m1.getMessageId(), m2.getMessageId()); connection1.send(createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE)); connection2.send(createAck(consumerInfo2, m2, 1, MessageAck.STANDARD_ACK_TYPE)); } assertNoMessagesLeft(connection1); assertNoMessagesLeft(connection2); }
28. AdvisoryBrokerTest#testProducerAdvisoriesReplayedOnlyTargetNewConsumer()
Project: activemq-artemis
File: AdvisoryBrokerTest.java
File: AdvisoryBrokerTest.java
public void testProducerAdvisoriesReplayedOnlyTargetNewConsumer() throws Exception { ActiveMQDestination queue = new ActiveMQQueue("test"); ActiveMQDestination destination = AdvisorySupport.getProducerAdvisoryTopic(queue); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); // Create the first consumer.. ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); // Setup a producer. StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ProducerInfo producerInfo2 = createProducerInfo(sessionInfo2); producerInfo2.setDestination(queue); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(producerInfo2); Message m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); assertEquals(((ProducerInfo) m1.getDataStructure()).getProducerId(), producerInfo2.getProducerId()); // Create the 2nd consumer.. ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setPrefetchSize(100); connection2.send(consumerInfo2); // The second consumer should se a replay m1 = receiveMessage(connection2); assertNotNull(m1); assertNotNull(m1.getDataStructure()); assertEquals(((ProducerInfo) m1.getDataStructure()).getProducerId(), producerInfo2.getProducerId()); // But the first consumer should not see the replay. assertNoMessagesLeft(connection1); }
29. AdvisoryBrokerTest#testConsumerAdvisoriesReplayed()
Project: activemq-artemis
File: AdvisoryBrokerTest.java
File: AdvisoryBrokerTest.java
public void testConsumerAdvisoriesReplayed() throws Exception { ActiveMQDestination queue = new ActiveMQQueue("test"); ActiveMQDestination destination = AdvisorySupport.getConsumerAdvisoryTopic(queue); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); // Setup a second consumer. StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, queue); consumerInfo2.setPrefetchSize(100); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(consumerInfo2); // We should get an advisory of the previous consumer. ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); Message m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); assertEquals(((ConsumerInfo) m1.getDataStructure()).getConsumerId(), consumerInfo2.getConsumerId()); // Close the second connection. connection2.request(closeConnectionInfo(connectionInfo2)); connection2.stop(); // We should get an advisory of the consumer closing m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); RemoveInfo r = (RemoveInfo) m1.getDataStructure(); assertEquals(r.getObjectId(), consumerInfo2.getConsumerId()); assertNoMessagesLeft(connection2); }
30. AdvisoryBrokerTest#testConsumerAdvisories()
Project: activemq-artemis
File: AdvisoryBrokerTest.java
File: AdvisoryBrokerTest.java
public void testConsumerAdvisories() throws Exception { ActiveMQDestination queue = new ActiveMQQueue("test"); ActiveMQDestination destination = AdvisorySupport.getConsumerAdvisoryTopic(queue); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(consumerInfo1); // We should not see and advisory for the advisory consumer. assertNoMessagesLeft(connection1); // Setup a second consumer. StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, queue); consumerInfo1.setPrefetchSize(100); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(consumerInfo2); // We should get an advisory of the new consumer. Message m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); assertEquals(((ConsumerInfo) m1.getDataStructure()).getConsumerId(), consumerInfo2.getConsumerId()); // Close the second connection. connection2.request(closeConnectionInfo(connectionInfo2)); connection2.stop(); // We should get an advisory of the consumer closing m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); RemoveInfo r = (RemoveInfo) m1.getDataStructure(); assertEquals(r.getObjectId(), consumerInfo2.getConsumerId()); assertNoMessagesLeft(connection2); }
31. UdpTransportUsingServerTest#testRequestResponse()
Project: activemq-artemis
File: UdpTransportUsingServerTest.java
File: UdpTransportUsingServerTest.java
public void testRequestResponse() throws Exception { ConsumerInfo expected = new ConsumerInfo(); expected.setSelector("Edam"); expected.setResponseRequired(true); LOG.info("About to send: " + expected); Response response = (Response) producer.request(expected, 2000); LOG.info("Received: " + response); assertNotNull("Received a response", response); assertTrue("Should not be an exception", !response.isException()); }
32. BrokerTestSupport#countMessagesInQueue()
Project: activemq-artemis
File: BrokerTestSupport.java
File: BrokerTestSupport.java
protected int countMessagesInQueue(StubConnection connection, ConnectionInfo connectionInfo, ActiveMQDestination destination) throws Exception { SessionInfo sessionInfo = createSessionInfo(connectionInfo); connection.send(sessionInfo); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); consumerInfo.setPrefetchSize(1); consumerInfo.setBrowser(true); connection.send(consumerInfo); ArrayList<Object> skipped = new ArrayList<>(); // Now get the messages. Object m = connection.getDispatchQueue().poll(maxWait, TimeUnit.MILLISECONDS); int i = 0; while (m != null) { if (m instanceof MessageDispatch && ((MessageDispatch) m).getConsumerId().equals(consumerInfo.getConsumerId())) { MessageDispatch md = (MessageDispatch) m; if (md.getMessage() != null) { i++; connection.send(createAck(consumerInfo, md.getMessage(), 1, MessageAck.STANDARD_ACK_TYPE)); } else { break; } } else { skipped.add(m); } m = connection.getDispatchQueue().poll(maxWait, TimeUnit.MILLISECONDS); } for (Iterator<Object> iter = skipped.iterator(); iter.hasNext(); ) { connection.getDispatchQueue().put(iter.next()); } connection.send(closeSessionInfo(sessionInfo)); return i; }
33. BrokerTest#testConsumerClose()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testConsumerClose() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); consumerInfo1.setNoLocal(true); connection1.request(consumerInfo1); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ProducerInfo producerInfo2 = createProducerInfo(sessionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(producerInfo2); // Send the messages connection2.send(createMessage(producerInfo2, destination, deliveryMode)); connection2.send(createMessage(producerInfo2, destination, deliveryMode)); connection2.send(createMessage(producerInfo2, destination, deliveryMode)); connection2.send(createMessage(producerInfo2, destination, deliveryMode)); for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull(m1); connection1.send(createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE)); } // give the async ack a chance to perculate and validate all are currently consumed // use receive rather than poll as broker info is sent async and may still need to be dequeued Message result = receiveMessage(connection1, MAX_NULL_WAIT); assertNull("no more messages " + result, result); // Close the consumer. connection1.request(closeConsumerInfo(consumerInfo1)); // Send another message, connection1 should not get the message. connection2.request(createMessage(producerInfo2, destination, deliveryMode)); result = receiveMessage(connection1, MAX_NULL_WAIT); assertNull("no message received after close " + result, result); }
34. BrokerTest#testSessionCloseCascades()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testSessionCloseCascades() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); consumerInfo1.setNoLocal(true); connection1.request(consumerInfo1); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ProducerInfo producerInfo2 = createProducerInfo(sessionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(producerInfo2); // Send the messages connection2.send(createMessage(producerInfo2, destination, deliveryMode)); connection2.send(createMessage(producerInfo2, destination, deliveryMode)); connection2.send(createMessage(producerInfo2, destination, deliveryMode)); connection2.send(createMessage(producerInfo2, destination, deliveryMode)); for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull(m1); connection1.send(createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE)); } // Close the session, this should in turn close the consumer. connection1.request(closeSessionInfo(sessionInfo1)); // Send another message, connection1 should not get the message. connection2.request(createMessage(producerInfo2, destination, deliveryMode)); Message msg = receiveMessage(connection1, MAX_NULL_WAIT); assertNull("no message received from connection1 after session close", msg); }
35. BrokerTest#testConnectionCloseCascades()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testConnectionCloseCascades() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); consumerInfo1.setNoLocal(true); connection1.request(consumerInfo1); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ProducerInfo producerInfo2 = createProducerInfo(sessionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(producerInfo2); // Send the messages connection2.send(createMessage(producerInfo2, destination, deliveryMode)); connection2.send(createMessage(producerInfo2, destination, deliveryMode)); connection2.send(createMessage(producerInfo2, destination, deliveryMode)); connection2.send(createMessage(producerInfo2, destination, deliveryMode)); for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull(m1); connection1.send(createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE)); } // give the async ack a chance to perculate and validate all are currently consumed Message msg = receiveMessage(connection1, MAX_NULL_WAIT); assertNull("all messages were received " + msg, msg); // Close the connection, this should in turn close the consumer. connection1.request(closeConnectionInfo(connectionInfo1)); // Send another message, connection1 should not get the message. connection2.request(createMessage(producerInfo2, destination, deliveryMode)); assertNull("no message received", receiveMessage(connection1, MAX_NULL_WAIT)); }
36. BrokerTest#testCompositeConsume()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testCompositeConsume() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); // setup the composite consumer. ActiveMQDestination compositeDestination = ActiveMQDestination.createDestination("A,B", destinationType); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, compositeDestination); consumerInfo1.setRetroactive(true); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); // Publish to the two destinations ActiveMQDestination destinationA = ActiveMQDestination.createDestination("A", destinationType); ActiveMQDestination destinationB = ActiveMQDestination.createDestination("B", destinationType); // Send a message to each destination . connection1.send(createMessage(producerInfo1, destinationA, deliveryMode)); connection1.send(createMessage(producerInfo1, destinationB, deliveryMode)); // The consumer should get both messages. for (int i = 0; i < 2; i++) { Message m1 = receiveMessage(connection1); assertNotNull(m1); } assertNoMessagesLeft(connection1); connection1.send(closeConnectionInfo(connectionInfo1)); }
37. BrokerTest#testTopicRetroactiveConsumerSeeMessagesBeforeCreation()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
// https://issues.apache.org/jira/browse/ARTEMIS-402 public void testTopicRetroactiveConsumerSeeMessagesBeforeCreation() throws Exception { ActiveMQDestination destination = new ActiveMQTopic("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); connectionInfo1.setClientId("A"); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); // Send the messages Message m = createMessage(producerInfo1, destination, deliveryMode); connection1.send(m); // Create the durable subscription. ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); if (durableConsumer) { consumerInfo1.setSubscriptionName("test"); } consumerInfo1.setPrefetchSize(100); consumerInfo1.setRetroactive(true); connection1.send(consumerInfo1); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); connection1.request(createMessage(producerInfo1, destination, deliveryMode)); // the behavior is VERY dependent on the recovery policy used. // But the default broker settings try to make it as consistent as // possible // Subscription should see all messages sent. Message m2 = receiveMessage(connection1); assertNotNull(m2); assertEquals(m.getMessageId(), m2.getMessageId()); for (int i = 0; i < 2; i++) { m2 = receiveMessage(connection1); assertNotNull(m2); } assertNoMessagesLeft(connection1); }
38. FanoutTransportBrokerTest#testPublisherWaitsForServerToBeUp()
Project: activemq-artemis
File: FanoutTransportBrokerTest.java
File: FanoutTransportBrokerTest.java
/* public void initCombosForTestPublisherWaitsForServerToBeUp() { addCombinationValues("deliveryMode", new Object[]{Integer.valueOf(DeliveryMode.NON_PERSISTENT), Integer.valueOf(DeliveryMode.PERSISTENT)}); addCombinationValues("destination", new Object[]{new ActiveMQTopic("TEST")}); } */ @Test public void testPublisherWaitsForServerToBeUp() throws Exception { if (name.getMethodName().contains("test-0") || name.getMethodName().contains("test-2")) { System.out.println("Discarding invalid test: " + name.getMethodName()); return; } // Start a normal consumer on the local broker StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.request(consumerInfo1); // Start a normal consumer on a remote broker StubConnection connection2 = createRemoteConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(consumerInfo2); // Start a fanout publisher. LOG.info("Starting the fanout connection."); final StubConnection connection3 = createFanoutConnection(); ConnectionInfo connectionInfo3 = createConnectionInfo(); SessionInfo sessionInfo3 = createSessionInfo(connectionInfo3); final ProducerInfo producerInfo3 = createProducerInfo(sessionInfo3); connection3.send(connectionInfo3); connection3.send(sessionInfo3); connection3.send(producerInfo3); // Send the message using the fail over publisher. connection3.request(createMessage(producerInfo3, destination, deliveryMode)); Assert.assertNotNull(receiveMessage(connection1)); assertNoMessagesLeft(connection1); Assert.assertNotNull(receiveMessage(connection2)); assertNoMessagesLeft(connection2); final CountDownLatch publishDone = new CountDownLatch(1); // The MockTransport is on the remote connection. // Slip in a new transport filter after the MockTransport MockTransport mt = (MockTransport) connection3.getTransport().narrow(MockTransport.class); mt.install(new TransportFilter(mt.getNext()) { @Override public void oneway(Object command) throws IOException { LOG.info("Dropping: " + command); // just eat it! to simulate a recent failure. } }); // Send a message (async) as this will block new Thread() { @Override public void run() { // Send the message using the fail over publisher. try { connection3.request(createMessage(producerInfo3, destination, deliveryMode)); } catch (Throwable e) { e.printStackTrace(); } publishDone.countDown(); } }.start(); // Assert that we block: Assert.assertFalse(publishDone.await(3, TimeUnit.SECONDS)); // Restart the remote server. State should be re-played and the publish // should continue. LOG.info("Restarting Broker"); restartRemoteBroker(); LOG.info("Broker Restarted"); // This should reconnect, and resend Assert.assertTrue(publishDone.await(20, TimeUnit.SECONDS)); }
39. FanoutTransportBrokerTest#testPublisherFansout()
Project: activemq-artemis
File: FanoutTransportBrokerTest.java
File: FanoutTransportBrokerTest.java
@Test public void testPublisherFansout() throws Exception { // Start a normal consumer on the local broker StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.request(consumerInfo1); // Start a normal consumer on a remote broker StubConnection connection2 = createRemoteConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(consumerInfo2); // Start a fanout publisher. LOG.info("Starting the fanout connection."); StubConnection connection3 = createFanoutConnection(); ConnectionInfo connectionInfo3 = createConnectionInfo(); SessionInfo sessionInfo3 = createSessionInfo(connectionInfo3); ProducerInfo producerInfo3 = createProducerInfo(sessionInfo3); connection3.send(connectionInfo3); connection3.send(sessionInfo3); connection3.send(producerInfo3); // Send the message using the fail over publisher. connection3.request(createMessage(producerInfo3, destination, deliveryMode)); Assert.assertNotNull(receiveMessage(connection1)); assertNoMessagesLeft(connection1); Assert.assertNotNull(receiveMessage(connection2)); assertNoMessagesLeft(connection2); }
40. FailoverTransportBrokerTest#testPublisherFailsOver()
Project: activemq-artemis
File: FailoverTransportBrokerTest.java
File: FailoverTransportBrokerTest.java
@Test public void testPublisherFailsOver() throws Exception { // Start a normal consumer on the local broker StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.request(consumerInfo1); // Start a normal consumer on a remote broker StubConnection connection2 = createRemoteConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(consumerInfo2); // Start a failover publisher. LOG.info("Starting the failover connection."); StubConnection connection3 = createFailoverConnection(null); ConnectionInfo connectionInfo3 = createConnectionInfo(); SessionInfo sessionInfo3 = createSessionInfo(connectionInfo3); ProducerInfo producerInfo3 = createProducerInfo(sessionInfo3); connection3.send(connectionInfo3); connection3.send(sessionInfo3); connection3.send(producerInfo3); // Send the message using the fail over publisher. connection3.request(createMessage(producerInfo3, destination, deliveryMode)); // The message will be sent to one of the brokers. FailoverTransport ft = connection3.getTransport().narrow(FailoverTransport.class); // See which broker we were connected to. StubConnection connectionA; StubConnection connectionB; EmbeddedJMS serverA; if (new URI(newURI(0)).equals(ft.getConnectedTransportURI())) { connectionA = connection1; connectionB = connection2; serverA = server; } else { connectionA = connection2; connectionB = connection1; serverA = remoteServer; } Assert.assertNotNull(receiveMessage(connectionA)); assertNoMessagesLeft(connectionB); // Dispose the server so that it fails over to the other server. LOG.info("Disconnecting the active connection"); serverA.stop(); connection3.request(createMessage(producerInfo3, destination, deliveryMode)); Assert.assertNotNull(receiveMessage(connectionB)); assertNoMessagesLeft(connectionA); }
41. DiscoveryTransportBrokerTest#testPublisherFailsOver()
Project: activemq-artemis
File: DiscoveryTransportBrokerTest.java
File: DiscoveryTransportBrokerTest.java
public void testPublisherFailsOver() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); int deliveryMode = DeliveryMode.NON_PERSISTENT; // Start a normal consumer on the local broker StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.request(consumerInfo1); // Start a normal consumer on a remote broker StubConnection connection2 = createRemoteConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(consumerInfo2); // Start a failover publisher. StubConnection connection3 = createFailoverConnection(); ConnectionInfo connectionInfo3 = createConnectionInfo(); SessionInfo sessionInfo3 = createSessionInfo(connectionInfo3); ProducerInfo producerInfo3 = createProducerInfo(sessionInfo3); connection3.send(connectionInfo3); connection3.send(sessionInfo3); connection3.send(producerInfo3); // Send the message using the fail over publisher. connection3.request(createMessage(producerInfo3, destination, deliveryMode)); // The message will be sent to one of the brokers. FailoverTransport ft = connection3.getTransport().narrow(FailoverTransport.class); // See which broker we were connected to. StubConnection connectionA; StubConnection connectionB; TransportConnector serverA; if (connector.getServer().getConnectURI().getPort() == ft.getConnectedTransportURI().getPort()) { connectionA = connection1; connectionB = connection2; serverA = connector; } else { connectionA = connection2; connectionB = connection1; serverA = remoteConnector; } assertNotNull(receiveMessage(connectionA)); assertNoMessagesLeft(connectionB); // Dispose the server so that it fails over to the other server. LOG.info("Disconnecting active server"); serverA.stop(); LOG.info("Sending request that should failover"); connection3.request(createMessage(producerInfo3, destination, deliveryMode)); assertNotNull(receiveMessage(connectionB)); assertNoMessagesLeft(connectionA); }
42. ProxyConnectorTest#testSendAndConsume()
Project: activemq-artemis
File: ProxyConnectorTest.java
File: ProxyConnectorTest.java
public void testSendAndConsume() throws Exception { // Start a producer on local broker using the proxy StubConnection connection1 = createProxyConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); destination = createDestinationInfo(connection1, connectionInfo1, destinationType); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); connection1.send(consumerInfo1); // Start a consumer on a remote broker using a proxy connection. StubConnection connection2 = createRemoteProxyConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); connection2.send(consumerInfo2); // Either that or make consumer retroactive try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } // Send the message to the local broker. connection1.request(createMessage(producerInfo, destination, deliveryMode)); // Verify that the message Was sent to the remote broker and the local // broker. Message m; m = receiveMessage(connection1); assertNotNull(m); assertNoMessagesLeft(connection1); m = receiveMessage(connection2); assertNotNull(m); assertNoMessagesLeft(connection2); }
43. DemandForwardingBridgeTest#testSendThenAddConsumer()
Project: activemq-artemis
File: DemandForwardingBridgeTest.java
File: DemandForwardingBridgeTest.java
public void testSendThenAddConsumer() throws Exception { // Start a producer on local broker StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); destination = createDestinationInfo(connection1, connectionInfo1, destinationType); // Start a consumer on a remote broker final StubConnection connection2 = createRemoteConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); // Send the message to the local broker. connection1.send(createMessage(producerInfo, destination, deliveryMode)); // Verify that the message stayed on the local broker. ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); connection1.send(consumerInfo1); Message m = receiveMessage(connection1); assertNotNull(m); // Close consumer to cause the message to rollback. connection1.send(consumerInfo1.createRemoveCommand()); final DestinationStatistics destinationStatistics = broker.getDestination(destination).getDestinationStatistics(); assertEquals("broker dest stat dispatched", 1, destinationStatistics.getDispatched().getCount()); assertEquals("broker dest stat dequeues", 0, destinationStatistics.getDequeues().getCount()); assertEquals("broker dest stat forwards", 0, destinationStatistics.getForwards().getCount()); // Now create remote consumer that should cause message to move to this // remote consumer. final ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); connection2.request(consumerInfo2); // Make sure the message was delivered via the remote. assertTrue("message was received", Wait.waitFor(new Wait.Condition() { @Override public boolean isSatisified() throws Exception { Message msg = receiveMessage(connection2); if (msg != null) { connection2.request(createAck(consumerInfo2, msg, 1, MessageAck.STANDARD_ACK_TYPE)); return true; } return false; } })); assertTrue("broker dest stat forwards", Wait.waitFor(new Wait.Condition() { @Override public boolean isSatisified() throws Exception { return 1 == destinationStatistics.getForwards().getCount(); } })); assertEquals("broker dest stat dequeues", 1, destinationStatistics.getDequeues().getCount()); }
44. StoreQueueCursorOrderTest#testSetBatch()
Project: activemq-artemis
File: StoreQueueCursorOrderTest.java
File: StoreQueueCursorOrderTest.java
@Test public void testSetBatch() throws Exception { final int count = 3; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * 5); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(0L); underTest.addMessageLast(msg); msg = getMessage(1); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(1L); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); msg = getMessage(2); messages[2] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(2L); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch set", 2L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
45. StoreQueueCursorOrderTest#testSetBatchWithFuture()
Project: activemq-artemis
File: StoreQueueCursorOrderTest.java
File: StoreQueueCursorOrderTest.java
@Test public void testSetBatchWithFuture() throws Exception { final int count = 4; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * (count + 6)); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRef = msg; FutureTask<Long> future0 = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRef.getMessageId().setFutureOrSequenceLong(0L); } }, 0L) { }; msg.getMessageId().setFutureOrSequenceLong(future0); underTest.addMessageLast(msg); Executors.newSingleThreadExecutor().submit(future0); msg = getMessage(1); messages[3] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRef1 = msg; FutureTask<Long> future1 = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRef1.getMessageId().setFutureOrSequenceLong(3L); } }, 3L) { }; msg.getMessageId().setFutureOrSequenceLong(future1); underTest.addMessageLast(msg); msg = getMessage(2); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(1L); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); // out of order future Executors.newSingleThreadExecutor().submit(future1); // sync add to flip cache msg = getMessage(3); messages[2] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(3L); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch set", 2L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(count); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
46. StoreQueueCursorOrderTest#testSetBatchWithOrderedFutureCurrentFuture()
Project: activemq-artemis
File: StoreQueueCursorOrderTest.java
File: StoreQueueCursorOrderTest.java
@Test public void testSetBatchWithOrderedFutureCurrentFuture() throws Exception { final int count = 2; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * 1); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRef = msg; FutureTask<Long> future = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRef.getMessageId().setFutureOrSequenceLong(0L); } }, 0L) { }; msg.getMessageId().setFutureOrSequenceLong(future); Executors.newSingleThreadExecutor().submit(future); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); // second message will flip the cache but will be stored before the future task msg = getMessage(1); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRe2f = msg; FutureTask<Long> future2 = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRe2f.getMessageId().setFutureOrSequenceLong(1L); } }, 1L) { }; msg.getMessageId().setFutureOrSequenceLong(future2); Executors.newSingleThreadExecutor().submit(future2); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch set", 1L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
47. StoreQueueCursorOrderTest#testNoSetBatchWithUnOrderedFutureCurrentSync()
Project: activemq-artemis
File: StoreQueueCursorOrderTest.java
File: StoreQueueCursorOrderTest.java
@Test public void testNoSetBatchWithUnOrderedFutureCurrentSync() throws Exception { final int count = 2; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * 1); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRef = msg; FutureTask<Long> future = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRef.getMessageId().setFutureOrSequenceLong(1L); } }, 1L) { }; msg.getMessageId().setFutureOrSequenceLong(future); Executors.newSingleThreadExecutor().submit(future); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); // second message will flip the cache but will be stored before the future task msg = getMessage(1); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(1L); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch unset", 0L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
48. StoreQueueCursorOrderTest#tesBlockedFuture()
Project: activemq-artemis
File: StoreQueueCursorOrderTest.java
File: StoreQueueCursorOrderTest.java
@Test public void tesBlockedFuture() throws Exception { final int count = 2; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * 1); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); FutureTask<Long> future = new FutureTask<Long>(new Runnable() { @Override public void run() { } }, 2L) { }; msg.getMessageId().setFutureOrSequenceLong(future); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); // second message will flip the cache but will be stored before the future task msg = getMessage(1); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(1L); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch unset", 0L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
49. StoreQueueCursorNoDuplicateTest#testNoDuplicateAfterCacheFullAndReadPast()
Project: activemq-artemis
File: StoreQueueCursorNoDuplicateTest.java
File: StoreQueueCursorNoDuplicateTest.java
public void testNoDuplicateAfterCacheFullAndReadPast() throws Exception { final PersistenceAdapter persistenceAdapter = brokerService.getPersistenceAdapter(); final MessageStore queueMessageStore = persistenceAdapter.createQueueMessageStore(destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * (count + 2)); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); final ConnectionContext contextNotInTx = new ConnectionContext(); for (int i = 0; i < count; i++) { ActiveMQTextMessage msg = getMessage(i); msg.setMemoryUsage(systemUsage.getMemoryUsage()); queueMessageStore.addMessage(contextNotInTx, msg); underTest.addMessageLast(msg); } assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
50. MessageExpirationTest#testMessagesInSubscriptionPendingListExpire()
Project: activemq-artemis
File: MessageExpirationTest.java
File: MessageExpirationTest.java
public void testMessagesInSubscriptionPendingListExpire() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); consumerInfo.setPrefetchSize(1); connection.send(consumerInfo); // m1 and m3 should not expire.. but the others should. Message m1 = createMessage(producerInfo, destination, deliveryMode); connection.send(m1); connection.send(createMessage(producerInfo, destination, deliveryMode, 1000)); Message m3 = createMessage(producerInfo, destination, deliveryMode); connection.send(m3); connection.send(createMessage(producerInfo, destination, deliveryMode, 1000)); // Make sure only 1 message was delivered due to prefetch == 1 Message m = receiveMessage(connection); assertNotNull(m); assertEquals(m1.getMessageId(), m.getMessageId()); assertNoMessagesLeft(connection); // Sleep before we ack so that the messages expire on the pending list.. Thread.sleep(1500); connection.send(createAck(consumerInfo, m, 1, MessageAck.STANDARD_ACK_TYPE)); // 2nd message received should be m3.. it should have expired 2nd // message sent. m = receiveMessage(connection); assertNotNull(m); assertEquals(m3.getMessageId(), m.getMessageId()); connection.send(createAck(consumerInfo, m, 1, MessageAck.STANDARD_ACK_TYPE)); // And there should be no messages left now.. assertNoMessagesLeft(connection); connection.send(closeConnectionInfo(connectionInfo)); }
51. MessageExpirationTest#testMessagesInLongTransactionExpire()
Project: activemq-artemis
File: MessageExpirationTest.java
File: MessageExpirationTest.java
public void testMessagesInLongTransactionExpire() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); consumerInfo.setPrefetchSize(1000); connection.send(consumerInfo); // Start the tx.. LocalTransactionId txid = createLocalTransaction(sessionInfo); connection.send(createBeginTransaction(connectionInfo, txid)); // m1 and m3 should not expire.. but the others should. Message m1 = createMessage(producerInfo, destination, deliveryMode); m1.setTransactionId(txid); connection.send(m1); Message m = createMessage(producerInfo, destination, deliveryMode, 1000); m.setTransactionId(txid); connection.send(m); Message m3 = createMessage(producerInfo, destination, deliveryMode); m3.setTransactionId(txid); connection.send(m3); m = createMessage(producerInfo, destination, deliveryMode, 1000); m.setTransactionId(txid); connection.send(m); // Sleep before we commit so that the messages expire on the commit // list.. Thread.sleep(1500); connection.send(createCommitTransaction1Phase(connectionInfo, txid)); m = receiveMessage(connection); assertNotNull(m); assertEquals(m1.getMessageId(), m.getMessageId()); connection.send(createAck(consumerInfo, m, 1, MessageAck.STANDARD_ACK_TYPE)); // 2nd message received should be m3.. it should have expired 2nd // message sent. m = receiveMessage(connection); assertNotNull(m); assertEquals(m3.getMessageId(), m.getMessageId()); connection.send(createAck(consumerInfo, m, 1, MessageAck.STANDARD_ACK_TYPE)); // And there should be no messages left now.. assertNoMessagesLeft(connection); connection.send(closeConnectionInfo(connectionInfo)); }
52. MessageExpirationTest#testMessagesWaitingForUsageDecreaseExpire()
Project: activemq-artemis
File: MessageExpirationTest.java
File: MessageExpirationTest.java
public void testMessagesWaitingForUsageDecreaseExpire() throws Exception { // Start a producer final StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); final ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); // Start a consumer.. final StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); destination = createDestinationInfo(connection2, connectionInfo2, destinationType); ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); consumerInfo2.setPrefetchSize(1); connection2.request(consumerInfo2); // Reduce the limit so that only 1 message can flow through the broker // at a time. broker.getSystemUsage().getMemoryUsage().setLimit(1); final Message m1 = createMessage(producerInfo, destination, deliveryMode); final Message m2 = createMessage(producerInfo, destination, deliveryMode, 1000); final Message m3 = createMessage(producerInfo, destination, deliveryMode); final Message m4 = createMessage(producerInfo, destination, deliveryMode, 1000); // Produce in an async thread since the producer will be getting blocked // by the usage manager.. new Thread() { @Override public void run() { // m1 and m3 should not expire.. but the others should. try { connection.send(m1); connection.send(m2); connection.send(m3); connection.send(m4); } catch (Exception e) { e.printStackTrace(); } } }.start(); // Make sure only 1 message was delivered due to prefetch == 1 Message m = receiveMessage(connection2); assertNotNull(m); assertEquals(m1.getMessageId(), m.getMessageId()); assertNoMessagesLeft(connection); // Sleep before we ack so that the messages expire on the usage manager Thread.sleep(1500); connection2.send(createAck(consumerInfo2, m, 1, MessageAck.STANDARD_ACK_TYPE)); // 2nd message received should be m3.. it should have expired 2nd // message sent. m = receiveMessage(connection2); assertNotNull(m); assertEquals(m3.getMessageId(), m.getMessageId()); // Sleep before we ack so that the messages expire on the usage manager Thread.sleep(1500); connection2.send(createAck(consumerInfo2, m, 1, MessageAck.STANDARD_ACK_TYPE)); // And there should be no messages left now.. assertNoMessagesLeft(connection2); connection.send(closeConnectionInfo(connectionInfo)); connection.send(closeConnectionInfo(connectionInfo2)); }
53. DoubleSubscriptionTest#testDoubleSubscription()
Project: activemq-artemis
File: DoubleSubscriptionTest.java
File: DoubleSubscriptionTest.java
public void testDoubleSubscription() throws Exception { // Start a normal consumer on the remote broker StubConnection connection1 = createRemoteConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.request(consumerInfo1); // Start a normal producer on a remote broker StubConnection connection2 = createRemoteConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ProducerInfo producerInfo2 = createProducerInfo(sessionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.request(producerInfo2); // Send a message to make sure the basics are working connection2.request(createMessage(producerInfo2, destination, DeliveryMode.PERSISTENT)); Message m1 = receiveMessage(connection1); assertNotNull(m1); assertNoMessagesLeft(connection1); connection1.send(createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE)); // Send a message to sit on the broker while we mess with it connection2.request(createMessage(producerInfo2, destination, DeliveryMode.PERSISTENT)); // Now we're going to resend the same consumer commands again and see if // the broker // can handle it. connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.request(consumerInfo1); // After this there should be 2 messages on the broker... connection2.request(createMessage(producerInfo2, destination, DeliveryMode.PERSISTENT)); // ... let's start a fresh consumer... connection1.stop(); StubConnection connection3 = createRemoteConnection(); ConnectionInfo connectionInfo3 = createConnectionInfo(); SessionInfo sessionInfo3 = createSessionInfo(connectionInfo3); ConsumerInfo consumerInfo3 = createConsumerInfo(sessionInfo3, destination); connection3.send(connectionInfo3); connection3.send(sessionInfo3); connection3.request(consumerInfo3); // ... and then grab the 2 that should be there. assertNotNull(receiveMessage(connection3)); assertNotNull(receiveMessage(connection3)); assertNoMessagesLeft(connection3); }
54. BrokerTest#testConsumerPrefetchAndDeliveredAck()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testConsumerPrefetchAndDeliveredAck() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); consumerInfo.setPrefetchSize(1); connection.request(consumerInfo); // Send 3 messages to the broker. connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.request(createMessage(producerInfo, destination, deliveryMode)); // Make sure only 1 message was delivered. Message m1 = receiveMessage(connection); assertNotNull(m1); assertNoMessagesLeft(connection); // Acknowledge the first message. This should cause the next message to // get dispatched. connection.request(createAck(consumerInfo, m1, 1, MessageAck.DELIVERED_ACK_TYPE)); Message m2 = receiveMessage(connection); assertNotNull(m2); connection.request(createAck(consumerInfo, m2, 1, MessageAck.DELIVERED_ACK_TYPE)); Message m3 = receiveMessage(connection); assertNotNull(m3); connection.request(createAck(consumerInfo, m3, 1, MessageAck.DELIVERED_ACK_TYPE)); }
55. BrokerTest#testConsumerPrefetchAtTwo()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testConsumerPrefetchAtTwo() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); consumerInfo.setPrefetchSize(2); connection.send(consumerInfo); // Send 3 messages to the broker. connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.send(createMessage(producerInfo, destination, deliveryMode)); // Make sure only 1 message was delivered. Message m = receiveMessage(connection); assertNotNull(m); m = receiveMessage(connection); assertNotNull(m); assertNoMessagesLeft(connection); }
56. BrokerTest#testConsumerPrefetchAtOne()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testConsumerPrefetchAtOne() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); consumerInfo.setPrefetchSize(1); connection.send(consumerInfo); // Send 2 messages to the broker. connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.send(createMessage(producerInfo, destination, deliveryMode)); // Make sure only 1 message was delivered. Message m = receiveMessage(connection); assertNotNull(m); assertNoMessagesLeft(connection); }
57. BrokerTest#testSelectorSkipsMessages()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testSelectorSkipsMessages() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); consumerInfo.setSelector("JMSType='last'"); connection.send(consumerInfo); Message message1 = createMessage(producerInfo, destination, deliveryMode); message1.setType("first"); Message message2 = createMessage(producerInfo, destination, deliveryMode); message2.setType("last"); connection.send(message1); connection.send(message2); // Use selector to skip first message. Message m = receiveMessage(connection); assertNotNull(m); assertEquals(m.getMessageId(), message2.getMessageId()); connection.send(createAck(consumerInfo, m, 1, MessageAck.STANDARD_ACK_TYPE)); connection.send(closeConsumerInfo(consumerInfo)); assertNoMessagesLeft(connection); }
58. BrokerTest#testQueueBrowseMessages()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testQueueBrowseMessages() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.send(createMessage(producerInfo, destination, deliveryMode)); // Use selector to skip first message. ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); consumerInfo.setBrowser(true); connection.send(consumerInfo); for (int i = 0; i < 4; i++) { Message m = receiveMessage(connection); assertNotNull(m); connection.send(createAck(consumerInfo, m, 1, MessageAck.DELIVERED_ACK_TYPE)); } assertNoMessagesLeft(connection); }
59. BrokerTest#testWildcardConsume()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testWildcardConsume() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); // setup the wildcard consumer. ActiveMQDestination compositeDestination = ActiveMQDestination.createDestination("WILD.*.TEST", destinationType); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, compositeDestination); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); // These two message should NOT match the wild card. connection1.send(createMessage(producerInfo1, ActiveMQDestination.createDestination("WILD.CARD", destinationType), deliveryMode)); connection1.send(createMessage(producerInfo1, ActiveMQDestination.createDestination("WILD.TEST", destinationType), deliveryMode)); // These two message should match the wild card. ActiveMQDestination d1 = ActiveMQDestination.createDestination("WILD.CARD.TEST", destinationType); connection1.send(createMessage(producerInfo1, d1, deliveryMode)); Message m = receiveMessage(connection1); assertNotNull(m); assertEquals(d1, m.getDestination()); ActiveMQDestination d2 = ActiveMQDestination.createDestination("WILD.FOO.TEST", destinationType); connection1.request(createMessage(producerInfo1, d2, deliveryMode)); m = receiveMessage(connection1); assertNotNull(m); assertEquals(d2, m.getDestination()); assertNoMessagesLeft(connection1); connection1.send(closeConnectionInfo(connectionInfo1)); }
60. BrokerTest#testTopicConsumerOnlySeeMessagesAfterCreation()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testTopicConsumerOnlySeeMessagesAfterCreation() throws Exception { ActiveMQDestination destination = new ActiveMQTopic("TEST"); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); connectionInfo1.setClientId("A"); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); // Send the 1st message connection1.send(createMessage(producerInfo1, destination, deliveryMode)); // Create the durable subscription. ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); if (durableConsumer) { consumerInfo1.setSubscriptionName("test"); } consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); Message m = createMessage(producerInfo1, destination, deliveryMode); connection1.send(m); connection1.send(createMessage(producerInfo1, destination, deliveryMode)); // Subscription should skip over the first message Message m2 = receiveMessage(connection1); assertNotNull(m2); assertEquals(m.getMessageId(), m2.getMessageId()); m2 = receiveMessage(connection1); assertNotNull(m2); assertNoMessagesLeft(connection1); }
61. BrokerTest#testQueueTransactedAck()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testQueueTransactedAck() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); destination = createDestinationInfo(connection1, connectionInfo1, destinationType); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); // Send the messages for (int i = 0; i < 4; i++) { Message message = createMessage(producerInfo1, destination, deliveryMode); connection1.send(message); } // Begin the transaction. LocalTransactionId txid = createLocalTransaction(sessionInfo1); connection1.send(createBeginTransaction(connectionInfo1, txid)); // Acknowledge the first 2 messages. for (int i = 0; i < 2; i++) { Message m1 = receiveMessage(connection1); assertNotNull("m1 is null for index: " + i, m1); MessageAck ack = createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE); ack.setTransactionId(txid); connection1.request(ack); } // Commit the transaction. connection1.send(createCommitTransaction1Phase(connectionInfo1, txid)); //due to async tx operations, we need some time for message count to go down Thread.sleep(1000); ArtemisBrokerWrapper wrapper = (ArtemisBrokerWrapper) broker.getBroker(); long messageCount = wrapper.getAMQueueMessageCount(destination); // The queue should now only have the remaining 2 messages assertEquals(2, messageCount); }
62. BrokerTest#testTransactedSend()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testTransactedSend() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); destination = createDestinationInfo(connection1, connectionInfo1, destinationType); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); // Begin the transaction. LocalTransactionId txid = createLocalTransaction(sessionInfo1); connection1.send(createBeginTransaction(connectionInfo1, txid)); // Send the messages for (int i = 0; i < 4; i++) { Message message = createMessage(producerInfo1, destination, deliveryMode); message.setTransactionId(txid); connection1.request(message); } // The point of this test is that message should not be delivered until // send is committed. assertNull(receiveMessage(connection1, MAX_NULL_WAIT)); // Commit the transaction. connection1.send(createCommitTransaction1Phase(connectionInfo1, txid)); // Now get the messages. for (int i = 0; i < 4; i++) { Message m1 = receiveMessage(connection1); assertNotNull(m1); } assertNoMessagesLeft(connection1); }
63. BrokerTest#testTransactedAckWithPrefetchOfOne()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testTransactedAckWithPrefetchOfOne() throws Exception { // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo1 = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo1); destination = createDestinationInfo(connection1, connectionInfo1, destinationType); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(1); connection1.send(consumerInfo1); // Send the messages for (int i = 0; i < 4; i++) { Message message = createMessage(producerInfo1, destination, deliveryMode); connection1.send(message); } // Now get the messages. for (int i = 0; i < 4; i++) { // Begin the transaction. LocalTransactionId txid = createLocalTransaction(sessionInfo1); connection1.send(createBeginTransaction(connectionInfo1, txid)); Message m1 = receiveMessage(connection1); assertNotNull(m1); MessageAck ack = createAck(consumerInfo1, m1, 1, MessageAck.STANDARD_ACK_TYPE); ack.setTransactionId(txid); connection1.send(ack); // Commit the transaction. connection1.send(createCommitTransaction1Phase(connectionInfo1, txid)); } assertNoMessagesLeft(connection1); }
64. BrokerTest#testConsumerPrefetchAndStandardAck()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testConsumerPrefetchAndStandardAck() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); consumerInfo.setPrefetchSize(1); connection.send(consumerInfo); // Send 3 messages to the broker. connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.send(createMessage(producerInfo, destination, deliveryMode)); connection.request(createMessage(producerInfo, destination, deliveryMode)); // Make sure only 1 message was delivered. Message m1 = receiveMessage(connection); assertNotNull(m1); assertNoMessagesLeft(connection); // Acknowledge the first message. This should cause the next message to // get dispatched. connection.send(createAck(consumerInfo, m1, 1, MessageAck.STANDARD_ACK_TYPE)); Message m2 = receiveMessage(connection); assertNotNull(m2); connection.send(createAck(consumerInfo, m2, 1, MessageAck.STANDARD_ACK_TYPE)); Message m3 = receiveMessage(connection); assertNotNull(m3); connection.send(createAck(consumerInfo, m3, 1, MessageAck.STANDARD_ACK_TYPE)); connection.send(closeConnectionInfo(connectionInfo)); }
65. AdvisoryBrokerTest#testProducerAdvisoriesReplayed()
Project: activemq-artemis
File: AdvisoryBrokerTest.java
File: AdvisoryBrokerTest.java
public void testProducerAdvisoriesReplayed() throws Exception { ActiveMQDestination queue = new ActiveMQQueue("test"); ActiveMQDestination destination = AdvisorySupport.getProducerAdvisoryTopic(queue); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); // Setup a producer. StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ProducerInfo producerInfo2 = createProducerInfo(sessionInfo2); producerInfo2.setDestination(queue); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(producerInfo2); // Create the advisory consumer.. it should see the previous producer ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.send(consumerInfo1); Message m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); assertEquals(((ProducerInfo) m1.getDataStructure()).getProducerId(), producerInfo2.getProducerId()); // Close the second connection. connection2.request(closeConnectionInfo(connectionInfo2)); connection2.stop(); // We should get an advisory of the producer closing m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); RemoveInfo r = (RemoveInfo) m1.getDataStructure(); assertEquals(r.getObjectId(), producerInfo2.getProducerId()); assertNoMessagesLeft(connection2); }
66. AdvisoryBrokerTest#testProducerAdvisories()
Project: activemq-artemis
File: AdvisoryBrokerTest.java
File: AdvisoryBrokerTest.java
public void testProducerAdvisories() throws Exception { ActiveMQDestination queue = new ActiveMQQueue("test"); ActiveMQDestination destination = AdvisorySupport.getProducerAdvisoryTopic(queue); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(consumerInfo1); assertNoMessagesLeft(connection1); // Setup a producer. StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); ProducerInfo producerInfo2 = createProducerInfo(sessionInfo2); producerInfo2.setDestination(queue); connection2.send(connectionInfo2); connection2.send(sessionInfo2); connection2.send(producerInfo2); // We should get an advisory of the new produver. Message m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); assertEquals(((ProducerInfo) m1.getDataStructure()).getProducerId(), producerInfo2.getProducerId()); // Close the second connection. connection2.request(closeConnectionInfo(connectionInfo2)); connection2.stop(); // We should get an advisory of the producer closing m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); RemoveInfo r = (RemoveInfo) m1.getDataStructure(); assertEquals(r.getObjectId(), producerInfo2.getProducerId()); assertNoMessagesLeft(connection2); }
67. AdvisoryBrokerTest#testConnectionAdvisories()
Project: activemq-artemis
File: AdvisoryBrokerTest.java
File: AdvisoryBrokerTest.java
public void testConnectionAdvisories() throws Exception { ActiveMQDestination destination = AdvisorySupport.getConnectionAdvisoryTopic(); // Setup a first connection StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination); consumerInfo1.setPrefetchSize(100); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(consumerInfo1); // We should get an advisory of our own connection. Message m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); assertEquals(((ConnectionInfo) m1.getDataStructure()).getConnectionId(), connectionInfo1.getConnectionId()); // Setup a second connection StubConnection connection2 = createConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); connection2.send(connectionInfo2); // We should get an advisory of the second connection. m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); assertEquals(((ConnectionInfo) m1.getDataStructure()).getConnectionId(), connectionInfo2.getConnectionId()); // Close the second connection. connection2.send(closeConnectionInfo(connectionInfo2)); connection2.stop(); // We should get an advisory of the second connection closing m1 = receiveMessage(connection1); assertNotNull(m1); assertNotNull(m1.getDataStructure()); RemoveInfo r = (RemoveInfo) m1.getDataStructure(); assertEquals(r.getObjectId(), connectionInfo2.getConnectionId()); assertNoMessagesLeft(connection1); }
68. ConsumerInfoTest#createObject()
Project: activemq-artemis
File: ConsumerInfoTest.java
File: ConsumerInfoTest.java
@Override public Object createObject() throws Exception { ConsumerInfo info = new ConsumerInfo(); populateObject(info); return info; }
69. ConsumerInfoTest#createObject()
Project: activemq-artemis
File: ConsumerInfoTest.java
File: ConsumerInfoTest.java
@Override public Object createObject() throws Exception { ConsumerInfo info = new ConsumerInfo(); populateObject(info); return info; }
70. ConsumerInfoTest#createObject()
Project: activemq-artemis
File: ConsumerInfoTest.java
File: ConsumerInfoTest.java
@Override public Object createObject() throws Exception { ConsumerInfo info = new ConsumerInfo(); populateObject(info); return info; }
71. ForwardingBridgeTest#testAddConsumerThenSend()
Project: activemq-artemis
File: ForwardingBridgeTest.java
File: ForwardingBridgeTest.java
public void testAddConsumerThenSend() throws Exception { // Start a producer on local broker StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); destination = createDestinationInfo(connection1, connectionInfo1, destinationType); // Start a consumer on a remote broker StubConnection connection2 = createRemoteConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo2, destination); connection2.send(consumerInfo); Thread.sleep(1000); // Give forwarding bridge a chance to finish setting up try { Thread.sleep(1000); } catch (InterruptedException ie) { ie.printStackTrace(); } // Send the message to the local boker. connection1.send(createMessage(producerInfo, destination, deliveryMode)); // Make sure the message was delivered via the remote. Message m = receiveMessage(connection2); assertNotNull(m); }
72. ForwardingBridgeTest#testForwardMessageCompressed()
Project: activemq-artemis
File: ForwardingBridgeTest.java
File: ForwardingBridgeTest.java
public void testForwardMessageCompressed() throws Exception { bridge.setUseCompression(true); // Start a producer on local broker StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); destination = createDestinationInfo(connection1, connectionInfo1, destinationType); // Start a consumer on a remote broker StubConnection connection2 = createRemoteConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo2, destination); connection2.send(consumerInfo); Thread.sleep(1000); // Give forwarding bridge a chance to finish setting up try { Thread.sleep(1000); } catch (InterruptedException ie) { ie.printStackTrace(); } // Send the message to the local boker. connection1.send(createMessage(producerInfo, destination, deliveryMode)); // Make sure the message was delivered via the remote. Message m = receiveMessage(connection2); assertNotNull(m); // Make sure its compressed now ActiveMQMessage message = (ActiveMQMessage) m; assertTrue(message.isCompressed()); }
73. DemandForwardingBridgeTest#testAddConsumerThenSend()
Project: activemq-artemis
File: DemandForwardingBridgeTest.java
File: DemandForwardingBridgeTest.java
public void testAddConsumerThenSend() throws Exception { // Start a producer on local broker StubConnection connection1 = createConnection(); ConnectionInfo connectionInfo1 = createConnectionInfo(); SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1); ProducerInfo producerInfo = createProducerInfo(sessionInfo1); connection1.send(connectionInfo1); connection1.send(sessionInfo1); connection1.send(producerInfo); destination = createDestinationInfo(connection1, connectionInfo1, destinationType); // Start a consumer on a remote broker StubConnection connection2 = createRemoteConnection(); ConnectionInfo connectionInfo2 = createConnectionInfo(); SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2); connection2.send(connectionInfo2); connection2.send(sessionInfo2); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo2, destination); connection2.send(consumerInfo); // subscriptions. try { Thread.sleep(1000); } catch (InterruptedException ie) { ie.printStackTrace(); } // Send the message to the local boker. connection1.request(createMessage(producerInfo, destination, deliveryMode)); // Make sure the message was delivered via the remote. receiveMessage(connection2); }
74. DemandForwardingBridgeFilterTest#createConsumerAndReceiveMessage()
Project: activemq-artemis
File: DemandForwardingBridgeFilterTest.java
File: DemandForwardingBridgeFilterTest.java
private Message createConsumerAndReceiveMessage(ActiveMQDestination destination) throws Exception { // Now create remote consumer that should cause message to move to this // remote consumer. ConsumerInfo consumerInfo = createConsumerInfo(consumerSessionInfo, destination); consumerConnection.send(consumerInfo); Message m = receiveMessage(consumerConnection); return m; }
75. RecoveryBrokerTest#testQueuePersistentXAUncommitedAcksLostOnRestart()
Project: activemq-artemis
File: RecoveryBrokerTest.java
File: RecoveryBrokerTest.java
public void testQueuePersistentXAUncommitedAcksLostOnRestart() throws Exception { int NUMBER = 100; ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup the producer and send the message. StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); for (int i = 0; i < NUMBER; i++) { Message message = createMessage(producerInfo, destination); message.setPersistent(true); connection.send(message); } // Setup the consumer and receive the message. ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // Begin the transaction. XATransactionId txid = createXATransaction(sessionInfo); connection.send(createBeginTransaction(connectionInfo, txid)); Message m = null; for (int i = 0; i < NUMBER; i++) { m = receiveMessage(connection); assertNotNull(m); } MessageAck ack = createAck(consumerInfo, m, NUMBER, MessageAck.STANDARD_ACK_TYPE); ack.setTransactionId(txid); connection.send(ack); // Don't commit // restart the broker. restartBroker(); // Setup the consumer and receive the message. connection = createConnection(); connectionInfo = createConnectionInfo(); sessionInfo = createSessionInfo(connectionInfo); connection.send(connectionInfo); connection.send(sessionInfo); consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // All messages should be re-delivered. for (int i = 0; i < NUMBER; i++) { m = receiveMessage(connection); assertNotNull(m); } assertNoMessagesLeft(connection); }
76. RecoveryBrokerTest#testQueuePersistentUncommitedAcksLostOnRestart()
Project: activemq-artemis
File: RecoveryBrokerTest.java
File: RecoveryBrokerTest.java
public void testQueuePersistentUncommitedAcksLostOnRestart() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup the producer and send the message. StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); for (int i = 0; i < 4; i++) { Message message = createMessage(producerInfo, destination); message.setPersistent(true); connection.send(message); } // Setup the consumer and receive the message. ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // Begin the transaction. LocalTransactionId txid = createLocalTransaction(sessionInfo); connection.send(createBeginTransaction(connectionInfo, txid)); for (int i = 0; i < 4; i++) { Message m = receiveMessage(connection); assertNotNull(m); MessageAck ack = createAck(consumerInfo, m, 1, MessageAck.STANDARD_ACK_TYPE); ack.setTransactionId(txid); connection.send(ack); } // Don't commit // restart the broker. restartBroker(); // Setup the consumer and receive the message. connection = createConnection(); connectionInfo = createConnectionInfo(); sessionInfo = createSessionInfo(connectionInfo); connection.send(connectionInfo); connection.send(sessionInfo); consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // All messages should be re-delivered. for (int i = 0; i < 4; i++) { Message m = receiveMessage(connection); assertNotNull(m); } assertNoMessagesLeft(connection); }
77. RecoveryBrokerTest#testQueuePersistentCommittedAcksNotLostOnRestart()
Project: activemq-artemis
File: RecoveryBrokerTest.java
File: RecoveryBrokerTest.java
public void testQueuePersistentCommittedAcksNotLostOnRestart() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup the producer and send the message. StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); for (int i = 0; i < 4; i++) { Message message = createMessage(producerInfo, destination); message.setPersistent(true); connection.send(message); } // Setup the consumer and receive the message. ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // Begin the transaction. LocalTransactionId txid = createLocalTransaction(sessionInfo); connection.send(createBeginTransaction(connectionInfo, txid)); for (int i = 0; i < 4; i++) { Message m = receiveMessage(connection); assertNotNull(m); MessageAck ack = createAck(consumerInfo, m, 1, MessageAck.STANDARD_ACK_TYPE); ack.setTransactionId(txid); connection.send(ack); } // Commit connection.send(createCommitTransaction1Phase(connectionInfo, txid)); connection.request(closeConnectionInfo(connectionInfo)); // restart the broker. restartBroker(); // Setup the consumer and receive the message. connection = createConnection(); connectionInfo = createConnectionInfo(); sessionInfo = createSessionInfo(connectionInfo); connection.send(connectionInfo); connection.send(sessionInfo); consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // No messages should be delivered. Message m = receiveMessage(connection); assertNull(m); }
78. RecoveryBrokerTest#testQueuePersistentCommittedMessagesNotLostOnRestart()
Project: activemq-artemis
File: RecoveryBrokerTest.java
File: RecoveryBrokerTest.java
public void testQueuePersistentCommittedMessagesNotLostOnRestart() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup the producer and send the message. StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); // Begin the transaction. LocalTransactionId txid = createLocalTransaction(sessionInfo); connection.send(createBeginTransaction(connectionInfo, txid)); for (int i = 0; i < 4; i++) { Message message = createMessage(producerInfo, destination); message.setPersistent(true); message.setTransactionId(txid); connection.send(message); } // Commit connection.send(createCommitTransaction1Phase(connectionInfo, txid)); connection.request(closeConnectionInfo(connectionInfo)); // restart the broker. restartBroker(); // Setup the consumer and receive the message. connection = createConnection(); connectionInfo = createConnectionInfo(); sessionInfo = createSessionInfo(connectionInfo); connection.send(connectionInfo); connection.send(sessionInfo); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); for (int i = 0; i < 4; i++) { Message m = receiveMessage(connection); assertNotNull(m); } assertNoMessagesLeft(connection); }
79. RecoveryBrokerTest#testQueueNonPersistentMessagesLostOnRestart()
Project: activemq-artemis
File: RecoveryBrokerTest.java
File: RecoveryBrokerTest.java
public void testQueueNonPersistentMessagesLostOnRestart() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup the producer and send the message. StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); Message message = createMessage(producerInfo, destination); message.setPersistent(false); connection.send(message); // restart the broker. restartBroker(); // Setup the consumer and receive the message. connection = createConnection(); connectionInfo = createConnectionInfo(); sessionInfo = createSessionInfo(connectionInfo); connection.send(connectionInfo); connection.send(sessionInfo); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // Message should have been dropped due to broker restart. assertNoMessagesLeft(connection); }
80. RecoveryBrokerTest#testQueuePersistentMessagesNotLostOnRestart()
Project: activemq-artemis
File: RecoveryBrokerTest.java
File: RecoveryBrokerTest.java
public void testQueuePersistentMessagesNotLostOnRestart() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup the producer and send the message. StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); Message message = createMessage(producerInfo, destination); message.setPersistent(true); connection.send(message); connection.request(closeConnectionInfo(connectionInfo)); // restart the broker. restartBroker(); // Setup the consumer and receive the message. connection = createConnection(); connectionInfo = createConnectionInfo(); sessionInfo = createSessionInfo(connectionInfo); connection.send(connectionInfo); connection.send(sessionInfo); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // Message should have been dropped due to broker restart. Message m = receiveMessage(connection); assertNotNull("Should have received a message by now!", m); assertEquals(m.getMessageId(), message.getMessageId()); }
81. RecoveryBrokerTest#testQueuePersistentUncommitedMessagesLostOnRestart()
Project: activemq-artemis
File: RecoveryBrokerTest.java
File: RecoveryBrokerTest.java
public void testQueuePersistentUncommitedMessagesLostOnRestart() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup the producer and send the message. StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); // Begin the transaction. LocalTransactionId txid = createLocalTransaction(sessionInfo); connection.send(createBeginTransaction(connectionInfo, txid)); for (int i = 0; i < 4; i++) { Message message = createMessage(producerInfo, destination); message.setPersistent(true); message.setTransactionId(txid); connection.send(message); } // Don't commit // restart the broker. restartBroker(); // Setup the consumer and receive the message. connection = createConnection(); connectionInfo = createConnectionInfo(); sessionInfo = createSessionInfo(connectionInfo); connection.send(connectionInfo); connection.send(sessionInfo); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // No messages should be delivered. Message m = receiveMessage(connection); assertNull(m); }
82. RecoveryBrokerTest#testConsumedQueuePersistentMessagesLostOnRestart()
Project: activemq-artemis
File: RecoveryBrokerTest.java
File: RecoveryBrokerTest.java
public void testConsumedQueuePersistentMessagesLostOnRestart() throws Exception { ActiveMQDestination destination = new ActiveMQQueue("TEST"); // Setup the producer and send the message. StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); for (int i = 0; i < 4; i++) { Message message = createMessage(producerInfo, destination); message.setPersistent(true); connection.send(message); } // Setup the consumer and receive the message. connection = createConnection(); connectionInfo = createConnectionInfo(); sessionInfo = createSessionInfo(connectionInfo); connection.send(connectionInfo); connection.send(sessionInfo); ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.send(consumerInfo); // The we should get the messages. for (int i = 0; i < 4; i++) { Message m2 = receiveMessage(connection); assertNotNull(m2); } // restart the broker. restartBroker(); // No messages should be delivered. Message m = receiveMessage(connection); assertNull(m); }
83. BrokerTest#testQueueAckRemovesMessage()
Project: activemq-artemis
File: BrokerTest.java
File: BrokerTest.java
public void testQueueAckRemovesMessage() throws Exception { // Start a producer and consumer StubConnection connection = createConnection(); ConnectionInfo connectionInfo = createConnectionInfo(); SessionInfo sessionInfo = createSessionInfo(connectionInfo); ProducerInfo producerInfo = createProducerInfo(sessionInfo); connection.send(connectionInfo); connection.send(sessionInfo); connection.send(producerInfo); destination = createDestinationInfo(connection, connectionInfo, destinationType); Message message1 = createMessage(producerInfo, destination, deliveryMode); Message message2 = createMessage(producerInfo, destination, deliveryMode); connection.send(message1); connection.send(message2); // Make sure the message was delivered. ConsumerInfo consumerInfo = createConsumerInfo(sessionInfo, destination); connection.request(consumerInfo); Message m = receiveMessage(connection); assertNotNull(m); assertEquals(m.getMessageId(), message1.getMessageId()); ArtemisBrokerWrapper wrapper = (ArtemisBrokerWrapper) broker.getBroker(); long messageCount = wrapper.getAMQueueMessageCount(destination); assertTrue(messageCount == 2); connection.send(createAck(consumerInfo, m, 1, MessageAck.DELIVERED_ACK_TYPE)); messageCount = wrapper.getAMQueueMessageCount(destination); assertTrue(messageCount == 2); connection.send(createAck(consumerInfo, m, 1, MessageAck.STANDARD_ACK_TYPE)); //give some time for broker to count down Thread.sleep(2000); messageCount = wrapper.getAMQueueMessageCount(destination); assertTrue(messageCount == 1); }