KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > remoting > performance > synchronous > PerformanceServerTest


1 /*
2  * JBoss, the OpenSource J2EE webOS
3  *
4  * Distributable under LGPL license.
5  * See terms of license at gnu.org.
6  */

7 package org.jboss.test.remoting.performance.synchronous;
8
9 import java.util.Iterator JavaDoc;
10 import java.util.Map JavaDoc;
11 import java.util.Set JavaDoc;
12 import org.jboss.jrunit.extensions.ServerTestCase;
13 import org.jboss.logging.Logger;
14 import org.jboss.remoting.InvokerLocator;
15 import org.jboss.remoting.ServerInvocationHandler;
16 import org.jboss.remoting.transport.Connector;
17
18 /**
19  * @author <a HREF="mailto:tom.elrod@jboss.com">Tom Elrod</a>
20  */

21 public class PerformanceServerTest extends ServerTestCase
22 {
23    // default transport and port
24
private String JavaDoc transport = "socket";
25    private int serverPort = 9090;
26
27    private Connector connector = null;
28
29    private static final Logger log = Logger.getLogger(PerformanceServerTest.class);
30
31    public void init(Map JavaDoc metatdata) throws Exception JavaDoc
32    {
33       if(serverPort < 0)
34       {
35          //serverPort = Math.abs(new Random().nextInt(2000) + 2000);
36
throw new Exception JavaDoc("port setting for server can not be null.");
37       }
38       log.debug("port = " + serverPort);
39
40       connector = new Connector();
41       InvokerLocator locator = new InvokerLocator(buildLocatorURI(metatdata));
42       connector.setInvokerLocator(locator.getLocatorURI());
43       connector.create();
44       connector.addInvocationHandler(getSubsystem(), getServerInvocationHandler());
45       connector.start();
46       log.info("Server started on " + locator.getLocatorURI());
47    }
48
49    private String JavaDoc buildLocatorURI(Map JavaDoc metadata)
50    {
51       if(metadata == null || metadata.size() == 0)
52       {
53          return transport + "://localhost:" + serverPort;
54       }
55       else
56       {
57          StringBuffer JavaDoc uriBuffer = new StringBuffer JavaDoc(transport + "://localhost:" + serverPort);
58
59          Set JavaDoc keys = metadata.keySet();
60          Iterator JavaDoc itr = keys.iterator();
61          while(itr.hasNext())
62          {
63             String JavaDoc key = (String JavaDoc) itr.next();
64             String JavaDoc value = (String JavaDoc) metadata.get(key);
65             uriBuffer.append(key + "=" + value + ",");
66          }
67          return uriBuffer.substring(0, uriBuffer.length() - 1);
68       }
69    }
70
71    protected String JavaDoc getSubsystem()
72    {
73       return "performance";
74    }
75
76    protected ServerInvocationHandler getServerInvocationHandler()
77    {
78       return new PerformanceInvocationHandler();
79    }
80
81    protected void setUp() throws Exception JavaDoc
82    {
83       String JavaDoc newTransport = System.getProperty(PerformanceTestCase.REMOTING_TRANSPORT);
84       if(newTransport != null && newTransport.length() > 0)
85       {
86          transport = newTransport;
87          log.info("Using transport: " + transport);
88       }
89
90       init(null);
91    }
92
93    protected void tearDown() throws Exception JavaDoc
94    {
95       if(connector != null)
96       {
97          connector.stop();
98          connector.destroy();
99       }
100    }
101
102    public static void main(String JavaDoc[] args)
103    {
104       PerformanceServerTest test = new PerformanceServerTest();
105       try
106       {
107          test.setUp();
108          Thread.currentThread().sleep(300000);
109          test.tearDown();
110       }
111       catch(Exception JavaDoc e)
112       {
113          e.printStackTrace();
114       }
115    }
116 }
Popular Tags