diff --git a/pom.xml b/pom.xml
index b0b6241..f58d6d8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -148,6 +148,10 @@
maven-surefire-plugin
false
+
+
+ AllTests.java
+
diff --git a/src/test/java/net/engio/mbassy/AllTests.java b/src/test/java/net/engio/mbassy/AllTests.java
index 00c586e..9d36099 100644
--- a/src/test/java/net/engio/mbassy/AllTests.java
+++ b/src/test/java/net/engio/mbassy/AllTests.java
@@ -1,6 +1,5 @@
package net.engio.mbassy;
-import net.engio.mbassy.bus.ListenerSubscriptionTest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@@ -19,9 +18,8 @@ import org.junit.runners.Suite;
SyncBusTest.SyncMessageBusTest.class,
FilterTest.class,
MetadataReaderTest.class,
- ListenerSubscriptionTest.class,
MethodDispatchTest.class,
- DeadEventTest.class,
+ DeadMessageTest.class,
SynchronizedHandlerTest.class,
SubscriptionManagerTest.class
})
diff --git a/src/test/java/net/engio/mbassy/DeadEventTest.java b/src/test/java/net/engio/mbassy/DeadEventTest.java
deleted file mode 100644
index 5f84127..0000000
--- a/src/test/java/net/engio/mbassy/DeadEventTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package net.engio.mbassy;
-
-import net.engio.mbassy.bus.BusConfiguration;
-import net.engio.mbassy.bus.MBassador;
-import net.engio.mbassy.common.WeakConcurrentSet;
-import net.engio.mbassy.common.DeadMessage;
-import net.engio.mbassy.common.MessageBusTest;
-import net.engio.mbassy.listener.Handler;
-import org.junit.Test;
-
-/**
- * Verify correct behaviour in case of message publications that do not have any matching subscriptions
- *
- * @author bennidi
- * Date: 1/18/13
- */
-public class DeadEventTest extends MessageBusTest{
-
-
- @Test
- public void testDeadEvent(){
- MBassador bus = getBus(BusConfiguration.Default());
- DeadEventHandler deadEventHandler = new DeadEventHandler();
- bus.subscribe(deadEventHandler);
- assertEquals(0, deadEventHandler.getDeadEventCount());
- bus.post(new Object()).now();
- assertEquals(1, deadEventHandler.getDeadEventCount());
- bus.post(323).now();
- assertEquals(2, deadEventHandler.getDeadEventCount());
- bus.publish("fkdfdk");
- assertEquals(3, deadEventHandler.getDeadEventCount());
- }
-
- public class DeadEventHandler{
-
- private WeakConcurrentSet deadEvents = new WeakConcurrentSet();
-
- @Handler
- public void handle(DeadMessage message){
- deadEvents.add(message);
- }
-
-
- public int getDeadEventCount(){
- return deadEvents.size();
- }
-
- }
-
-}
diff --git a/src/test/java/net/engio/mbassy/DeadMessageTest.java b/src/test/java/net/engio/mbassy/DeadMessageTest.java
new file mode 100644
index 0000000..9a9ddc2
--- /dev/null
+++ b/src/test/java/net/engio/mbassy/DeadMessageTest.java
@@ -0,0 +1,71 @@
+package net.engio.mbassy;
+
+import net.engio.mbassy.bus.BusConfiguration;
+import net.engio.mbassy.bus.MBassador;
+import net.engio.mbassy.common.*;
+import net.engio.mbassy.listener.Handler;
+import net.engio.mbassy.listeners.IMessageListener;
+import net.engio.mbassy.common.ListenerFactory;
+import net.engio.mbassy.listeners.MessagesListener;
+import org.junit.Test;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Verify correct behaviour in case of message publications that do not have any matching subscriptions
+ *
+ * @author bennidi
+ * Date: 1/18/13
+ */
+public class DeadMessageTest extends MessageBusTest{
+
+
+ @Test
+ public void testDeadMessage(){
+ final MBassador bus = getBus(BusConfiguration.Default());
+ ListenerFactory listeners = new ListenerFactory()
+ .create(InstancesPerListener, IMessageListener.DefaultListener.class)
+ .create(InstancesPerListener, IMessageListener.AsyncListener.class)
+ .create(InstancesPerListener, IMessageListener.DisabledListener.class)
+ .create(InstancesPerListener, MessagesListener.DefaultListener.class)
+ .create(InstancesPerListener, MessagesListener.AsyncListener.class)
+ .create(InstancesPerListener, MessagesListener.DisabledListener.class)
+ .create(InstancesPerListener, DeadMessagHandler.class)
+ .create(InstancesPerListener, Object.class);
+
+
+ ConcurrentExecutor.runConcurrent(TestUtil.subscriber(bus, listeners), ConcurrentUnits);
+
+ Runnable publishUnhandledMessage = new Runnable() {
+ @Override
+ public void run() {
+ for(int i=0; i < IterationsPerThread; i++){
+ int variation = i % 3;
+ switch (variation){
+ case 0:bus.publish(new Object());break;
+ case 1:bus.publish(i);break;
+ case 2:bus.publish(String.valueOf(i));break;
+ }
+ }
+
+ }
+ };
+
+ ConcurrentExecutor.runConcurrent(publishUnhandledMessage, ConcurrentUnits);
+
+ assertEquals(InstancesPerListener * IterationsPerThread * ConcurrentUnits, DeadMessagHandler.deadMessages.get());
+ }
+
+ public static class DeadMessagHandler {
+
+ private static final AtomicInteger deadMessages = new AtomicInteger(0);
+
+
+ @Handler
+ public void handle(DeadMessage message){
+ deadMessages.incrementAndGet();
+ }
+
+ }
+
+}
diff --git a/src/test/java/net/engio/mbassy/FilterTest.java b/src/test/java/net/engio/mbassy/FilterTest.java
index 43630d8..4ca70bb 100644
--- a/src/test/java/net/engio/mbassy/FilterTest.java
+++ b/src/test/java/net/engio/mbassy/FilterTest.java
@@ -9,7 +9,7 @@ import net.engio.mbassy.common.TestUtil;
import net.engio.mbassy.messages.SubTestMessage;
import net.engio.mbassy.messages.TestMessage;
import net.engio.mbassy.listener.*;
-import net.engio.mbassy.listeners.ListenerFactory;
+import net.engio.mbassy.common.ListenerFactory;
import org.junit.Test;
import java.util.List;
diff --git a/src/test/java/net/engio/mbassy/MBassadorTest.java b/src/test/java/net/engio/mbassy/MBassadorTest.java
index 4ab45cf..09fb113 100644
--- a/src/test/java/net/engio/mbassy/MBassadorTest.java
+++ b/src/test/java/net/engio/mbassy/MBassadorTest.java
@@ -7,7 +7,7 @@ import net.engio.mbassy.common.MessageBusTest;
import net.engio.mbassy.common.TestUtil;
import net.engio.mbassy.listeners.ExceptionThrowingListener;
import net.engio.mbassy.listeners.IMessageListener;
-import net.engio.mbassy.listeners.ListenerFactory;
+import net.engio.mbassy.common.ListenerFactory;
import net.engio.mbassy.listeners.MessagesListener;
import net.engio.mbassy.messages.MessageTypes;
import net.engio.mbassy.messages.MultipartMessage;
diff --git a/src/test/java/net/engio/mbassy/SubscriptionManagerTest.java b/src/test/java/net/engio/mbassy/SubscriptionManagerTest.java
index 205e4d3..ada8dfb 100644
--- a/src/test/java/net/engio/mbassy/SubscriptionManagerTest.java
+++ b/src/test/java/net/engio/mbassy/SubscriptionManagerTest.java
@@ -1,9 +1,6 @@
package net.engio.mbassy;
-import net.engio.mbassy.common.AssertSupport;
-import net.engio.mbassy.common.ConcurrentExecutor;
-import net.engio.mbassy.common.SubscriptionValidator;
-import net.engio.mbassy.common.TestUtil;
+import net.engio.mbassy.common.*;
import net.engio.mbassy.listener.MetadataReader;
import net.engio.mbassy.listeners.*;
import net.engio.mbassy.messages.*;
diff --git a/src/test/java/net/engio/mbassy/SyncBusTest.java b/src/test/java/net/engio/mbassy/SyncBusTest.java
index 28df663..2563a4c 100644
--- a/src/test/java/net/engio/mbassy/SyncBusTest.java
+++ b/src/test/java/net/engio/mbassy/SyncBusTest.java
@@ -2,6 +2,7 @@ package net.engio.mbassy;
import net.engio.mbassy.bus.*;
import net.engio.mbassy.common.ConcurrentExecutor;
+import net.engio.mbassy.common.ListenerFactory;
import net.engio.mbassy.common.MessageBusTest;
import net.engio.mbassy.common.TestUtil;
import net.engio.mbassy.listeners.*;
diff --git a/src/test/java/net/engio/mbassy/bus/ListenerSubscriptionTest.java b/src/test/java/net/engio/mbassy/bus/ListenerSubscriptionTest.java
deleted file mode 100644
index 0c2d080..0000000
--- a/src/test/java/net/engio/mbassy/bus/ListenerSubscriptionTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package net.engio.mbassy.bus;
-
-import net.engio.mbassy.common.MessageBusTest;
-import net.engio.mbassy.common.TestUtil;
-import net.engio.mbassy.messages.SubTestMessage;
-import net.engio.mbassy.messages.TestMessage;
-import net.engio.mbassy.listeners.EventingTestBean;
-import net.engio.mbassy.listeners.EventingTestBean2;
-import net.engio.mbassy.listeners.EventingTestBean3;
-import net.engio.mbassy.listeners.ListenerFactory;
-import net.engio.mbassy.listeners.NonListeningBean;
-import net.engio.mbassy.subscription.Subscription;
-import org.junit.Test;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Testing different scenarios of subscribing objects (listeners and non-listeners) to the message bus.
- *
- * @author bennidi
- * Date: 1/9/13
- */
-public class ListenerSubscriptionTest extends MessageBusTest{
-
-
- // this is a single threaded test for subscribing and unsubscribing of a single listener
- @Test
- public void testSubscribeSimple() throws InterruptedException {
- MBassador bus = getBus(new BusConfiguration());
- List