/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.test; import java.io.File; import java.net.InetAddress; import java.net.MalformedURLException; import java.net.URL; import java.util.HashSet; import java.util.Set; import javax.management.MBeanException; import javax.management.MBeanRegistrationException; import javax.management.MalformedObjectNameException; import javax.management.ObjectInstance; import javax.management.ObjectName; import javax.management.ReflectionException; import javax.management.RuntimeErrorException; import javax.management.RuntimeMBeanException; import javax.management.RuntimeOperationsException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingEnumeration; import javax.naming.NamingException; import junit.extensions.TestSetup; import junit.framework.Test; import org.apache.log4j.Category; import org.jboss.jmx.adaptor.rmi.RMIAdaptor; /** * 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 David Jencks * @author Christoph G. Jung * @version $Revision: 1.8.6.2 $ */ public class JBossTestSetup extends TestSetup { protected JBossTestServices delegate; // Static -------------------------------------------------------- // Constructors -------------------------------------------------- /** * Constructor for the JBossTestCase object * * @param name Test case name */ public JBossTestSetup(Test test) { super(test); delegate = createTestServices(); } // Public -------------------------------------------------------- /** * The JUnit setup method * * @exception Exception Description of Exception * / * protected void setUp() throws Exception * { * delegate.setUp(); * }*/ /** * The teardown method for JUnit * * @exception Exception Description of Exception * / * protected void tearDown() throws Exception * { * delegate.tearDown(); * }*/ //protected--------- /** factory for testservices delegate */ 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; } //is this good for something?????? /** * Gets the Deployed attribute of the JBossTestCase object * * @param name Description of Parameter * @return The Deployed value */ protected boolean isDeployed(String name) { return delegate.isDeployed(name); } /** * 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 { delegate.flushAuthCache(); } protected int getThreadCount() { return delegate.getThreadCount(); } protected int getIterationCount() { return delegate.getIterationCount(); } protected int getBeanCount() { return delegate.getBeanCount(); } //private methods-------------- }