2
* JBoss, Home of Professional Open Source
3
* Copyright 2005, JBoss Inc., and individual contributors as indicated
4
* by the @authors tag. See the copyright.txt in the distribution for a
5
* full listing of individual contributors.
7
* This is free software; you can redistribute it and/or modify it
8
* under the terms of the GNU Lesser General Public License as
9
* published by the Free Software Foundation; either version 2.1 of
10
* the License, or (at your option) any later version.
12
* This software is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with this software; if not, write to the Free
19
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
23
package org.jboss.test.remoting.detection.jndi;
25
import java.lang.reflect.Method;
26
import java.net.InetAddress;
27
import java.security.AccessController;
28
import java.security.PrivilegedActionException;
29
import java.security.PrivilegedExceptionAction;
31
import org.apache.log4j.Level;
32
import org.jboss.jrunit.harness.TestDriver;
33
import org.jboss.remoting.samples.detection.jndi.SimpleJNDIServer;
34
import org.jboss.remoting.util.SecurityUtility;
35
import org.jnp.server.Main;
38
* This should be used as the main test case for JNDI detector.
39
* It will start two JNDIDetectors in seperate instances. The first
40
* will detect the second and then the second will shutdown and the first
41
* will detect that the second is no longer present. This also requires
42
* this class to start an instance of the JNP
44
* @author <a href="mailto:telrod@e2technologies.net">Tom Elrod</a>
46
public class JNDIDetectorTestCase extends TestDriver
50
* This method should call the addTestClasses() method with the client class to run, number of clients to run
51
* and the server class to run.
53
public void declareTestClasses()
58
Object namingBean = null;
59
Class namingBeanImplClass = null;
62
namingBeanImplClass = Class.forName("org.jnp.server.NamingBeanImpl");
63
namingBean = namingBeanImplClass.newInstance();
64
Method startMethod = namingBeanImplClass.getMethod("start", new Class[] {});
65
setSystemProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
66
startMethod.invoke(namingBean, new Object[] {});
70
SimpleJNDIServer.println("Cannot find NamingBeanImpl: must be running jdk 1.4");
74
//String host = "localhost";
75
String host = InetAddress.getLocalHost().getHostName();
76
Main JNDIServer = new Main();
77
if (namingBean != null)
79
Class namingBeanClass = Class.forName("org.jnp.server.NamingBean");
80
Method setNamingInfoMethod = JNDIServer.getClass().getMethod("setNamingInfo", new Class[] {namingBeanClass});
81
setNamingInfoMethod.invoke(JNDIServer, new Object[] {namingBean});
83
JNDIServer.setPort(port);
84
JNDIServer.setBindAddress(host);
86
System.out.println("Started JNDI server on " + host + ":" + port);
88
addTestClasses(JNDIDetectorTest1.class.getName(),
90
JNDIDetectorTest2.class.getName());
94
System.out.println("Error starting JNDI server.");
99
protected Level getTestLogLevel()
105
* How long to wait for test results to be returned from the client(s). If goes longer than the
106
* specified limit, will throw an exception and kill the running test cases. Default value is
111
protected long getResultsTimeout()
117
* How long for the server test case to wait for tear down message. If exceeds timeout,
118
* will throw exception. The default value is TEARDOWN_TIMEOUT.
122
protected long getTearDownTimeout()
128
* How long to allow each of the test cases to run their tests. If exceeds this timeout
129
* will throw exception and kill tests. The default value is RUN_TEST_TIMEOUT.
133
protected long getRunTestTimeout()
138
static private void setSystemProperty(final String name, final String value)
140
if (SecurityUtility.skipAccessControl())
142
System.setProperty(name, value);
148
AccessController.doPrivileged( new PrivilegedExceptionAction()
150
public Object run() throws Exception
152
return System.setProperty(name, value);
156
catch (PrivilegedActionException e)
158
throw (RuntimeException) e.getCause();
b'\\ No newline at end of file'