Index: trunk/src/test/java/omq/test/calculator/Calculator.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/Calculator.java	(revision 46)
+++ trunk/src/test/java/omq/test/calculator/Calculator.java	(revision 47)
@@ -23,5 +23,5 @@
 	public void asyncDivideByZero() throws IOException, SerializerException;
 
-	@SyncMethod
+	@SyncMethod(timeout = 1500)
 	public int divideByZero();
 
Index: trunk/src/test/java/omq/test/calculator/ClientGson.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/ClientGson.java	(revision 47)
+++ trunk/src/test/java/omq/test/calculator/ClientGson.java	(revision 47)
@@ -0,0 +1,104 @@
+package omq.test.calculator;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Properties;
+
+import omq.common.broker.Broker;
+import omq.common.util.ParameterQueue;
+import omq.common.util.Serializer;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class ClientGson {
+	private static Calculator remoteCalc;
+	private static Calculator remoteCalc2;
+
+	@BeforeClass
+	public static void startClient() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Set host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.SERVER_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.SERVER_PORT, "5672");
+		env.setProperty(ParameterQueue.DURABLE_QUEUES, "false");
+		env.setProperty(ParameterQueue.SERIALIZER_NAME, Serializer.gson);
+		env.setProperty(ParameterQueue.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		// env.setProperty(ParameterQueue.DEBUGFILE, "c:\\middlewareDebug");
+
+		// Set info about the queue & the exchange where the ResponseListener
+		// will listen to.
+		env.setProperty(ParameterQueue.RPC_REPLY_QUEUE, "reply_queue");
+		env.setProperty(ParameterQueue.EVENT_REPLY_QUEUE, "event_queue");
+
+		Broker.initBroker(env);
+		remoteCalc = (Calculator) Broker.lookup("calculator1", Calculator.class);
+		remoteCalc2 = (Calculator) Broker.lookup("calculator2", Calculator.class);
+	}
+	
+	@AfterClass
+	public static void stop() throws Exception {
+		Broker.stopBroker();
+		Thread.sleep(2000);
+	}
+
+	@Test
+	public void add() throws Exception {
+		int x = 10;
+		int y = 20;
+
+		int sync = remoteCalc.add(x, y);
+		int sum = x + y;
+
+		assertEquals(sum, sync);
+	}
+
+	@Test
+	public void add2() throws Exception {
+		int x = 10;
+		int y = 20;
+
+		int sync = remoteCalc2.add(x, y);
+		int sum = x + y;
+
+		assertEquals(sum, sync);
+	}
+
+	@Test
+	public void mult() throws Exception {
+		int x = 5;
+		int y = 15;
+
+		remoteCalc.mult(x, y);
+		Thread.sleep(200);
+	}
+
+	@Test
+	public void notifyEvent() throws Exception {
+		ZeroListener zL = new ZeroListener("zero-event");
+
+		remoteCalc.addListener(zL);
+
+		remoteCalc.asyncDivideByZero();
+
+		Thread.sleep(200);
+	}
+
+	@Test
+	public void sendMessage() throws Exception {
+		Message m = new Message(2334, "Hello objectmq");
+		remoteCalc.sendMessage(m);
+	}
+
+	@Test(expected = ArithmeticException.class)
+	public void divideByZero() {
+		remoteCalc.divideByZero();
+	}
+}
Index: trunk/src/test/java/omq/test/calculator/ClientJava.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/ClientJava.java	(revision 47)
+++ trunk/src/test/java/omq/test/calculator/ClientJava.java	(revision 47)
@@ -0,0 +1,104 @@
+package omq.test.calculator;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Properties;
+
+import omq.common.broker.Broker;
+import omq.common.util.ParameterQueue;
+import omq.common.util.Serializer;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class ClientJava {
+	private static Calculator remoteCalc;
+	private static Calculator remoteCalc2;
+
+	@BeforeClass
+	public static void startClient() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Set host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.SERVER_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.SERVER_PORT, "5672");
+		env.setProperty(ParameterQueue.DURABLE_QUEUES, "false");
+		env.setProperty(ParameterQueue.SERIALIZER_NAME, Serializer.java);
+		env.setProperty(ParameterQueue.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		// env.setProperty(ParameterQueue.DEBUGFILE, "c:\\middlewareDebug");
+
+		// Set info about the queue & the exchange where the ResponseListener
+		// will listen to.
+		env.setProperty(ParameterQueue.RPC_REPLY_QUEUE, "reply_queue");
+		env.setProperty(ParameterQueue.EVENT_REPLY_QUEUE, "event_queue");
+
+		Broker.initBroker(env);
+		remoteCalc = (Calculator) Broker.lookup("calculator1", Calculator.class);
+		remoteCalc2 = (Calculator) Broker.lookup("calculator2", Calculator.class);
+	}
+
+	@AfterClass
+	public static void stop() throws Exception {
+		Broker.stopBroker();
+		Thread.sleep(1000);
+	}
+
+	@Test
+	public void add() throws Exception {
+		int x = 10;
+		int y = 20;
+
+		int sync = remoteCalc.add(x, y);
+		int sum = x + y;
+
+		assertEquals(sum, sync);
+	}
+
+	@Test
+	public void add2() throws Exception {
+		int x = 10;
+		int y = 20;
+
+		int sync = remoteCalc2.add(x, y);
+		int sum = x + y;
+
+		assertEquals(sum, sync);
+	}
+
+	@Test
+	public void mult() throws Exception {
+		int x = 5;
+		int y = 15;
+
+		remoteCalc.mult(x, y);
+		Thread.sleep(200);
+	}
+
+	@Test
+	public void notifyEvent() throws Exception {
+		ZeroListener zL = new ZeroListener("zero-event");
+
+		remoteCalc.addListener(zL);
+
+		remoteCalc.asyncDivideByZero();
+
+		Thread.sleep(200);
+	}
+
+	@Test
+	public void sendMessage() throws Exception {
+		Message m = new Message(2334, "Hello objectmq");
+		remoteCalc.sendMessage(m);
+	}
+
+	@Test(expected = ArithmeticException.class)
+	public void divideByZero() {
+		remoteCalc.divideByZero();
+	}
+}
Index: trunk/src/test/java/omq/test/calculator/ClientKryo.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/ClientKryo.java	(revision 47)
+++ trunk/src/test/java/omq/test/calculator/ClientKryo.java	(revision 47)
@@ -0,0 +1,104 @@
+package omq.test.calculator;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Properties;
+
+import omq.common.broker.Broker;
+import omq.common.util.ParameterQueue;
+import omq.common.util.Serializer;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class ClientKryo {
+	private static Calculator remoteCalc;
+	private static Calculator remoteCalc2;
+
+	@BeforeClass
+	public static void startClient() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Set host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.SERVER_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.SERVER_PORT, "5672");
+		env.setProperty(ParameterQueue.DURABLE_QUEUES, "false");
+		env.setProperty(ParameterQueue.SERIALIZER_NAME, Serializer.kryo);
+		env.setProperty(ParameterQueue.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		// env.setProperty(ParameterQueue.DEBUGFILE, "c:\\middlewareDebug");
+
+		// Set info about the queue & the exchange where the ResponseListener
+		// will listen to.
+		env.setProperty(ParameterQueue.RPC_REPLY_QUEUE, "reply_queue");
+		env.setProperty(ParameterQueue.EVENT_REPLY_QUEUE, "event_queue");
+
+		Broker.initBroker(env);
+		remoteCalc = (Calculator) Broker.lookup("calculator1", Calculator.class);
+		remoteCalc2 = (Calculator) Broker.lookup("calculator2", Calculator.class);
+	}
+	
+	@AfterClass
+	public static void stop() throws Exception {
+		Broker.stopBroker();
+		Thread.sleep(2000);
+	}
+
+	@Test
+	public void add() throws Exception {
+		int x = 10;
+		int y = 20;
+
+		int sync = remoteCalc.add(x, y);
+		int sum = x + y;
+
+		assertEquals(sum, sync);
+	}
+
+	@Test
+	public void add2() throws Exception {
+		int x = 10;
+		int y = 20;
+
+		int sync = remoteCalc2.add(x, y);
+		int sum = x + y;
+
+		assertEquals(sum, sync);
+	}
+
+	@Test
+	public void mult() throws Exception {
+		int x = 5;
+		int y = 15;
+
+		remoteCalc.mult(x, y);
+		Thread.sleep(200);
+	}
+
+	@Test
+	public void notifyEvent() throws Exception {
+		ZeroListener zL = new ZeroListener("zero-event");
+
+		remoteCalc.addListener(zL);
+
+		remoteCalc.asyncDivideByZero();
+
+		Thread.sleep(200);
+	}
+
+	@Test
+	public void sendMessage() throws Exception {
+		Message m = new Message(2334, "Hello objectmq");
+		remoteCalc.sendMessage(m);
+	}
+
+	@Test(expected = ArithmeticException.class)
+	public void divideByZero() {
+		remoteCalc.divideByZero();
+	}
+}
Index: trunk/src/test/java/omq/test/calculator/ClientTest.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/ClientTest.java	(revision 46)
+++ trunk/src/test/java/omq/test/calculator/ClientTest.java	(revision 47)
@@ -1,97 +1,9 @@
 package omq.test.calculator;
 
-import static org.junit.Assert.assertEquals;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
-import java.util.Properties;
-
-import omq.common.broker.Broker;
-import omq.common.util.ParameterQueue;
-import omq.common.util.Serializer;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ ClientJava.class, ClientGson.class, ClientKryo.class })
 public class ClientTest {
-	private static Calculator remoteCalc;
-	private static Calculator remoteCalc2;
-
-	@BeforeClass
-	public static void startClient() throws Exception {
-		Properties env = new Properties();
-		env.setProperty(ParameterQueue.USER_NAME, "guest");
-		env.setProperty(ParameterQueue.USER_PASS, "guest");
-
-		// Set host info of rabbimq (where it is)
-		env.setProperty(ParameterQueue.SERVER_HOST, "127.0.0.1");
-		env.setProperty(ParameterQueue.SERVER_PORT, "5672");
-		env.setProperty(ParameterQueue.DURABLE_QUEUES, "false");
-		env.setProperty(ParameterQueue.SERIALIZER_NAME, Serializer.java);
-		env.setProperty(ParameterQueue.ENABLECOMPRESSION, "false");
-
-		// Set info about where the message will be sent
-		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
-		// env.setProperty(ParameterQueue.DEBUGFILE, "c:\\middlewareDebug");
-
-		// Set info about the queue & the exchange where the ResponseListener
-		// will listen to.
-		env.setProperty(ParameterQueue.RPC_REPLY_QUEUE, "reply_queue");
-		env.setProperty(ParameterQueue.EVENT_REPLY_QUEUE, "event_queue");
-
-		Broker.initBroker(env);
-		remoteCalc = (Calculator) Broker.lookup("calculator1", Calculator.class);
-		remoteCalc2 = (Calculator) Broker.lookup("calculator2", Calculator.class);
-	}
-
-	@Test
-	public void add() throws Exception {
-		int x = 10;
-		int y = 20;
-
-		int sync = remoteCalc.add(x, y);
-		int sum = x + y;
-
-		assertEquals(sum, sync);
-	}
-
-	@Test
-	public void add2() throws Exception {
-		int x = 10;
-		int y = 20;
-
-		int sync = remoteCalc2.add(x, y);
-		int sum = x + y;
-
-		assertEquals(sum, sync);
-	}
-
-	@Test
-	public void mult() throws Exception {
-		int x = 5;
-		int y = 15;
-
-		remoteCalc.mult(x, y);
-		Thread.sleep(200);
-	}
-
-	@Test
-	public void notifyEvent() throws Exception {
-		ZeroListener zL = new ZeroListener("zero-event");
-
-		remoteCalc.addListener(zL);
-
-		remoteCalc.asyncDivideByZero();
-
-		Thread.sleep(200);
-	}
-
-	@Test
-	public void sendMessage() throws Exception {
-		Message m = new Message(2334, "Hello objectmq");
-		remoteCalc.sendMessage(m);
-	}
-
-	@Test(expected = ArithmeticException.class)
-	public void divideByZero() {
-		remoteCalc.divideByZero();
-	}
 }
Index: trunk/src/test/java/omq/test/calculator/ParameterizedClient.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/ParameterizedClient.java	(revision 47)
+++ trunk/src/test/java/omq/test/calculator/ParameterizedClient.java	(revision 47)
@@ -0,0 +1,114 @@
+package omq.test.calculator;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Properties;
+
+import omq.common.broker.Broker;
+import omq.common.util.ParameterQueue;
+import omq.common.util.Serializer;
+
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(value = Parameterized.class)
+public class ParameterizedClient {
+
+	private static Calculator remoteCalc;
+	private static Calculator remoteCalc2;
+
+	public ParameterizedClient(String type) throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Set host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.SERVER_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.SERVER_PORT, "5672");
+		env.setProperty(ParameterQueue.DURABLE_QUEUES, "false");
+		env.setProperty(ParameterQueue.SERIALIZER_NAME, type);
+		env.setProperty(ParameterQueue.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		// env.setProperty(ParameterQueue.DEBUGFILE, "c:\\middlewareDebug");
+
+		// Set info about the queue & the exchange where the ResponseListener
+		// will listen to.
+		env.setProperty(ParameterQueue.RPC_REPLY_QUEUE, "reply_queue");
+		env.setProperty(ParameterQueue.EVENT_REPLY_QUEUE, "event_queue");
+
+		Broker.initBroker(env);
+		remoteCalc = (Calculator) Broker.lookup("calculator1", Calculator.class);
+		remoteCalc2 = (Calculator) Broker.lookup("calculator2", Calculator.class);
+	}
+
+	@Parameters
+	public static Collection<Object[]> data() {
+		Object[][] data = new Object[][] { { Serializer.java }, { Serializer.gson }, { Serializer.kryo } };
+		return Arrays.asList(data);
+	}
+
+	@After
+	public void stop() throws Exception {
+		Broker.stopBroker();
+	}
+
+	@Test
+	public void add() throws Exception {
+		int x = 10;
+		int y = 20;
+
+		int sync = remoteCalc.add(x, y);
+		int sum = x + y;
+
+		assertEquals(sum, sync);
+	}
+
+	@Test
+	public void add2() throws Exception {
+		int x = 10;
+		int y = 20;
+
+		int sync = remoteCalc2.add(x, y);
+		int sum = x + y;
+
+		assertEquals(sum, sync);
+	}
+
+	@Test
+	public void mult() throws Exception {
+		int x = 5;
+		int y = 15;
+
+		remoteCalc.mult(x, y);
+		Thread.sleep(200);
+	}
+
+	@Test
+	public void notifyEvent() throws Exception {
+		ZeroListener zL = new ZeroListener("zero-event");
+
+		remoteCalc.addListener(zL);
+
+		remoteCalc.asyncDivideByZero();
+
+		Thread.sleep(200);
+	}
+
+	@Test
+	public void sendMessage() throws Exception {
+		Message m = new Message(2334, "Hello objectmq");
+		remoteCalc.sendMessage(m);
+	}
+
+	@Test(expected = ArithmeticException.class)
+	public void divideByZero() {
+		remoteCalc.divideByZero();
+	}
+}
Index: trunk/src/test/java/omq/test/calculator/ServerTest.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/ServerTest.java	(revision 46)
+++ trunk/src/test/java/omq/test/calculator/ServerTest.java	(revision 47)
@@ -2,4 +2,6 @@
 
 import java.util.Properties;
+
+import org.junit.Test;
 
 import omq.common.broker.Broker;
@@ -8,8 +10,10 @@
 
 public class ServerTest {
-	private static CalculatorImpl calc;
-	private static CalculatorImpl calc2;
 
-	public static void main(String[] args) throws Exception {
+	private CalculatorImpl calc;
+	private CalculatorImpl calc2;
+
+	@Test
+	public void serverTest() throws Exception {
 		Properties env = new Properties();
 		env.setProperty(ParameterQueue.USER_NAME, "guest");
@@ -35,4 +39,6 @@
 
 		System.out.println("Server started");
+
+		Thread.sleep(60 * 60 * 1000);
 	}
 }
Index: trunk/src/test/java/omq/test/exception/ClientTest.java
===================================================================
--- trunk/src/test/java/omq/test/exception/ClientTest.java	(revision 46)
+++ trunk/src/test/java/omq/test/exception/ClientTest.java	(revision 47)
@@ -4,4 +4,6 @@
 
 import java.lang.reflect.UndeclaredThrowableException;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.Properties;
 
@@ -10,12 +12,15 @@
 import omq.common.util.Serializer;
 
-import org.junit.BeforeClass;
+import org.junit.After;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
 
+@RunWith(value = Parameterized.class)
 public class ClientTest {
-	private static ClientInterface client;
+	private ClientInterface client;
 
-	@BeforeClass
-	public static void startClient() throws Exception {
+	public ClientTest(String type) throws Exception {
 		Properties env = new Properties();
 		env.setProperty(ParameterQueue.USER_NAME, "guest");
@@ -26,5 +31,5 @@
 		env.setProperty(ParameterQueue.SERVER_PORT, "5672");
 		env.setProperty(ParameterQueue.DURABLE_QUEUES, "false");
-		env.setProperty(ParameterQueue.SERIALIZER_NAME, Serializer.kryo);
+		env.setProperty(ParameterQueue.SERIALIZER_NAME, type);
 		env.setProperty(ParameterQueue.ENABLECOMPRESSION, "false");
 
@@ -39,4 +44,15 @@
 		Broker.initBroker(env);
 		client = (ClientInterface) Broker.lookup("server", ClientInterface.class);
+	}
+
+	@Parameters
+	public static Collection<Object[]> data() {
+		Object[][] data = new Object[][] { { Serializer.java }, { Serializer.gson }, { Serializer.kryo } };
+		return Arrays.asList(data);
+	}
+
+	@After
+	public void stop() throws Exception {
+		Broker.stopBroker();
 	}
 
Index: trunk/src/test/java/omq/test/exception/ServerTest.java
===================================================================
--- trunk/src/test/java/omq/test/exception/ServerTest.java	(revision 46)
+++ trunk/src/test/java/omq/test/exception/ServerTest.java	(revision 47)
@@ -5,9 +5,11 @@
 import omq.common.broker.Broker;
 import omq.common.util.ParameterQueue;
-import omq.common.util.Serializer;
+
+import org.junit.Test;
 
 public class ServerTest {
 
-	public static void main(String[] args) throws Exception {
+	@Test
+	public void test() throws Exception {
 		Properties env = new Properties();
 		env.setProperty(ParameterQueue.USER_NAME, "guest");
@@ -18,5 +20,4 @@
 		env.setProperty(ParameterQueue.SERVER_PORT, "5672");
 		env.setProperty(ParameterQueue.DURABLE_QUEUES, "false");
-		env.setProperty(ParameterQueue.SERIALIZER_NAME, Serializer.kryo);
 		env.setProperty(ParameterQueue.ENABLECOMPRESSION, "false");
 
@@ -29,4 +30,6 @@
 		Broker.initBroker(env);
 		Broker.bind("server", server);
+
+		Thread.sleep(60 * 60 * 1000);
 	}
 }
Index: trunk/src/test/java/omq/test/faultTolerance/ServerTest.java
===================================================================
--- trunk/src/test/java/omq/test/faultTolerance/ServerTest.java	(revision 46)
+++ trunk/src/test/java/omq/test/faultTolerance/ServerTest.java	(revision 47)
@@ -2,4 +2,6 @@
 
 import java.util.Properties;
+
+import org.junit.Test;
 
 import omq.common.broker.Broker;
@@ -11,5 +13,6 @@
 	private static CalculatorImpl calc;
 
-	public static void main(String[] args) throws Exception {
+	@Test
+	public void test() throws Exception {
 		Properties env = new Properties();
 		env.setProperty(ParameterQueue.USER_NAME, "guest");
@@ -33,4 +36,6 @@
 
 		System.out.println("Server started");
+		
+		Thread.sleep(60 * 1000);
 	}
 }
