User: d_jencks
Date: 01/09/11 21:55:39
Added: src/main/org/jboss/test/jmx/test
ConnectionFactoryLoaderUnitTestCase.java
DeployServiceUnitTestCase.java
Removed: src/main/org/jboss/test/jmx/test
TestConnectionFactoryLoader.java
TestDeployService.java
Log:
Changed naming scheme of tests to *UnitTestCase.java for short running tests and
*StressTestCase.java for lengthy tests. Made tests-unit and tests-stress targets in
build.xml
Revision Changes Path
1.1
jbosstest/src/main/org/jboss/test/jmx/test/ConnectionFactoryLoaderUnitTestCase.java
Index: ConnectionFactoryLoaderUnitTestCase.java
===================================================================
/*
* JBoss, the OpenSource EJB server
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.test.jmx.test;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;
import javax.management.Attribute;
import javax.management.AttributeList;
import javax.management.MBeanRegistrationException;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.RuntimeMBeanException;
import javax.management.ReflectionException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
//import org.jboss.jmx.interfaces.JMXAdaptor;
import org.jboss.jmx.connector.rmi.RMIConnector;
// import org.jboss.jmx.connector.notification.RMINotificationSender;
import org.jboss.test.util.Deploy;
import junit.framework.*;
//test bean
import javax.ejb.*;
import org.jboss.test.jmx.interfaces.*;
/**
*
* @see <related>
* @author david jencks [EMAIL PROTECTED]
* @version $Revision: 1.1 $
*/
public class ConnectionFactoryLoaderUnitTestCase
extends TestCase
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
protected RMIConnector server;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public ConnectionFactoryLoaderUnitTestCase(String name)
{
super(name);
}
// Public --------------------------------------------------------
/**
* Setup the test suite.
*/
public static Test suite() {
TestSuite suite = new TestSuite(ConnectionFactoryLoaderUnitTestCase.class);
return suite;
}
public void setUp() throws Exception {
String serverName = InetAddress.getLocalHost().getHostName();
server = (RMIConnector) new InitialContext().lookup("jmx:" + serverName +
":rmi");
}
public void tearDown() throws Exception {
server = null;
}
public void testServerFound() throws Exception {
assertTrue("Server was not found", server != null);
}
public void xtestAddRemoveConnectionFactory() throws Exception {
//the mbean we are trying to deploy/undeploy
ObjectName connectionFactoryLoaderName = new
ObjectName("Test:service=ConnectionFactoryLoader,name=TestDS");
//try to remove mbean if leftover...
if (server.isRegistered(connectionFactoryLoaderName))
{
server.unregisterMBean(connectionFactoryLoaderName);
}
//check it isn't there already
assertTrue("test mbean already registered",
!server.isRegistered(connectionFactoryLoaderName));
//try to create the connection factory loader.
assertTrue("server did not return an objectInstance",
server.createMBean("org.jboss.resource.ConnectionFactoryLoader",
connectionFactoryLoaderName) != null);
//check deployment registered connection factory loader
assertTrue("test mbean not registered",
server.isRegistered(connectionFactoryLoaderName));
AttributeList al = new AttributeList();
al.add(new Attribute("JndiName", "ConnectionFactoryLoaderTestDS"));
al.add(new Attribute("RARDeployerName", "JCA:service=RARDeployer"));
al.add(new Attribute("ResourceAdapterName", "Minerva JDBC LocalTransaction
ResourceAdapter"));
al.add(new Attribute("ManagedConnectionFactoryProperties",
"ConnectionURL=jdbc:HypersonicSQL:hsql://localhost:1476\n"
+ " DriverClass=org.hsql.jdbcDriver"));
al.add(new Attribute("ConnectionManagerFactoryName",
"MinervaSharedLocalCMFactory"));
al.add(new Attribute("ConnectionManagerProperties", "MinSize=0\n"
+ " MaxSize=10\n"
+ " Blocking=true\n"
+ " CleanupEnabled=false\n"
+ " IdleTimeoutEnabled=false\n"
+ " InvalidateOnError=false\n"
+ " TrackLastUsed=false\n"
+ " CleanupIntervalMillis=120000\n"
+ " GCMinIdleMillis=1200000\n"
+ " IdleTimeoutMillis=1800000\n"
+ " MaxIdleTimeoutPercent=1.0"));
al.add(new Attribute("PrincipalMappingClass",
"org.jboss.resource.security.ManyToOnePrincipalMapping"));
al.add(new Attribute("PrincipalMappingProperties", "userName=sa\n"
+ " password="));
//try to set the attributes on the bean
assertTrue("setAttributes returned null",
server.setAttributes(connectionFactoryLoaderName, al) != null);
Object[] args = {};
String[] sig = {};
server.invoke(connectionFactoryLoaderName, "init", args, sig);
server.invoke(connectionFactoryLoaderName, "start", args, sig);
assertTrue("State is not started",
"Started".equals(server.getAttribute(connectionFactoryLoaderName, "StateString")));
//deploy test session bean to look up datasource
Deploy.deploy("jmxtest.jar");
//see if the ConnectionFactory was loaded and works
InitialContext ctx = new InitialContext();
TestDataSourceHome tdshome =
(TestDataSourceHome)ctx.lookup("test/TestDataSource");
TestDataSource tds = tdshome.create();
tds.testDataSource("java:ConnectionFactoryLoaderTestDS");
//undeploy the test ejb
Deploy.undeploy("jmxtest.jar");
//undeploy test connection factory loader.
server.invoke(connectionFactoryLoaderName, "stop", args, sig);
server.invoke(connectionFactoryLoaderName, "destroy", args, sig);
server.unregisterMBean(connectionFactoryLoaderName);
//check that the connection factory loader is no longer registered
assertTrue("connection factory loader mbean still registered",
!server.isRegistered(connectionFactoryLoaderName));
}
}
1.1
jbosstest/src/main/org/jboss/test/jmx/test/DeployServiceUnitTestCase.java
Index: DeployServiceUnitTestCase.java
===================================================================
/*
* JBoss, the OpenSource EJB server
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.test.jmx.test;
import java.net.InetAddress;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;
import javax.management.MalformedObjectNameException;
import javax.management.MBeanRegistrationException;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.RuntimeMBeanException;
import javax.management.ReflectionException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import org.jboss.jmx.connector.rmi.RMIConnector;
// import org.jboss.jmx.connector.notification.RMINotificationSender;
import junit.framework.*;
/**
*
* @see <related>
* @author david jencks [EMAIL PROTECTED]
* @version $Revision: 1.1 $
*/
public class DeployServiceUnitTestCase
extends TestCase
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private ObjectName serviceDeployerName;
protected RMIConnector server;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public DeployServiceUnitTestCase(String name) throws MalformedObjectNameException
{
super(name);
serviceDeployerName = new ObjectName("JBOSS-SYSTEM:service=ServiceDeployer");
}
// Public --------------------------------------------------------
/**
* Setup the test suite.
*/
public static Test suite() {
TestSuite suite = new TestSuite(DeployServiceUnitTestCase.class);
return suite;
}
public void setUp() throws Exception {
String serverName = InetAddress.getLocalHost().getHostName();
server = (RMIConnector) new InitialContext().lookup("jmx:" + serverName +
":rmi");
}
public void tearDown() throws Exception {
server = null;
}
public void testServerFound() throws Exception {
assertTrue("Server was not found", server != null);
}
public void testDeployXML() throws Exception {
// The class loader used to locate the configuration file
ClassLoader loader = Thread.currentThread().getContextClassLoader();
assertTrue("ContextClassloader missing", loader != null);
//Get URL for deployable *service.xml file in resources
URL url = loader.getResource("jmx/test-service.xml");
if (url == null)
{
//if we're running from the jmxtest.jar, it should be here instead
url = loader.getResource("test-service.xml");
}
assertTrue("resource test-service.xml not found", url != null);
String testUrl = url.toString();
Object[] args = { testUrl };
String[] sig = { "java.lang.String" };
//the mbeans we are trying to deploy/undeploy
ObjectName testObjectName = new
ObjectName("TestDomain:service=ConnectionFactoryLoader,name=DeployTestDS");
//check they aren't there already
assertTrue("test mbean already registered before deploy",
!server.isRegistered(testObjectName));
//deploy the test xml doc.
server.invoke(serviceDeployerName, "deploy", args, sig);
//check deployment registered expected mbeans
assertTrue("test mbean not registered after deploy",
server.isRegistered(testObjectName));
//deploy the test xml doc again, should undeploy and redeploy.
server.invoke(serviceDeployerName, "deploy", args, sig);
//check deployment registered expected mbeans
assertTrue("test mbean not registered after redeploy",
server.isRegistered(testObjectName));
//undeploy test xml doc.
server.invoke(serviceDeployerName, "undeploy", args, sig);
//check they aren't there any more
assertTrue("test mbean still registered after undeploy",
!server.isRegistered(testObjectName));
}
public void testDeploySAR() throws Exception {
//Find the testdeploy.sar file in lib directory with other jars.
String testUrl = "file://" + getDeployFilename("testdeploy.sar");
System.out.println("testUrl is : " + testUrl);
Object[] args = { testUrl };
String[] sig = { "java.lang.String" };
//the mbeans we are trying to deploy/undeploy
ObjectName testObjectName = new ObjectName("test:name=TestDeployer");
ObjectName testObjectName2 = new ObjectName("test:name=TestDeployer2");
ObjectName testObjectName3 = new ObjectName("test:name=TestDeployer3");
//the classloader mbean
ObjectName classLoaderObjectName = new
ObjectName("JBOSS-SYSTEM:spine=ServiceClassLoader");
//check they aren't there already
assertTrue("test mbean already registered before deploy",
!server.isRegistered(testObjectName));
//deploy the test xml doc.
server.invoke(serviceDeployerName, "deploy", args, sig);
//check deployment registered expected mbeans
assertTrue("test mbean not registered after deploy",
server.isRegistered(testObjectName));
//make sure we can create an mbean based on the class we just deployed.
try
{
server.createMBean("org.jboss.test.jmx.mbean.TestDeployer",
testObjectName2, classLoaderObjectName);
}
catch (Exception e)
{
fail("could not create mbean after class loaded in jsr"+ e);
}
//now remove it again
try
{
server.unregisterMBean(testObjectName2);
}
catch (Exception e)
{
fail("could not remove mbean after class loaded in jsr"+ e);
}
//deploy the test xml doc again, should undeploy and redeploy.
server.invoke(serviceDeployerName, "deploy", args, sig);
//check deployment registered expected mbeans
assertTrue("test mbean not registered after redeploy",
server.isRegistered(testObjectName));
//undeploy test xml doc.
server.invoke(serviceDeployerName, "undeploy", args, sig);
//check they aren't there any more
assertTrue("test mbean still registered after undeploy",
!server.isRegistered(testObjectName));
//check the class is not available
try
{
ObjectInstance oe =
server.createMBean("org.jboss.test.jmx.mbean.TestDeployer", testObjectName3,
classLoaderObjectName);
fail("created mbean when class should not be present: object instance: " +
oe);
}
catch (ReflectionException re)
{
Exception e = re.getTargetException();
if (!(e instanceof ClassNotFoundException))
{
fail("Wrong exception thrown when trying to create mbean" + e);
}
}
//deploy the test xml doc a second time.
server.invoke(serviceDeployerName, "deploy", args, sig);
//check deployment registered expected mbeans
assertTrue("test mbean not registered after deploy",
server.isRegistered(testObjectName));
//undeploy test xml doc.
server.invoke(serviceDeployerName, "undeploy", args, sig);
//check they aren't there any more
assertTrue("test mbean still registered after undeploy",
!server.isRegistered(testObjectName));
}
public void testDeploySARDependencies() throws Exception {
//C depends on A and B
//Find the testdeploy[ABC].sar files in lib directory with other jars.
String testUrlA = "file:" + getDeployFilename("testdeploya.sar");
String testUrlB = "file:" + getDeployFilename("testdeployb.sar");
String testUrlC = "file:" + getDeployFilename("testdeployc.sar");
System.out.println("testUrlA is : " + testUrlA);
Object[] argsA = { testUrlA };
Object[] argsB = { testUrlB };
Object[] argsC = { testUrlC };
String[] sig = { "java.lang.String" };
//the mbeans we are trying to deploy/undeploy
ObjectName testObjectNameA = new ObjectName("test:name=TestDeployerA");
ObjectName testObjectNameB = new ObjectName("test:name=TestDeployerB");
ObjectName testObjectNameC = new ObjectName("test:name=TestDeployerC");
ObjectName testObjectName2 = new ObjectName("test:name=TestDeployer2");
ObjectName testObjectName3 = new ObjectName("test:name=TestDeployer3");
//the classloader mbean
ObjectName classLoaderObjectName = new
ObjectName("JBOSS-SYSTEM:spine=ServiceClassLoader");
try
{
//check they aren't there already
assertTrue("test mbean already registered before deploy",
!server.isRegistered(testObjectNameA));
assertTrue("test mbean already registered before deploy",
!server.isRegistered(testObjectNameB));
assertTrue("test mbean already registered before deploy",
!server.isRegistered(testObjectNameC));
//deploy the test jsrs.
server.invoke(serviceDeployerName, "deploy", argsA, sig);
server.invoke(serviceDeployerName, "deploy", argsB, sig);
server.invoke(serviceDeployerName, "deploy", argsC, sig);
//check deployment registered expected mbeans
assertTrue("test mbean A not registered after deploy",
server.isRegistered(testObjectNameA));
assertTrue("test mbean B not registered after deploy",
server.isRegistered(testObjectNameB));
assertTrue("test mbean C not registered after deploy",
server.isRegistered(testObjectNameC));
//we'll believe from testDeployJSR that the classes are available.
//deploy the test jsrs again, should undeploy and redeploy.
server.invoke(serviceDeployerName, "deploy", argsA, sig);
//check deployment registered expected mbeans
assertTrue("test mbean not registered after redeploy",
server.isRegistered(testObjectNameA));
assertTrue("test mbean not registered after redeploy",
server.isRegistered(testObjectNameB));
assertTrue("test mbean not registered after redeploy",
server.isRegistered(testObjectNameC));
//undeploy test xml doc.
server.invoke(serviceDeployerName, "undeploy", argsA, sig);
//check they aren't there any more
assertTrue("test mbean A still registered after undeploy of A",
!server.isRegistered(testObjectNameA));
assertTrue("test mbean C still registered after undeploy of A",
!server.isRegistered(testObjectNameC));
assertTrue("test mbean B unregistered after undeploy of A",
server.isRegistered(testObjectNameB));
//check the class for C is not available
try
{
ObjectInstance oe =
server.createMBean("org.jboss.test.jmx.mbean.TestDeployerC", testObjectName3,
classLoaderObjectName);
fail("created mbean when class should not be present: object instance: " +
oe);
}
catch (ReflectionException re)
{
Exception e = re.getTargetException();
if (!(e instanceof ClassNotFoundException))
{
fail("Wrong exception thrown when trying to create mbean" + e);
}
}
//Now undeploy B, should prevent redeploy of C when A is redeployed.
/*not working, skip for now
server.invoke(serviceDeployerName, "undeploy", argsB, sig);
assertTrue("test mbean B is registered after undeploy of B",
!server.isRegistered(testObjectNameB));
*/
//deploy the test jsr A doc a second time.
server.invoke(serviceDeployerName, "deploy", argsA, sig);
/*
//check deployment registered expected mbeans
assertTrue("test mbean A not registered after deploy of A",
server.isRegistered(testObjectNameA));
assertTrue("test mbean B is registered after deploy of A",
!server.isRegistered(testObjectNameB));
assertTrue("test mbean C is registered after deploy of A, with B
unregistered", !server.isRegistered(testObjectNameC));
*/
//now redeploy B, should also redeploy C
//server.invoke(serviceDeployerName, "deploy", argsB, sig);
//check deployment registered expected mbeans- all three should be registered
assertTrue("test mbean A not registered after deploy of B",
server.isRegistered(testObjectNameA));
assertTrue("test mbean B not registered after deploy of B",
server.isRegistered(testObjectNameB));
assertTrue("test mbean C not registered after deploy of B",
server.isRegistered(testObjectNameC));
//undeploy test xml doc.
server.invoke(serviceDeployerName, "undeploy", argsC, sig);
server.invoke(serviceDeployerName, "undeploy", argsA, sig);
server.invoke(serviceDeployerName, "undeploy", argsB, sig);
//check they aren't there any more
assertTrue("test mbean still registered after undeploy",
!server.isRegistered(testObjectNameA));
assertTrue("test mbean still registered after undeploy",
!server.isRegistered(testObjectNameB));
assertTrue("test mbean still registered after undeploy",
!server.isRegistered(testObjectNameC));
}
finally
{
server.invoke(serviceDeployerName, "undeploy", argsC, sig);
server.invoke(serviceDeployerName, "undeploy", argsA, sig);
server.invoke(serviceDeployerName, "undeploy", argsB, sig);
}
}
public void testRecursiveDeploySAR() throws Exception {
//C depends on A and B
//D depends on C
//Find the testdeploy[ABC].sar files in lib directory with other jars.
String testUrlA = "file:" + getDeployFilename("testdeploya.sar");
String testUrlB = "file:" + getDeployFilename("testdeployb.sar");
String testUrlC = "file:" + getDeployFilename("testdeployc.sar");
String testUrlD = "file:" + getDeployFilename("testdeployd.sar");
System.out.println("testUrlA is : " + testUrlA);
Object[] argsA = { testUrlA };
Object[] argsB = { testUrlB };
Object[] argsC = { testUrlC };
Object[] argsD = { testUrlD };
String[] sig = { "java.lang.String" };
//the mbeans we are trying to deploy/undeploy
ObjectName testObjectNameA = new ObjectName("test:name=TestDeployerA");
ObjectName testObjectNameB = new ObjectName("test:name=TestDeployerB");
ObjectName testObjectNameC = new ObjectName("test:name=TestDeployerC");
ObjectName testObjectNameD = new ObjectName("test:name=TestDeployerD");
ObjectName testObjectName2 = new ObjectName("test:name=TestDeployer2");
ObjectName testObjectName3 = new ObjectName("test:name=TestDeployer3");
//the classloader mbean
ObjectName classLoaderObjectName = new
ObjectName("JBOSS-SYSTEM:spine=ServiceClassLoader");
try
{
//check they aren't there already
assertTrue("test mbean a already registered before deploy",
!server.isRegistered(testObjectNameA));
assertTrue("test mbean b already registered before deploy",
!server.isRegistered(testObjectNameB));
assertTrue("test mbean c already registered before deploy",
!server.isRegistered(testObjectNameC));
assertTrue("test mbean d already registered before deploy",
!server.isRegistered(testObjectNameD));
//deploy the test jsrs.
server.invoke(serviceDeployerName, "deploy", argsD, sig);
//check deployment registered expected mbeans
assertTrue("test mbean D not registered after deploy",
server.isRegistered(testObjectNameD));
assertTrue("test mbean C not registered after deploy",
server.isRegistered(testObjectNameC));
assertTrue("test mbean A not registered after deploy",
server.isRegistered(testObjectNameA));
assertTrue("test mbean B not registered after deploy",
server.isRegistered(testObjectNameB));
//we'll believe from testDeployJSR that the classes are available.
//deploy the test jsrs again, should undeploy and redeploy.
server.invoke(serviceDeployerName, "deploy", argsA, sig);
//check deployment registered expected mbeans
assertTrue("test mbean not registered after redeploy",
server.isRegistered(testObjectNameA));
assertTrue("test mbean not registered after redeploy",
server.isRegistered(testObjectNameB));
assertTrue("test mbean not registered after redeploy",
server.isRegistered(testObjectNameC));
assertTrue("test mbean not registered after redeploy",
server.isRegistered(testObjectNameD));
//undeploy test xml doc.
server.invoke(serviceDeployerName, "undeploy", argsA, sig);
//check they aren't there any more
assertTrue("test mbean A still registered after undeploy of A",
!server.isRegistered(testObjectNameA));
assertTrue("test mbean C still registered after undeploy of A",
!server.isRegistered(testObjectNameC));
assertTrue("test mbean D still registered after undeploy of A",
!server.isRegistered(testObjectNameD));
assertTrue("test mbean B unregistered after undeploy of A",
server.isRegistered(testObjectNameB));
//check the class for D is not available
try
{
ObjectInstance oe =
server.createMBean("org.jboss.test.jmx.mbean.TestDeployerD", testObjectName3,
classLoaderObjectName);
fail("created mbean when class should not be present: object instance: " +
oe);
}
catch (ReflectionException re)
{
Exception e = re.getTargetException();
if (!(e instanceof ClassNotFoundException))
{
fail("Wrong exception thrown when trying to create mbean" + e);
}
}
//deploy the test jsr A doc a second time.
server.invoke(serviceDeployerName, "deploy", argsA, sig);
//check deployment registered expected mbeans
assertTrue("test mbean A not registered after deploy of A",
server.isRegistered(testObjectNameA));
assertTrue("test mbean B not registered after deploy of A",
server.isRegistered(testObjectNameB));
assertTrue("test mbean C not registered after deploy of A",
server.isRegistered(testObjectNameC));
assertTrue("test mbean D not registered after deploy of A",
server.isRegistered(testObjectNameD));
//undeploy test xml doc.
server.invoke(serviceDeployerName, "undeploy", argsD, sig);
server.invoke(serviceDeployerName, "undeploy", argsC, sig);
server.invoke(serviceDeployerName, "undeploy", argsA, sig);
server.invoke(serviceDeployerName, "undeploy", argsB, sig);
//check they aren't there any more
assertTrue("test mbean A still registered after undeploy",
!server.isRegistered(testObjectNameA));
assertTrue("test mbean A still registered after undeploy",
!server.isRegistered(testObjectNameB));
assertTrue("test mbean A still registered after undeploy",
!server.isRegistered(testObjectNameC));
assertTrue("test mbean A still registered after undeploy",
!server.isRegistered(testObjectNameD));
}
finally
{
server.invoke(serviceDeployerName, "undeploy", argsD, sig);
server.invoke(serviceDeployerName, "undeploy", argsC, sig);
server.invoke(serviceDeployerName, "undeploy", argsA, sig);
server.invoke(serviceDeployerName, "undeploy", argsB, sig);
}
}
/** Return the deployment directory to use. */
private static String getDeployFilename(final String filename)
{
String deployDir = System.getProperty("jbosstest.deploy.dir");
if (deployDir == null)
{
deployDir = "../lib";
}
return deployDir + "/" + filename;
}
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development