You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2011/06/10 21:24:01 UTC
svn commit: r1134421 - in
/activemq/activemq-apollo/trunk/apollo-openwire/src:
main/scala/org/apache/activemq/apollo/openwire/command/BaseCommand.java
test/scala/org/apache/activemq/apollo/openwire/ExclusiveConsumerTest.scala
Author: tabish
Date: Fri Jun 10 19:24:01 2011
New Revision: 1134421
URL: http://svn.apache.org/viewvc?rev=1134421&view=rev
Log:
https://issues.apache.org/jira/browse/APLO-30
Fix up the ExclusiveConsumer test case and tweak the BaseCommand class to produce meaningful toString output for logging
Modified:
activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/command/BaseCommand.java
activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/ExclusiveConsumerTest.scala
Modified: activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/command/BaseCommand.java
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/command/BaseCommand.java?rev=1134421&r1=1134420&r2=1134421&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/command/BaseCommand.java (original)
+++ activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/command/BaseCommand.java Fri Jun 10 19:24:01 2011
@@ -67,7 +67,7 @@ public abstract class BaseCommand implem
public String toString(Map<String, Object>overrideFields) {
return IntrospectionSupport.simpleName(this.getClass()) + " " +
- IntrospectionSupport.toString(this, BaseCommand.class, overrideFields);
+ IntrospectionSupport.toString(this, BaseCommand.class, false, overrideFields);
}
public boolean isWireFormatInfo() {
Modified: activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/ExclusiveConsumerTest.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/ExclusiveConsumerTest.scala?rev=1134421&r1=1134420&r2=1134421&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/ExclusiveConsumerTest.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/ExclusiveConsumerTest.scala Fri Jun 10 19:24:01 2011
@@ -17,56 +17,64 @@
package org.apache.activemq.apollo.openwire
import javax.jms.{TextMessage, Session}
-import org.apache.activemq.apollo.openwire.command.ActiveMQQueue
class ExclusiveConsumerTest extends OpenwireTestSupport {
+}
+
+class ExclusiveConsumerSelectedWhenCreatedFirst extends ExclusiveConsumerTest {
+
test("Exclusive Consumer Selected when created first") {
- connect();
+ connect()
val exclusiveSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val fallbackSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val senderSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val exclusiveConsumer = exclusiveSession.createConsumer(queue("TEST.QUEUE1?consumer.exclusive=true"))
- val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"));
- val producer = senderSession.createProducer(queue("TEST.QUEUE1"));
+ val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"))
+ val producer = senderSession.createProducer(queue("TEST.QUEUE1"))
- val msg = senderSession.createTextMessage("test");
- producer.send(msg);
+ producer.send(senderSession.createTextMessage("Exclusive Consumer Selected when created first - 1"))
- Thread.sleep(100);
+ Thread.sleep(100)
// Verify exclusive consumer receives the message.
exclusiveConsumer.receive(100) should not be(null)
fallbackConsumer.receive(100) should be(null)
}
+}
- test("Exclusive Consumer Selected when Created After Non-Exclusive Consumer") {
+class ExclusiveConsumerSelectedWhenCreatedAfterNonExclusive extends ExclusiveConsumerTest {
- connect();
+ test("Exclusive Consumer Selected when Created After Non-Exclusive Consumer") {
+ connect()
val exclusiveSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val fallbackSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val senderSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
- val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"));
+ val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"))
val exclusiveConsumer = exclusiveSession.createConsumer(queue("TEST.QUEUE1?consumer.exclusive=true"))
- val producer = senderSession.createProducer(queue("TEST.QUEUE1"));
+ val producer = senderSession.createProducer(queue("TEST.QUEUE1"))
- val msg = senderSession.createTextMessage("test");
+ val msg = senderSession.createTextMessage("test")
producer.send(msg);
- Thread.sleep(100);
+ Thread.sleep(100)
// Verify exclusive consumer receives the message.
exclusiveConsumer.receive(100) should not be(null)
fallbackConsumer.receive(100) should be(null)
}
+}
+
+class FailoverToAnotherExclusiveConsumerCreateFirst extends ExclusiveConsumerTest {
test("Failover To Another Exclusive Consumer Created First") {
- connect();
+
+ connect()
val exclusiveSession1 = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val exclusiveSession2 = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
@@ -75,13 +83,12 @@ class ExclusiveConsumerTest extends Open
val exclusiveConsumer1 = exclusiveSession1.createConsumer(queue("TEST.QUEUE1?consumer.exclusive=true"))
val exclusiveConsumer2 = exclusiveSession2.createConsumer(queue("TEST.QUEUE1?consumer.exclusive=true"))
- val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"));
- val producer = senderSession.createProducer(queue("TEST.QUEUE1"));
+ val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"))
+ val producer = senderSession.createProducer(queue("TEST.QUEUE1"))
- val msg = senderSession.createTextMessage("test");
- producer.send(msg);
+ producer.send(senderSession.createTextMessage("Failover To Another Exclusive Consumer Created First - 1"))
- Thread.sleep(100);
+ Thread.sleep(100)
// Verify exclusive consumer receives the message.
exclusiveConsumer1.receive(100) should not be(null)
@@ -92,16 +99,19 @@ class ExclusiveConsumerTest extends Open
// takes over
exclusiveConsumer1.close()
- producer.send(msg);
- producer.send(msg);
+ producer.send(senderSession.createTextMessage("Failover To Another Exclusive Consumer Created First - 2"))
+ producer.send(senderSession.createTextMessage("Failover To Another Exclusive Consumer Created First - 3"))
exclusiveConsumer2.receive(100) should not be(null)
fallbackConsumer.receive(100) should be(null)
}
+}
+
+class FailoverToAnotherExclusiveConsumerCreateAfterNonExclusive extends ExclusiveConsumerTest {
test("Failover To Another Exclusive Consumer Created After a non-exclusive Consumer") {
- connect();
+ connect()
val exclusiveSession1 = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val exclusiveSession2 = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
@@ -109,14 +119,13 @@ class ExclusiveConsumerTest extends Open
val senderSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val exclusiveConsumer1 = exclusiveSession1.createConsumer(queue("TEST.QUEUE1?consumer.exclusive=true"))
- val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"));
+ val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"))
val exclusiveConsumer2 = exclusiveSession2.createConsumer(queue("TEST.QUEUE1?consumer.exclusive=true"))
- val producer = senderSession.createProducer(queue("TEST.QUEUE1"));
+ val producer = senderSession.createProducer(queue("TEST.QUEUE1"))
- val msg = senderSession.createTextMessage("test");
- producer.send(msg);
+ producer.send(senderSession.createTextMessage("Failover To Another Exclusive Consumer Created After - 1"));
- Thread.sleep(100);
+ Thread.sleep(100)
// Verify exclusive consumer receives the message.
exclusiveConsumer1.receive(100) should not be(null)
@@ -127,29 +136,33 @@ class ExclusiveConsumerTest extends Open
// takes over
exclusiveConsumer1.close()
- producer.send(msg);
- producer.send(msg);
+ producer.send(senderSession.createTextMessage("Failover To Another Exclusive Consumer Created After - 2"))
+ producer.send(senderSession.createTextMessage("Failover To Another Exclusive Consumer Created After - 3"))
exclusiveConsumer2.receive(100) should not be(null)
fallbackConsumer.receive(100) should be(null)
}
+}
+
+class FailoverToNonExclusiveConsumer extends ExclusiveConsumerTest {
test("Failover To NonExclusive Consumer") {
- connect();
+ info("*** Running Test: Failover To NonExclusive Consumer")
+
+ connect()
val exclusiveSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val fallbackSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val senderSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val exclusiveConsumer = exclusiveSession.createConsumer(queue("TEST.QUEUE1?consumer.exclusive=true"))
- val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"));
- val producer = senderSession.createProducer(queue("TEST.QUEUE1"));
+ val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"))
+ val producer = senderSession.createProducer(queue("TEST.QUEUE1"))
- val msg = senderSession.createTextMessage("test");
- producer.send(msg);
+ producer.send(senderSession.createTextMessage("Failover To NonExclusive Consumer - 1"))
- Thread.sleep(100);
+ Thread.sleep(100)
// Verify exclusive consumer receives the message.
exclusiveConsumer.receive(100) should not be(null)
@@ -159,46 +172,51 @@ class ExclusiveConsumerTest extends Open
// takes over
exclusiveConsumer.close()
- producer.send(msg);
+ producer.send(senderSession.createTextMessage("Failover To NonExclusive Consumer - 2"))
fallbackConsumer.receive(100) should not be(null)
+ fallbackConsumer.close()
}
+}
+
+class FallbackToAnotherExclusiveConsumer extends ExclusiveConsumerTest {
test("Fallback To Exclusive Consumer") {
- connect();
+ connect()
val exclusiveSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val fallbackSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val senderSession = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
var exclusiveConsumer = exclusiveSession.createConsumer(queue("TEST.QUEUE1?consumer.exclusive=true"))
- val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"));
- val producer = senderSession.createProducer(queue("TEST.QUEUE1"));
+ val fallbackConsumer = fallbackSession.createConsumer(queue("TEST.QUEUE1"))
+ val producer = senderSession.createProducer(queue("TEST.QUEUE1"))
- val msg = senderSession.createTextMessage("test");
- producer.send(msg);
+ producer.send(senderSession.createTextMessage("Fallback To Exclusive Consumer - 1"))
- Thread.sleep(100);
+ Thread.sleep(100)
// Verify exclusive consumer receives the message.
- assert(exclusiveConsumer.receive(100) != null, "The exclusive consumer should have got a Message");
- assert(fallbackConsumer.receive(100) == null, "The non-exclusive consumer shouldn't have a message");
+ exclusiveConsumer.receive(200) should not be(null)
+ fallbackConsumer.receive(200) should be(null)
+
+ Thread.sleep(100)
// Close the exclusive consumer to verify the non-exclusive consumer
// takes over
exclusiveConsumer.close()
- producer.send(msg)
- assert(fallbackConsumer.receive(100) != null, "The non-exclusive consumer should have a message");
+ producer.send(senderSession.createTextMessage("Fallback To Exclusive Consumer - 2"))
+ fallbackConsumer.receive(100) should not be(null)
// Create exclusive consumer to determine if it will start receiving
// the messages.
exclusiveConsumer = exclusiveSession.createConsumer(queue("TEST.QUEUE1?consumer.exclusive=true"))
- producer.send(msg)
+ producer.send(senderSession.createTextMessage("Fallback To Exclusive Consumer - 3"))
// Verify exclusive consumer receives the message.
exclusiveConsumer.receive(100) should not be(null)
-// fallbackConsumer.receive(100) should be(null)
+ fallbackConsumer.receive(100) should be(null)
}
}
\ No newline at end of file