package de.netseeker.ejoe.test;
import java.security.SecureRandom;
import java.util.Random;
import junit.framework.TestCase;
import de.netseeker.ejoe.EJConstants;
import de.netseeker.ejoe.EJServer;
import de.netseeker.ejoe.adapter.AdapterFactory;
import de.netseeker.ejoe.adapter.CastorAdapter;
import de.netseeker.ejoe.core.EJServerRegistry;
import de.netseeker.ejoe.handler.ServerHandler;
/*********************************************************************
* BaseTest.java
* created on 15.08.2004 by netseeker
* $Source: /cvsroot/ejoe/EJOE/test/de/netseeker/ejoe/test/BaseTest.java,v $
* $Date: 2007/11/17 10:59:53 $
* $Revision: 1.30 $
*********************************************************************/
/**
* @author netseeker aka Michael Manske
*/
public class BaseTest extends TestCase
{
private EJServer server;
protected boolean nonBlockingIO = true;
protected boolean compression;
protected boolean persistent;
protected boolean http;
protected ServerHandler handler = new TestHandler();
protected int port = EJConstants.EJOE_PORT;
public static final Random randomizer = new SecureRandom();
/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception
{
stopAllServers();
port = randomizer.nextInt( 15000 );
if ( port < 5000 ) port += 15000;
System.out.println( "using handler " + handler.getClass().getName() );
server = new EJServer( handler, port );
server.enableNonBlockingIO( nonBlockingIO );
server.enableCompression( compression );
server.enablePersistentConnections( persistent );
server.enableHttpPackaging( http );
AdapterFactory.registerAdapter( new CastorAdapter( BaseTest.class.getResource( "castor-mapping.xml" ) ) );
server.start();
}
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception
{
if ( server != null ) server.stop();
handler = new TestHandler();
http = false;
compression = false;
nonBlockingIO = true;
AdapterFactory.clear();
Thread.sleep( 1000 );
super.tearDown();
}
protected EJServer getServer()
{
return server;
}
public static void stopAllServers()
{
EJServerRegistry registry = EJServerRegistry.getInstance();
EJServer server = registry.lookup();
while ( server != null )
{
server.stop();
server = registry.lookup();
}
}
}