1
package org.jboss.test.remoting.lease.socket.multiple;
3
import junit.framework.TestCase;
5
import org.jboss.logging.Logger;
6
import org.jboss.remoting.Client;
7
import org.jboss.remoting.InvokerLocator;
8
import org.jboss.remoting.callback.Callback;
9
import org.jboss.remoting.callback.HandleCallbackException;
10
import org.jboss.remoting.callback.InvokerCallbackHandler;
12
import java.util.HashMap;
16
* @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
18
public class SocketLeaseTestClient extends TestCase
20
private static Logger log = Logger.getLogger(SocketLeaseTestClient.class);
21
// Default locator values
22
private static String transport = "socket";
23
private static String host = "localhost";
24
private static int port = 5400;
26
private String locatorURI = transport + "://" + host + ":" + port + "/?" + InvokerLocator.CLIENT_LEASE + "=" + "true";
27
private String callbackLocatorURI = transport + "://" + host + ":" + (port + 1);
29
private int COUNT = 50;
30
private boolean[] success = new boolean[COUNT];
31
private boolean[] done = new boolean[COUNT];
33
// public void setUp()
35
// org.apache.log4j.BasicConfigurator.configure();
36
// org.apache.log4j.Category.getRoot().setLevel(Level.INFO);
37
// org.apache.log4j.Category.getInstance("org.jboss.remoting").setLevel(XLevel.TRACE);
38
// org.apache.log4j.Category.getInstance("org.jgroups").setLevel(Level.FATAL);
43
log.info("entering setUp()");
45
protected String getLocatorUri()
50
public void testMultipleLeases() throws Throwable
52
log.info("entering " + getName());
54
class CallerThread extends Thread
67
log.info("calling runClient(" + id + ")");
69
log.info("runClient(" + id + ") returns");
79
for (int i = 0; i < COUNT; i++)
81
Thread t = new CallerThread(i);
82
t.setName("client: " + i);
84
log.info("started client thread " + i);
89
boolean allDone = false;
93
for (int i = 0; i < COUNT; i++)
96
log.info("done[" + i + "]: " + done[i]);
101
boolean allSuccess = true;
102
for (int i = 0; i < COUNT; i++)
104
allSuccess &= success[i];
107
log.info("success: " + allSuccess);
108
assertTrue(allSuccess);
109
log.info(getName() + " PASSES");
113
public void runClient(int id) throws Throwable
115
InvokerLocator locator = new InvokerLocator(getLocatorUri());
116
System.out.println("Calling remoting server with locator uri of: " + getLocatorUri());
118
//InvokerLocator callbackLocator = new InvokerLocator(callbackLocatorURI);
119
//Connector callbackConnector = new Connector(callbackLocator);
120
//callbackConnector.create();
121
//callbackConnector.start();
123
//TestCallbackHandler callbackHandler = new TestCallbackHandler();
125
Map metadata = new HashMap();
126
metadata.put("clientName", "test1");
127
Client remotingClient1 = new Client(locator, metadata);
128
remotingClient1.connect();
130
//remotingClient1.addListener(callbackHandler, callbackLocator);
132
Object ret = remotingClient1.invoke("test1");
133
System.out.println("Response was: " + ret);
135
Thread.currentThread().sleep(1000);
137
// now create second client
138
Map metadata2 = new HashMap();
139
metadata2.put("clientName", "test1");
140
Client remotingClient2 =new Client(locator, metadata2);
141
remotingClient2.connect();
142
//remotingClient2.addListener(callbackHandler, callbackLocator);
144
ret = remotingClient2.invoke("test2");
145
System.out.println("Response was: " + ret);
147
ret = remotingClient1.invoke("test1");
148
System.out.println("Response was: " + ret);
150
Thread.currentThread().sleep(1000);
152
if(remotingClient1 != null)
154
//remotingClient1.removeListener(callbackHandler);
155
remotingClient1.disconnect();
158
System.out.println("remoting client 1 (thread " + id + ") disconnected");
160
//Thread.currentThread().sleep(10000);
161
Thread.currentThread().sleep(30000);
163
ret = remotingClient2.invoke("test2");
164
System.out.println("Response was: " + ret);
166
if(remotingClient2 != null)
168
//remotingClient2.removeListener(callbackHandler);
169
remotingClient2.disconnect();
173
log.info("thread " + id + " successful");
176
public class TestCallbackHandler implements InvokerCallbackHandler
179
public void handleCallback(Callback callback) throws HandleCallbackException
181
System.out.println("callback: " + callback);