JBossTestSetup.java |
/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.test; import junit.extensions.TestSetup; import junit.framework.Test; import org.apache.log4j.Category; import org.jboss.jmx.adaptor.rmi.RMIAdaptor; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.naming.InitialContext; import java.net.MalformedURLException; import java.net.URL; /** * This is a TestSetup class for jboss junit test cases that provides the * jboss test services. It supplies * access to log4j logging, the jboss jmx server, jndi, and a method for * deploying ejb packages. You may supply the name of the machine the jboss * server is on with the system property jbosstest.server.name (default * getInetAddress().getLocalHost().getHostName()) and the directory for * deployable packages with the system property jbosstest.deploy.dir (default * ../lib). * * Should be sublassed to derive junit support for specific services integrated * into JBoss. * * @author <a href="mailto:d_jencks@users.sourceforge.net">David Jencks</a> * @author <a href="mailto:christoph.jung@jboss.org">Christoph G. Jung</a> * @version $Revision: 1.14.4.1 $ */ public class JBossTestSetup extends TestSetup { protected JBossTestServices delegate; /** * Constructor for the JBossTestCase object */ public JBossTestSetup(Test test) throws Exception { super(test); delegate = createTestServices(); delegate.init(); } protected JBossTestServices createTestServices() { return new JBossTestServices(getClass().getName()); } /** * Gets the InitialContext attribute of the JBossTestCase object * * @return The InitialContext value */ protected InitialContext getInitialContext() throws Exception { return delegate.getInitialContext(); } /** * Gets the Server attribute of the JBossTestCase object * * @return The Server value */ protected RMIAdaptor getServer() throws Exception { return delegate.getServer(); } /** * Gets the Log attribute of the JBossTestCase object * * @return The Log value */ protected Category getLog() { return delegate.getLog(); } /** * Gets the DeployerName attribute of the JBossTestCase object * * @return The DeployerName value * @exception MalformedObjectNameException Description of Exception */ protected ObjectName getDeployerName() throws MalformedObjectNameException { return delegate.getDeployerName(); } /** * Returns the deployment directory to use. This does it's best to figure out * where you are looking. If you supply a complete url, it returns it. * Otherwise, it looks for jbosstest.deploy.dir or if missing ../lib. Then it * tries to construct a file url or a url. * * @param filename name of the file/url you want * @return A more or less canonical string for the * url. * @exception MalformedURLException Description of Exception */ protected String getDeployURL(final String filename) throws MalformedURLException { return delegate.getDeployURL(filename); } protected String getResourceURL(final String path) { ClassLoader loader = Thread.currentThread().getContextClassLoader(); URL resURL = loader.getResource(path); String resPath = resURL != null ? resURL.toString() : null; return resPath; } /** * invoke wraps an invoke call to the mbean server in a lot of exception * unwrapping. * * @param name ObjectName of the mbean to be called * @param method mbean method to be called * @param args Object[] of arguments for the mbean method. * @param sig String[] of types for the mbean methods parameters. * @return Object returned by mbean method invocation. * @exception Exception Description of Exception */ protected Object invoke(ObjectName name, String method, Object[] args, String[] sig) throws Exception { return delegate.invoke(name, method, args, sig); } /** * Deploy a package with the main deployer. The supplied name is * interpreted as a url, or as a filename in jbosstest.deploy.lib or ../lib. * * @param name filename/url of package to deploy. * @exception Exception Description of Exception */ protected void deploy(String name) throws Exception { delegate.deploy(name); } protected void redeploy(String name) throws Exception { delegate.redeploy(name); } /** * Undeploy a package with the main deployer. The supplied name is * interpreted as a url, or as a filename in jbosstest.deploy.lib or ../lib. * * @param name filename/url of package to undeploy. * @exception Exception Description of Exception */ protected void undeploy(String name) throws Exception { delegate.undeploy(name); } protected void flushAuthCache() throws Exception { flushAuthCache("other"); } protected void flushAuthCache(String domain) throws Exception { delegate.flushAuthCache(domain); } /** Restart the connection pool associated with the DefaultDS * @throws Exception on failure */ protected void restartDBPool() throws Exception { delegate.restartDBPool(); } protected String getJndiURL() { return delegate.getJndiURL(); } protected String getJndiInitFactory() { return delegate.getJndiInitFactory(); } protected int getThreadCount() { return delegate.getThreadCount(); } protected int getIterationCount() { return delegate.getIterationCount(); } protected int getBeanCount() { return delegate.getBeanCount(); } /** * Get the JBoss server host from system property "jbosstest.host.name" * This defaults to "localhost" */ public String getServerHost() { return delegate.getServerHost(); } }
JBossTestSetup.java |