Index: trunk/src/test/java/omq/test/calculator/CalculatorImpl.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/CalculatorImpl.java	(revision 51)
+++ trunk/src/test/java/omq/test/calculator/CalculatorImpl.java	(revision 54)
@@ -3,5 +3,4 @@
 import java.io.IOException;
 
-import omq.common.broker.Broker;
 import omq.exception.SerializerException;
 import omq.server.RemoteObject;
@@ -36,13 +35,13 @@
 	@Override
 	public void asyncDivideByZero() throws IOException, SerializerException {
-		ZeroEvent ze = new ZeroEvent("my zero event", "zero-event");
-		Broker.trigger(ze);
-		//notifyEvent(ze);
+		// ZeroEvent ze = new ZeroEvent("my zero event", "zero-event");
+		// Broker.trigger(ze);
+		// notifyEvent(ze);
 	}
 
 	@Override
 	public void sendMessage(Message m) {
-		System.out.println("Code = "+m.getCode());
-		System.out.println("Message = "+m.getMessage());
+		System.out.println("Code = " + m.getCode());
+		System.out.println("Message = " + m.getMessage());
 	}
 
Index: trunk/src/test/java/omq/test/calculator/CalculatorTest.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/CalculatorTest.java	(revision 54)
+++ trunk/src/test/java/omq/test/calculator/CalculatorTest.java	(revision 54)
@@ -0,0 +1,142 @@
+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.BeforeClass;
+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 CalculatorTest {
+
+	private static Broker broker;
+	private static Calculator remoteCalc;
+	private static Calculator remoteCalc2;
+
+	public CalculatorTest(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 = new Broker(env);
+		remoteCalc = broker.lookup("calculator1", Calculator.class);
+		remoteCalc2 = 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);
+	}
+
+	@BeforeClass
+	public static void server() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Get 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.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
+
+		CalculatorImpl calc = new CalculatorImpl();
+		CalculatorImpl calc2 = new CalculatorImpl();
+
+		Broker broker = new Broker(env);
+		broker.bind("calculator1", calc);
+		broker.bind("calculator2", calc2);
+
+		System.out.println("Server started");
+	}
+
+	@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/ClientTest.java
===================================================================
--- trunk/src/test/java/omq/test/calculator/ClientTest.java	(revision 51)
+++ 	(revision )
@@ -1,114 +1,0 @@
-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 ClientTest {
-
-	private static Calculator remoteCalc;
-	private static Calculator remoteCalc2;
-
-	public ClientTest(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 51)
+++ 	(revision )
@@ -1,42 +1,0 @@
-package omq.test.calculator;
-
-import java.util.Properties;
-
-import omq.common.broker.Broker;
-import omq.common.util.ParameterQueue;
-
-import org.junit.Test;
-
-public class ServerTest {
-
-	private CalculatorImpl calc;
-	private CalculatorImpl calc2;
-
-	@Test
-	public void serverTest() throws Exception {
-		Properties env = new Properties();
-		env.setProperty(ParameterQueue.USER_NAME, "guest");
-		env.setProperty(ParameterQueue.USER_PASS, "guest");
-
-		// Get 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.ENABLECOMPRESSION, "false");
-
-		// Set info about where the message will be sent
-		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
-		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
-
-		calc = new CalculatorImpl();
-		calc2 = new CalculatorImpl();
-
-		Broker.initBroker(env);
-		Broker.bind("calculator1", calc);
-		Broker.bind("calculator2", calc2);
-
-		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 51)
+++ 	(revision )
@@ -1,103 +1,0 @@
-package omq.test.exception;
-
-import static org.junit.Assert.assertEquals;
-
-import java.lang.reflect.UndeclaredThrowableException;
-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 ClientTest {
-	private ClientInterface client;
-
-	public ClientTest(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");
-
-		// 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);
-		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();
-	}
-
-	@Test
-	public void addWheels() throws Exception {
-		int wheels = 4;
-		client.addWheels(wheels);
-		Thread.sleep(200);
-		int result = client.getWheels();
-
-		assertEquals(wheels, result);
-	}
-
-	@Test
-	public void addHp() throws Exception {
-		int hp = 200;
-		client.addHp(hp);
-		Thread.sleep(200);
-		int result = client.getHp();
-
-		assertEquals(hp, result);
-	}
-
-	@Test
-	public void addTrailer() throws Exception {
-		Trailer t = new Trailer(1200);
-		client.addTrailer(t);
-		Thread.sleep(200);
-	}
-
-	@Test(expected = UndeclaredThrowableException.class)
-	// This exception will be caused by java.lang.NoSuchMethodException
-	public void getTrailer() throws Exception {
-		client.getTrailer();
-	}
-
-	@Test
-	public void setPrice() throws Exception {
-		double price = 4999.99;
-		client.setPrice(price);
-		Thread.sleep(200);
-	}
-
-	@Test(expected = ClassCastException.class)
-	public void getPrice() throws Exception {
-		client.getPrice();
-	}
-}
Index: trunk/src/test/java/omq/test/exception/ExceptionTest.java
===================================================================
--- trunk/src/test/java/omq/test/exception/ExceptionTest.java	(revision 54)
+++ trunk/src/test/java/omq/test/exception/ExceptionTest.java	(revision 54)
@@ -0,0 +1,127 @@
+package omq.test.exception;
+
+import static org.junit.Assert.assertEquals;
+
+import java.lang.reflect.UndeclaredThrowableException;
+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.BeforeClass;
+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 ExceptionTest {
+	private static Broker broker;
+	private static ClientInterface client;
+
+	public ExceptionTest(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");
+
+		// 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 = new Broker(env);
+		client = 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);
+	}
+
+	@BeforeClass
+	public static void serverTest() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Get 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.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
+
+		OmqServerImpl server = new OmqServerImpl();
+
+		Broker broker = new Broker(env);
+		broker.bind("server", server);
+	}
+
+	@After
+	public void stop() throws Exception {
+		broker.stopBroker();
+	}
+
+	@Test
+	public void addWheels() throws Exception {
+		int wheels = 4;
+		client.addWheels(wheels);
+		Thread.sleep(200);
+		int result = client.getWheels();
+
+		assertEquals(wheels, result);
+	}
+
+	@Test
+	public void addHp() throws Exception {
+		int hp = 200;
+		client.addHp(hp);
+		Thread.sleep(200);
+		int result = client.getHp();
+
+		assertEquals(hp, result);
+	}
+
+	@Test
+	public void addTrailer() throws Exception {
+		Trailer t = new Trailer(1200);
+		client.addTrailer(t);
+		Thread.sleep(200);
+	}
+
+	@Test(expected = UndeclaredThrowableException.class)
+	// This exception will be caused by java.lang.NoSuchMethodException
+	public void getTrailer() throws Exception {
+		client.getTrailer();
+	}
+
+	@Test
+	public void setPrice() throws Exception {
+		double price = 4999.99;
+		client.setPrice(price);
+		Thread.sleep(200);
+	}
+
+	@Test(expected = ClassCastException.class)
+	public void getPrice() throws Exception {
+		client.getPrice();
+	}
+}
Index: trunk/src/test/java/omq/test/exception/ServerTest.java
===================================================================
--- trunk/src/test/java/omq/test/exception/ServerTest.java	(revision 51)
+++ trunk/src/test/java/omq/test/exception/ServerTest.java	(revision 54)
@@ -28,8 +28,9 @@
 		OmqServerImpl server = new OmqServerImpl();
 
-		Broker.initBroker(env);
-		Broker.bind("server", server);
+		Broker broker = new Broker(env);
+		broker.bind("server", server);
 
 		Thread.sleep(60 * 60 * 1000);
 	}
 }
+;
Index: trunk/src/test/java/omq/test/faultTolerance/ClientTest.java
===================================================================
--- trunk/src/test/java/omq/test/faultTolerance/ClientTest.java	(revision 51)
+++ 	(revision )
@@ -1,67 +1,0 @@
-package omq.test.faultTolerance;
-
-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 omq.test.calculator.Calculator;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-
-public class ClientTest {
-	private static Calculator remoteCalc;
-
-	@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");
-		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "5000");
-
-		Broker.initBroker(env);
-		remoteCalc = (Calculator) Broker.lookup("calculator1", Calculator.class);
-	}
-
-	@Test
-	public void toleranceTest() throws Exception {
-		int x = 10;
-		int y = 20;
-		int sum = 10 + 20;
-
-		int sync = remoteCalc.add(x, y);
-
-		String password = "unpc";
-		String[] command = { "/bin/bash", "-c", "echo " + password + " | sudo -S service rabbitmq-server restart" };
-
-		Runtime runtime = Runtime.getRuntime();
-		runtime.exec(command);
-
-		Thread.sleep(15000);
-		int resp = remoteCalc.add(x, y);
-
-		assertEquals(sum, sync);
-		assertEquals(sum, resp);
-	}
-
-}
Index: trunk/src/test/java/omq/test/faultTolerance/FaultToleranceTest.java
===================================================================
--- trunk/src/test/java/omq/test/faultTolerance/FaultToleranceTest.java	(revision 54)
+++ trunk/src/test/java/omq/test/faultTolerance/FaultToleranceTest.java	(revision 54)
@@ -0,0 +1,109 @@
+package omq.test.faultTolerance;
+
+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 omq.test.calculator.Calculator;
+import omq.test.calculator.CalculatorImpl;
+
+import org.junit.After;
+import org.junit.BeforeClass;
+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 FaultToleranceTest {
+	private static Broker broker;
+	private static Calculator remoteCalc;
+
+	public FaultToleranceTest(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");
+		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "5000");
+
+		broker = new Broker(env);
+		remoteCalc = broker.lookup("calculator1", 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();
+	}
+
+	@BeforeClass
+	public static void serverTest() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Get 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.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
+
+		CalculatorImpl calc = new CalculatorImpl();
+
+		broker = new Broker(env);
+		broker.bind("calculator1", calc);
+
+		System.out.println("Server started");
+	}
+
+	@Test
+	public void toleranceTest() throws Exception {
+		int x = 10;
+		int y = 20;
+		int sum = 10 + 20;
+
+		int sync = remoteCalc.add(x, y);
+
+		String password = "unpc";
+		String[] command = { "/bin/bash", "-c", "echo " + password + " | sudo -S service rabbitmq-server restart" };
+
+		Runtime runtime = Runtime.getRuntime();
+		runtime.exec(command);
+
+		Thread.sleep(15000);
+		int resp = remoteCalc.add(x, y);
+
+		assertEquals(sum, sync);
+		assertEquals(sum, resp);
+	}
+
+}
Index: trunk/src/test/java/omq/test/faultTolerance/ServerTest.java
===================================================================
--- trunk/src/test/java/omq/test/faultTolerance/ServerTest.java	(revision 51)
+++ 	(revision )
@@ -1,39 +1,0 @@
-package omq.test.faultTolerance;
-
-import java.util.Properties;
-
-import omq.common.broker.Broker;
-import omq.common.util.ParameterQueue;
-import omq.test.calculator.CalculatorImpl;
-
-import org.junit.Test;
-
-public class ServerTest {
-	private static CalculatorImpl calc;
-
-	@Test
-	public void test() throws Exception {
-		Properties env = new Properties();
-		env.setProperty(ParameterQueue.USER_NAME, "guest");
-		env.setProperty(ParameterQueue.USER_PASS, "guest");
-
-		// Get 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.ENABLECOMPRESSION, "false");
-
-		// Set info about where the message will be sent
-		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
-		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
-
-		calc = new CalculatorImpl();
-
-		Broker.initBroker(env);
-		Broker.bind("calculator1", calc);
-
-		System.out.println("Server started");
-		
-		Thread.sleep(60 * 1000);
-	}
-}
Index: trunk/src/test/java/omq/test/multiProcess/ClientTest.java
===================================================================
--- trunk/src/test/java/omq/test/multiProcess/ClientTest.java	(revision 51)
+++ 	(revision )
@@ -1,70 +1,0 @@
-package omq.test.multiProcess;
-
-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 ClientTest {
-	// Execute ServerTest.java 2 times before start this test
-	public Number remoteNumber;
-
-	public ClientTest(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");
-
-		// 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);
-		remoteNumber = Broker.lookup("number", Number.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 test() {
-		int x = 10;
-		remoteNumber.setNumber(x);
-		int a = remoteNumber.getNumer();
-		assertEquals(0, a);
-		int b = remoteNumber.getNumer();
-		assertEquals(x, b);
-		remoteNumber.setNumber(0);
-	}
-
-}
Index: trunk/src/test/java/omq/test/multiProcess/MultiProcessTest.java
===================================================================
--- trunk/src/test/java/omq/test/multiProcess/MultiProcessTest.java	(revision 54)
+++ trunk/src/test/java/omq/test/multiProcess/MultiProcessTest.java	(revision 54)
@@ -0,0 +1,105 @@
+package omq.test.multiProcess;
+
+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.BeforeClass;
+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 MultiProcessTest {
+	public static Broker broker;
+	public static Number remoteNumber;
+
+	public MultiProcessTest(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");
+
+		// 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 = new Broker(env);
+		remoteNumber = broker.lookup("number", Number.class);
+	}
+
+	@Parameters
+	public static Collection<Object[]> data() {
+		Object[][] data = new Object[][] { { Serializer.java }, { Serializer.gson }, { Serializer.kryo } };
+		return Arrays.asList(data);
+	}
+
+	@BeforeClass
+	public static void serverTest() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Get 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.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
+
+		Broker broker = new Broker(env);
+		broker.bind("number", new NumberImpl());
+
+		Broker broker2 = new Broker(env);
+		broker2.bind("number", new NumberImpl());
+	}
+
+	@After
+	public void stop() throws Exception {
+		broker.stopBroker();
+	}
+
+	@Test
+	public void fifoTest() {
+		int x = 10;
+		remoteNumber.setNumber(x);
+		int a = remoteNumber.getNumer();
+		assertEquals(0, a);
+		int b = remoteNumber.getNumer();
+		assertEquals(x, b);
+		remoteNumber.setNumber(0);
+	}
+
+	@Test
+	public void multiTest() throws Exception {
+		int x = 10;
+		remoteNumber.setMultiNumber(x);
+		Thread.sleep(200);
+		int a = remoteNumber.getNumer();
+		assertEquals(x, a);
+		remoteNumber.setMultiNumber(0);
+		Thread.sleep(200);
+	}
+
+}
Index: trunk/src/test/java/omq/test/multiProcess/Number.java
===================================================================
--- trunk/src/test/java/omq/test/multiProcess/Number.java	(revision 51)
+++ trunk/src/test/java/omq/test/multiProcess/Number.java	(revision 54)
@@ -2,4 +2,6 @@
 
 import omq.Remote;
+import omq.client.annotation.AsyncMethod;
+import omq.client.annotation.MultiMethod;
 import omq.client.annotation.RemoteInterface;
 import omq.client.annotation.SyncMethod;
@@ -12,3 +14,7 @@
 	@SyncMethod(timeout = 1000)
 	public int getNumer();
+
+	@MultiMethod
+	@AsyncMethod
+	public void setMultiNumber(int x);
 }
Index: trunk/src/test/java/omq/test/multiProcess/NumberImpl.java
===================================================================
--- trunk/src/test/java/omq/test/multiProcess/NumberImpl.java	(revision 51)
+++ trunk/src/test/java/omq/test/multiProcess/NumberImpl.java	(revision 54)
@@ -1,4 +1,6 @@
 package omq.test.multiProcess;
 
+import omq.client.annotation.AsyncMethod;
+import omq.client.annotation.MultiMethod;
 import omq.client.annotation.SyncMethod;
 import omq.server.RemoteObject;
@@ -30,3 +32,10 @@
 	}
 
+	@Override
+	@MultiMethod
+	@AsyncMethod
+	public void setMultiNumber(int x) {
+		this.x = x;
+	}
+
 }
Index: trunk/src/test/java/omq/test/multiProcess/ServerTest.java
===================================================================
--- trunk/src/test/java/omq/test/multiProcess/ServerTest.java	(revision 51)
+++ 	(revision )
@@ -1,32 +1,0 @@
-package omq.test.multiProcess;
-
-import java.util.Properties;
-
-import org.junit.Test;
-
-import omq.common.broker.Broker;
-import omq.common.util.ParameterQueue;
-
-public class ServerTest {
-	@Test
-	public void test() throws Exception {
-		Properties env = new Properties();
-		env.setProperty(ParameterQueue.USER_NAME, "guest");
-		env.setProperty(ParameterQueue.USER_PASS, "guest");
-
-		// Get 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.ENABLECOMPRESSION, "false");
-
-		// Set info about where the message will be sent
-		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
-		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
-
-		Broker.initBroker(env);
-		Broker.bind("number", new NumberImpl());
-
-		Thread.sleep(60 * 1000);
-	}
-}
Index: trunk/src/test/java/omq/test/stopBroker/BrokerKillerImpl.java
===================================================================
--- trunk/src/test/java/omq/test/stopBroker/BrokerKillerImpl.java	(revision 51)
+++ trunk/src/test/java/omq/test/stopBroker/BrokerKillerImpl.java	(revision 54)
@@ -12,4 +12,10 @@
 	private static final long serialVersionUID = 1L;
 
+	private Broker broker;
+
+	public BrokerKillerImpl(Broker broker) {
+		this.broker = broker;
+	}
+
 	@Override
 	@AsyncMethod
@@ -24,5 +30,5 @@
 				try {
 					Thread.sleep(1000);
-					Broker.stopBroker();
+					broker.stopBroker();
 				} catch (Exception e) {
 					e.printStackTrace();
Index: trunk/src/test/java/omq/test/stopBroker/ClientTest.java
===================================================================
--- trunk/src/test/java/omq/test/stopBroker/ClientTest.java	(revision 51)
+++ 	(revision )
@@ -1,44 +1,0 @@
-package omq.test.stopBroker;
-
-import java.util.Properties;
-
-import omq.common.broker.Broker;
-import omq.common.util.ParameterQueue;
-import omq.common.util.Serializer;
-
-public class ClientTest {
-
-	/**
-	 * @param args
-	 * @throws Exception
-	 */
-	public static void main(String[] args) 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");
-		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "5000");
-
-		Broker.initBroker(env);
-		BrokerKiller bk = (BrokerKiller) Broker.lookup("bk", BrokerKiller.class);
-
-		bk.killServerBroker();
-		Broker.stopBroker();
-	}
-
-}
Index: trunk/src/test/java/omq/test/stopBroker/ServerTest.java
===================================================================
--- trunk/src/test/java/omq/test/stopBroker/ServerTest.java	(revision 51)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package omq.test.stopBroker;
-
-import java.util.Properties;
-
-import org.junit.Test;
-
-import omq.common.broker.Broker;
-import omq.common.util.ParameterQueue;
-import omq.common.util.Serializer;
-
-public class ServerTest {
-
-	@Test
-	public void test() throws Exception {
-		Properties env = new Properties();
-		env.setProperty(ParameterQueue.USER_NAME, "guest");
-		env.setProperty(ParameterQueue.USER_PASS, "guest");
-
-		// Get 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.RETRY_TIME_CONNECTION, "2000");
-
-		BrokerKillerImpl bki = new BrokerKillerImpl();
-
-		Broker.initBroker(env);
-		Broker.bind("bk", bki);
-	}
-
-}
Index: trunk/src/test/java/omq/test/stopBroker/StopBrokerTest.java
===================================================================
--- trunk/src/test/java/omq/test/stopBroker/StopBrokerTest.java	(revision 54)
+++ trunk/src/test/java/omq/test/stopBroker/StopBrokerTest.java	(revision 54)
@@ -0,0 +1,87 @@
+package omq.test.stopBroker;
+
+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.BeforeClass;
+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 StopBrokerTest {
+
+	private static Broker broker;
+	private static BrokerKiller bk;
+
+	public StopBrokerTest(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");
+		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "5000");
+
+		broker = new Broker(env);
+		bk = broker.lookup("bk", BrokerKiller.class);
+	}
+
+	@Parameters
+	public static Collection<Object[]> data() {
+		Object[][] data = new Object[][] { { Serializer.java }, { Serializer.gson }, { Serializer.kryo } };
+		return Arrays.asList(data);
+	}
+
+	@BeforeClass
+	public static void server() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Get 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.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
+
+		Broker broker = new Broker(env);
+		BrokerKillerImpl bki = new BrokerKillerImpl(broker);
+		broker.bind("bk", bki);
+	}
+
+	@After
+	public void stop() throws Exception {
+		broker.stopBroker();
+	}
+
+	@Test
+	public void stopBroker() throws Exception {
+		bk.killServerBroker();
+	}
+
+}
Index: trunk/src/test/java/omq/test/stopBroker/UnbindTest.java
===================================================================
--- trunk/src/test/java/omq/test/stopBroker/UnbindTest.java	(revision 51)
+++ trunk/src/test/java/omq/test/stopBroker/UnbindTest.java	(revision 54)
@@ -5,14 +5,12 @@
 import omq.common.broker.Broker;
 import omq.common.util.ParameterQueue;
-import omq.common.util.Serializer;
 import omq.test.calculator.CalculatorImpl;
 
+import org.junit.Test;
+
 public class UnbindTest {
-	private static CalculatorImpl calc;
 
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) throws Exception {
+	@Test
+	public void serverTest() throws Exception {
 		Properties env = new Properties();
 		env.setProperty(ParameterQueue.USER_NAME, "guest");
@@ -23,5 +21,4 @@
 		env.setProperty(ParameterQueue.SERVER_PORT, "5672");
 		env.setProperty(ParameterQueue.DURABLE_QUEUES, "false");
-		env.setProperty(ParameterQueue.SERIALIZER_NAME, Serializer.java);
 		env.setProperty(ParameterQueue.ENABLECOMPRESSION, "false");
 
@@ -31,12 +28,12 @@
 
 		String reference = "calculator1";
-		calc = new CalculatorImpl();
+		CalculatorImpl calc = new CalculatorImpl();
 
-		Broker.initBroker(env);
-		Broker.bind(reference, calc);
+		Broker broker = new Broker(env);
+		broker.bind(reference, calc);
 
-		Broker.unbind(reference);
+		broker.unbind(reference);
 
-		Broker.closeConnection();
+		broker.closeConnection();
 	}
 
Index: trunk/src/test/java/omq/test/temporal/Client.java
===================================================================
--- trunk/src/test/java/omq/test/temporal/Client.java	(revision 51)
+++ 	(revision )
@@ -1,28 +1,0 @@
-package omq.test.temporal;
-
-import java.util.Set;
-
-import omq.Remote;
-import omq.client.annotation.AsyncMethod;
-import omq.client.annotation.RemoteInterface;
-import omq.client.annotation.SyncMethod;
-import omq.exception.RemoteException;
-
-@RemoteInterface
-public interface Client extends Remote {
-
-	@SyncMethod(retry = 1, timeout = 1500)
-	public String getID();
-
-	@SyncMethod(retry = 1, timeout = 1500)
-	public String getProfileInfo();
-
-	@SyncMethod(retry = 1, timeout = 1500)
-	public Set<String> getFriends();
-
-	@AsyncMethod
-	public void sendMessage(String message);
-
-	@AsyncMethod
-	public void addContact(String contact) throws RemoteException;
-}
Index: trunk/src/test/java/omq/test/temporal/ClientImpl.java
===================================================================
--- trunk/src/test/java/omq/test/temporal/ClientImpl.java	(revision 51)
+++ 	(revision )
@@ -1,62 +1,0 @@
-package omq.test.temporal;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import omq.client.annotation.AsyncMethod;
-import omq.client.annotation.SyncMethod;
-import omq.common.broker.Broker;
-import omq.exception.RemoteException;
-import omq.server.RemoteObject;
-
-public class ClientImpl extends RemoteObject implements Client {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
-	private String id;
-	private String profileInfo;
-	private Map<String, Client> friendList;
-
-	public ClientImpl(String id, String profileInfo) {
-		this.id = id;
-		this.profileInfo = profileInfo;
-		this.friendList = new HashMap<String, Client>();
-	}
-
-	@Override
-	@SyncMethod(retry = 1, timeout = 1500)
-	public String getID() {
-		return id;
-	}
-
-	@Override
-	@SyncMethod(retry = 1, timeout = 1500)
-	public String getProfileInfo() {
-		return profileInfo;
-	}
-
-	@Override
-	@SyncMethod(retry = 1, timeout = 1500)
-	public Set<String> getFriends() {
-		return friendList.keySet();
-	}
-
-	@Override
-	@AsyncMethod
-	public void sendMessage(String message) {
-		System.out.println("" + message);
-	}
-
-	@Override
-	@AsyncMethod
-	public void addContact(String contact) throws RemoteException {
-		if (!id.equalsIgnoreCase(contact) && !friendList.containsKey(contact)) {
-			Client client = (Client) Broker.lookup(contact, Client.class);
-			friendList.put(contact, client);
-		}
-	}
-
-}
Index: trunk/src/test/java/omq/test/temporal/ClientTest.java
===================================================================
--- trunk/src/test/java/omq/test/temporal/ClientTest.java	(revision 51)
+++ 	(revision )
@@ -1,40 +1,0 @@
-package omq.test.temporal;
-
-import java.util.Properties;
-
-import omq.common.broker.Broker;
-import omq.common.util.ParameterQueue;
-import omq.common.util.Serializer;
-
-import org.junit.BeforeClass;
-
-public class ClientTest {
-	// private static Client user;
-
-	@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");
-		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "5000");
-
-		Broker.initBroker(env);
-	}
-
-}
Index: trunk/src/test/java/omq/test/temporal/ProvaTest.java
===================================================================
--- trunk/src/test/java/omq/test/temporal/ProvaTest.java	(revision 54)
+++ trunk/src/test/java/omq/test/temporal/ProvaTest.java	(revision 54)
@@ -0,0 +1,105 @@
+package omq.test.temporal;
+
+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 omq.test.calculator.Calculator;
+import omq.test.calculator.CalculatorImpl;
+
+import org.junit.After;
+import org.junit.BeforeClass;
+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 ProvaTest {
+
+	@BeforeClass
+	public static void serverTest() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Get 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.ENABLECOMPRESSION, "false");
+
+		// Set info about where the message will be sent
+		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
+
+		CalculatorImpl calc = new CalculatorImpl();
+
+		Broker broker = new Broker(env);
+		broker.bind("calculator1", calc);
+
+		System.out.println("Server started");
+	}
+
+	private static Broker broker;
+	private static Calculator remoteCalc;
+
+	public ProvaTest(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 = new Broker(env);
+		remoteCalc = broker.lookup("calculator1", 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);
+	}
+
+}
Index: trunk/src/test/java/omq/test/temporal/ServerTest.java
===================================================================
--- trunk/src/test/java/omq/test/temporal/ServerTest.java	(revision 51)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package omq.test.temporal;
-
-import java.util.Properties;
-
-import omq.common.broker.Broker;
-import omq.common.util.ParameterQueue;
-import omq.common.util.Serializer;
-
-public class ServerTest {
-
-	public static void main(String[] args) throws Exception {
-		Properties env = new Properties();
-		env.setProperty(ParameterQueue.USER_NAME, "guest");
-		env.setProperty(ParameterQueue.USER_PASS, "guest");
-
-		// Get 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.RETRY_TIME_CONNECTION, "2000");
-
-		ClientImpl c1 = new ClientImpl("Miki", "Hey, this is Miky");
-		ClientImpl c2 = new ClientImpl("Jack", "This is Jack");
-
-		Broker.initBroker(env);
-
-		Broker.bind(c1.getID(), c1);
-		Broker.bind(c2.getID(), c2);
-	}
-
-}
