From d79415481f10a50d7c219cb3e3bd28c6980f4670 Mon Sep 17 00:00:00 2001 From: momania Date: Fri, 2 Jul 2010 14:01:15 +0200 Subject: [PATCH 1/3] No need for disconnect after a shutdown error --- akka-amqp/src/main/scala/FaultTolerantConnectionActor.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/akka-amqp/src/main/scala/FaultTolerantConnectionActor.scala b/akka-amqp/src/main/scala/FaultTolerantConnectionActor.scala index 486b2e1311..1901df3202 100644 --- a/akka-amqp/src/main/scala/FaultTolerantConnectionActor.scala +++ b/akka-amqp/src/main/scala/FaultTolerantConnectionActor.scala @@ -40,7 +40,6 @@ private[amqp] class FaultTolerantConnectionActor(connectionParameters: Connectio } } case ConnectionShutdown(cause) => { - disconnect if (cause.isHardError) { // connection error if (cause.isInitiatedByApplication) { From 91ec2200d425201f88d44b49859180c81a161890 Mon Sep 17 00:00:00 2001 From: momania Date: Fri, 2 Jul 2010 14:09:58 +0200 Subject: [PATCH 2/3] - moved deliveryHandler linking for consumer to the AMQP factory function - added the copyright comments --- akka-amqp/src/main/scala/AMQP.scala | 5 +++++ akka-amqp/src/main/scala/AMQPMessage.scala | 4 ++++ akka-amqp/src/main/scala/ConsumerActor.scala | 8 ++++---- akka-amqp/src/main/scala/ExchangeType.scala | 4 ++++ akka-amqp/src/main/scala/FaultTolerantChannelActor.scala | 4 ++++ .../src/main/scala/FaultTolerantConnectionActor.scala | 4 ++++ akka-amqp/src/main/scala/ProducerActor.scala | 4 ++++ akka-amqp/src/test/scala/AMQPConnectionRecoveryTest.scala | 4 ++++ .../src/test/scala/AMQPConsumerChannelRecoveryTest.scala | 6 +++++- .../test/scala/AMQPConsumerConnectionRecoveryTest.scala | 6 +++++- .../test/scala/AMQPConsumerManualAcknowledgeTest.scala | 4 ++++ akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala | 4 ++++ .../src/test/scala/AMQPProducerChannelRecoveryTest.scala | 4 ++++ .../test/scala/AMQPProducerConnectionRecoveryTest.scala | 4 ++++ akka-amqp/src/test/scala/AMQPProducerMessageTest.scala | 4 ++++ 15 files changed, 63 insertions(+), 6 deletions(-) diff --git a/akka-amqp/src/main/scala/AMQP.scala b/akka-amqp/src/main/scala/AMQP.scala index 699a6a9fc7..172a89ea74 100644 --- a/akka-amqp/src/main/scala/AMQP.scala +++ b/akka-amqp/src/main/scala/AMQP.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp import se.scalablesolutions.akka.actor.{Actor, ActorRef} @@ -69,6 +73,7 @@ object AMQP { def newConsumer(connection: ActorRef, consumerParameters: ConsumerParameters): ActorRef = { val consumer: ActorRef = actorOf(new ConsumerActor(consumerParameters)) + consumer.startLink(consumerParameters.deliveryHandler) connection.startLink(consumer) consumer ! Start consumer diff --git a/akka-amqp/src/main/scala/AMQPMessage.scala b/akka-amqp/src/main/scala/AMQPMessage.scala index f1e6668935..bf2461723f 100644 --- a/akka-amqp/src/main/scala/AMQPMessage.scala +++ b/akka-amqp/src/main/scala/AMQPMessage.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp import se.scalablesolutions.akka.actor.ActorRef diff --git a/akka-amqp/src/main/scala/ConsumerActor.scala b/akka-amqp/src/main/scala/ConsumerActor.scala index 0d9ca5cc05..dd2e811702 100644 --- a/akka-amqp/src/main/scala/ConsumerActor.scala +++ b/akka-amqp/src/main/scala/ConsumerActor.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp import com.rabbitmq.client.AMQP.Queue.DeclareOk @@ -24,10 +28,6 @@ private[amqp] class ConsumerActor(consumerParameters: ConsumerParameters) extend protected def setupChannel(ch: Channel) = { - // todo make nicer - if (!self.linkedActorsAsList.contains(deliveryHandler)) { - self.startLink(deliveryHandler) - } val queueDeclare: DeclareOk = { queueName match { case Some(name) => diff --git a/akka-amqp/src/main/scala/ExchangeType.scala b/akka-amqp/src/main/scala/ExchangeType.scala index b9598fbed9..1fa6e0543f 100644 --- a/akka-amqp/src/main/scala/ExchangeType.scala +++ b/akka-amqp/src/main/scala/ExchangeType.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp sealed trait ExchangeType diff --git a/akka-amqp/src/main/scala/FaultTolerantChannelActor.scala b/akka-amqp/src/main/scala/FaultTolerantChannelActor.scala index 40cd0ff753..b29b26b621 100644 --- a/akka-amqp/src/main/scala/FaultTolerantChannelActor.scala +++ b/akka-amqp/src/main/scala/FaultTolerantChannelActor.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp import collection.JavaConversions diff --git a/akka-amqp/src/main/scala/FaultTolerantConnectionActor.scala b/akka-amqp/src/main/scala/FaultTolerantConnectionActor.scala index 1901df3202..6e3a936256 100644 --- a/akka-amqp/src/main/scala/FaultTolerantConnectionActor.scala +++ b/akka-amqp/src/main/scala/FaultTolerantConnectionActor.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp import java.util.{TimerTask, Timer} diff --git a/akka-amqp/src/main/scala/ProducerActor.scala b/akka-amqp/src/main/scala/ProducerActor.scala index 3e703dcfec..7e4a11a089 100644 --- a/akka-amqp/src/main/scala/ProducerActor.scala +++ b/akka-amqp/src/main/scala/ProducerActor.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp import com.rabbitmq.client._ diff --git a/akka-amqp/src/test/scala/AMQPConnectionRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPConnectionRecoveryTest.scala index 527c5aa55a..c27964eb47 100644 --- a/akka-amqp/src/test/scala/AMQPConnectionRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPConnectionRecoveryTest.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp.test import se.scalablesolutions.akka.util.Logging diff --git a/akka-amqp/src/test/scala/AMQPConsumerChannelRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPConsumerChannelRecoveryTest.scala index b0c845242b..d1ab9455e4 100644 --- a/akka-amqp/src/test/scala/AMQPConsumerChannelRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPConsumerChannelRecoveryTest.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp.test import se.scalablesolutions.akka.util.Logging @@ -14,7 +18,7 @@ import org.junit.Test class AMQPConsumerChannelRecoveryTest extends JUnitSuite with MustMatchers with Logging { -// @Test + @Test def consumerChannelRecovery = { val connection = AMQP.newConnection(ConnectionParameters(initReconnectDelay = 50)) diff --git a/akka-amqp/src/test/scala/AMQPConsumerConnectionRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPConsumerConnectionRecoveryTest.scala index e1f483a237..138ed8f3ff 100644 --- a/akka-amqp/src/test/scala/AMQPConsumerConnectionRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPConsumerConnectionRecoveryTest.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp.test import se.scalablesolutions.akka.util.Logging @@ -14,7 +18,7 @@ import org.junit.Test class AMQPConsumerConnectionRecoveryTest extends JUnitSuite with MustMatchers with Logging { -// @Test + @Test def consumerConnectionRecovery = { val connection = AMQP.newConnection(ConnectionParameters(initReconnectDelay = 50)) diff --git a/akka-amqp/src/test/scala/AMQPConsumerManualAcknowledgeTest.scala b/akka-amqp/src/test/scala/AMQPConsumerManualAcknowledgeTest.scala index d5aabf7cd5..ccafe8a2ee 100644 --- a/akka-amqp/src/test/scala/AMQPConsumerManualAcknowledgeTest.scala +++ b/akka-amqp/src/test/scala/AMQPConsumerManualAcknowledgeTest.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp.test import se.scalablesolutions.akka.util.Logging diff --git a/akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala b/akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala index 739f731f4e..a94dd3be65 100644 --- a/akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala +++ b/akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp.test import se.scalablesolutions.akka.util.Logging diff --git a/akka-amqp/src/test/scala/AMQPProducerChannelRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPProducerChannelRecoveryTest.scala index d33f0914ba..e9b1491447 100644 --- a/akka-amqp/src/test/scala/AMQPProducerChannelRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPProducerChannelRecoveryTest.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp.test import se.scalablesolutions.akka.util.Logging diff --git a/akka-amqp/src/test/scala/AMQPProducerConnectionRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPProducerConnectionRecoveryTest.scala index f5e134682b..92bd4bddf4 100644 --- a/akka-amqp/src/test/scala/AMQPProducerConnectionRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPProducerConnectionRecoveryTest.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp.test import se.scalablesolutions.akka.util.Logging diff --git a/akka-amqp/src/test/scala/AMQPProducerMessageTest.scala b/akka-amqp/src/test/scala/AMQPProducerMessageTest.scala index 95ee80d5a7..30c3670ca7 100644 --- a/akka-amqp/src/test/scala/AMQPProducerMessageTest.scala +++ b/akka-amqp/src/test/scala/AMQPProducerMessageTest.scala @@ -1,3 +1,7 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package se.scalablesolutions.akka.amqp.test import se.scalablesolutions.akka.util.Logging From 827ad5a9c463e151eb0833ae4ae205bf892c1653 Mon Sep 17 00:00:00 2001 From: momania Date: Fri, 2 Jul 2010 14:15:53 +0200 Subject: [PATCH 3/3] - added dummy tests to make sure the test classes don't fail because of disabled tests, these tests need a local rabbitmq server running --- .../src/test/scala/AMQPConnectionRecoveryTest.scala | 9 ++++++++- .../src/test/scala/AMQPConsumerChannelRecoveryTest.scala | 9 ++++++++- .../test/scala/AMQPConsumerConnectionRecoveryTest.scala | 9 ++++++++- .../test/scala/AMQPConsumerManualAcknowledgeTest.scala | 7 +++++++ akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala | 7 +++++++ .../src/test/scala/AMQPProducerChannelRecoveryTest.scala | 7 +++++++ .../test/scala/AMQPProducerConnectionRecoveryTest.scala | 7 +++++++ akka-amqp/src/test/scala/AMQPProducerMessageTest.scala | 7 +++++++ 8 files changed, 59 insertions(+), 3 deletions(-) diff --git a/akka-amqp/src/test/scala/AMQPConnectionRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPConnectionRecoveryTest.scala index c27964eb47..72ccab3cc1 100644 --- a/akka-amqp/src/test/scala/AMQPConnectionRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPConnectionRecoveryTest.scala @@ -16,7 +16,7 @@ import se.scalablesolutions.akka.amqp.AMQP.ConnectionParameters import org.scalatest.matchers.MustMatchers class AMQPConnectionRecoveryTest extends JUnitSuite with MustMatchers with Logging { - + // @Test def connectionAndRecovery = { val connectedLatch = new StandardLatch @@ -48,4 +48,11 @@ class AMQPConnectionRecoveryTest extends JUnitSuite with MustMatchers with Loggi disconnectedLatch.tryAwait(2, TimeUnit.SECONDS) must be(true) } } + + @Test + def dummy { + // amqp tests need local rabbitmq server running, so a disabled by default. + // this dummy test makes sure that the whole test class doesn't fail because of missing tests + assert(true) + } } \ No newline at end of file diff --git a/akka-amqp/src/test/scala/AMQPConsumerChannelRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPConsumerChannelRecoveryTest.scala index d1ab9455e4..11de861a6a 100644 --- a/akka-amqp/src/test/scala/AMQPConsumerChannelRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPConsumerChannelRecoveryTest.scala @@ -18,7 +18,7 @@ import org.junit.Test class AMQPConsumerChannelRecoveryTest extends JUnitSuite with MustMatchers with Logging { - @Test +// @Test def consumerChannelRecovery = { val connection = AMQP.newConnection(ConnectionParameters(initReconnectDelay = 50)) @@ -59,4 +59,11 @@ class AMQPConsumerChannelRecoveryTest extends JUnitSuite with MustMatchers with connection.stop } } + + @Test + def dummy { + // amqp tests need local rabbitmq server running, so a disabled by default. + // this dummy test makes sure that the whole test class doesn't fail because of missing tests + assert(true) + } } \ No newline at end of file diff --git a/akka-amqp/src/test/scala/AMQPConsumerConnectionRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPConsumerConnectionRecoveryTest.scala index 138ed8f3ff..fe339cb6c5 100644 --- a/akka-amqp/src/test/scala/AMQPConsumerConnectionRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPConsumerConnectionRecoveryTest.scala @@ -18,7 +18,7 @@ import org.junit.Test class AMQPConsumerConnectionRecoveryTest extends JUnitSuite with MustMatchers with Logging { - @Test +// @Test def consumerConnectionRecovery = { val connection = AMQP.newConnection(ConnectionParameters(initReconnectDelay = 50)) @@ -77,4 +77,11 @@ class AMQPConsumerConnectionRecoveryTest extends JUnitSuite with MustMatchers wi connection.stop } } + + @Test + def dummy { + // amqp tests need local rabbitmq server running, so a disabled by default. + // this dummy test makes sure that the whole test class doesn't fail because of missing tests + assert(true) + } } \ No newline at end of file diff --git a/akka-amqp/src/test/scala/AMQPConsumerManualAcknowledgeTest.scala b/akka-amqp/src/test/scala/AMQPConsumerManualAcknowledgeTest.scala index ccafe8a2ee..448b93689d 100644 --- a/akka-amqp/src/test/scala/AMQPConsumerManualAcknowledgeTest.scala +++ b/akka-amqp/src/test/scala/AMQPConsumerManualAcknowledgeTest.scala @@ -48,4 +48,11 @@ class AMQPConsumerManualAcknowledgeTest extends JUnitSuite with MustMatchers wit connection.stop } } + + @Test + def dummy { + // amqp tests need local rabbitmq server running, so a disabled by default. + // this dummy test makes sure that the whole test class doesn't fail because of missing tests + assert(true) + } } \ No newline at end of file diff --git a/akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala b/akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala index a94dd3be65..31cff4414c 100644 --- a/akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala +++ b/akka-amqp/src/test/scala/AMQPConsumerMessageTest.scala @@ -43,4 +43,11 @@ class AMQPConsumerMessageTest extends JUnitSuite with MustMatchers with Logging connection.stop } } + + @Test + def dummy { + // amqp tests need local rabbitmq server running, so a disabled by default. + // this dummy test makes sure that the whole test class doesn't fail because of missing tests + assert(true) + } } \ No newline at end of file diff --git a/akka-amqp/src/test/scala/AMQPProducerChannelRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPProducerChannelRecoveryTest.scala index e9b1491447..9a02424e7f 100644 --- a/akka-amqp/src/test/scala/AMQPProducerChannelRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPProducerChannelRecoveryTest.scala @@ -53,4 +53,11 @@ class AMQPProducerChannelRecoveryTest extends JUnitSuite with MustMatchers with connection.stop } } + + @Test + def dummy { + // amqp tests need local rabbitmq server running, so a disabled by default. + // this dummy test makes sure that the whole test class doesn't fail because of missing tests + assert(true) + } } \ No newline at end of file diff --git a/akka-amqp/src/test/scala/AMQPProducerConnectionRecoveryTest.scala b/akka-amqp/src/test/scala/AMQPProducerConnectionRecoveryTest.scala index 92bd4bddf4..c69d37a24b 100644 --- a/akka-amqp/src/test/scala/AMQPProducerConnectionRecoveryTest.scala +++ b/akka-amqp/src/test/scala/AMQPProducerConnectionRecoveryTest.scala @@ -51,4 +51,11 @@ class AMQPProducerConnectionRecoveryTest extends JUnitSuite with MustMatchers wi connection.stop } } + + @Test + def dummy { + // amqp tests need local rabbitmq server running, so a disabled by default. + // this dummy test makes sure that the whole test class doesn't fail because of missing tests + assert(true) + } } \ No newline at end of file diff --git a/akka-amqp/src/test/scala/AMQPProducerMessageTest.scala b/akka-amqp/src/test/scala/AMQPProducerMessageTest.scala index 30c3670ca7..1bcd5168f7 100644 --- a/akka-amqp/src/test/scala/AMQPProducerMessageTest.scala +++ b/akka-amqp/src/test/scala/AMQPProducerMessageTest.scala @@ -42,4 +42,11 @@ class AMQPProducerMessageTest extends JUnitSuite with MustMatchers with Logging connection.stop } } + + @Test + def dummy { + // amqp tests need local rabbitmq server running, so a disabled by default. + // this dummy test makes sure that the whole test class doesn't fail because of missing tests + assert(true) + } } \ No newline at end of file