User: d_jencks
Date: 01/09/26 14:47:05
Modified: src/main/org/jboss/test/jmx/test
DeployServiceUnitTestCase.java
Log:
ServiceDeployer: added local dir support, undeploy support for depends, reworked
classpath dependencies. Changed config files to work. REMOVE core-service.xml or
build.sh cleancvs update -d -P >update11.log
Revision Changes Path
1.5 +255 -66
jbosstest/src/main/org/jboss/test/jmx/test/DeployServiceUnitTestCase.java
Index: DeployServiceUnitTestCase.java
===================================================================
RCS file:
/cvsroot/jboss/jbosstest/src/main/org/jboss/test/jmx/test/DeployServiceUnitTestCase.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DeployServiceUnitTestCase.java 2001/09/20 18:23:41 1.4
+++ DeployServiceUnitTestCase.java 2001/09/26 21:47:05 1.5
@@ -29,7 +29,7 @@
/**
* @see <related>
* @author <a href="mailto:[EMAIL PROTECTED]">David Jencks</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public class DeployServiceUnitTestCase
extends JBossTestCase
@@ -231,13 +231,6 @@
//we'll believe from testDeployJSR that the classes are available.
- //deploy the test jsrs again, should undeploy and redeploy.
- deployService(testUrlA);
-
- //check deployment registered expected mbeans
- assertTrue("test mbean not registered after redeploy",
getServer().isRegistered(testObjectNameA));
- assertTrue("test mbean not registered after redeploy",
getServer().isRegistered(testObjectNameB));
- assertTrue("test mbean not registered after redeploy",
getServer().isRegistered(testObjectNameC));
//undeploy test xml doc.
undeployService(testUrlA);
@@ -247,40 +240,24 @@
assertTrue("test mbean C still registered after undeploy of A",
!getServer().isRegistered(testObjectNameC));
assertTrue("test mbean B unregistered after undeploy of A",
getServer().isRegistered(testObjectNameB));
- //check the class for C is not available
- try
- {
- ObjectInstance oe =
getServer().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
- * undeployService(testObjectNameB);
- * assertTrue("test mbean B is registered after undeploy of B",
!getServer().isRegistered(testObjectNameB));
- *
- */
+
+ // not working, skip for now
+ undeployService(testUrlB);
+ assertTrue("test mbean B is registered after undeploy of B",
!getServer().isRegistered(testObjectNameB));
+
//deploy the test jsr A doc a second time.
deployService(testUrlA);
- /*
- * check deployment registered expected mbeans
- * assertTrue("test mbean A not registered after deploy of A",
getServer().isRegistered(testObjectNameA));
- *
- * assertTrue("test mbean B is registered after deploy of A",
!getServer().isRegistered(testObjectNameB));
- *
- * assertTrue("test mbean C is registered after deploy of A, with B
unregistered", !getServer().isRegistered(testObjectNameC));
- */
+
+ // check deployment registered expected mbeans
+ assertTrue("test mbean A not registered after deploy of A",
getServer().isRegistered(testObjectNameA));
+
+ assertTrue("test mbean B is registered after deploy of A",
!getServer().isRegistered(testObjectNameB));
+
+ assertTrue("test mbean C is registered after deploy of A, with B
unregistered", !getServer().isRegistered(testObjectNameC));
+
//now redeploy B, should also redeploy C
- //deployService(testUrlB);
+ deployService(testUrlB);
//check deployment registered expected mbeans- all three should be
registered
assertTrue("test mbean A not registered after deploy of B",
getServer().isRegistered(testObjectNameA));
@@ -311,15 +288,16 @@
/**
- * Test recursive deployment/undeployment of sars. D depends on C, C on A and
- * B. Deploying D should deploy A, B, C, D.
+ * Test depends tag D depends on mbeans in A and C.
+ * Deploying D should wait for A and C; undeploying A and/or C should
+ * undeploy D's mbean. Redeploying both should resuscitate D's mbean.
*
* @exception Exception Description of Exception
*/
- public void testRecursiveDeploySAR() throws Exception
+ public void testDepends() throws Exception
{
- //C depends on A and B
- //D depends on C
+ //C depends on A and B via classpath.
+ //D depends on A and C via depends elements.
//Find the testdeploy[ABC].sar files in lib directory with other jars.
String testUrlA = "testdeploya.sar";
@@ -347,34 +325,36 @@
//deploy the test jsrs.
deployService(testUrlD);
+ //Nothing should be registered: D is waiting for A and C
//check deployment registered expected mbeans
- assertTrue("test mbean D not registered after deploy",
getServer().isRegistered(testObjectNameD));
- assertTrue("test mbean C not registered after deploy",
getServer().isRegistered(testObjectNameC));
- assertTrue("test mbean A not registered after deploy",
getServer().isRegistered(testObjectNameA));
- assertTrue("test mbean B not registered after deploy",
getServer().isRegistered(testObjectNameB));
+ assertTrue("test mbean D registered after deploy",
!getServer().isRegistered(testObjectNameD));
+ assertTrue("test mbean C registered after deploy",
!getServer().isRegistered(testObjectNameC));
+ assertTrue("test mbean A registered after deploy",
!getServer().isRegistered(testObjectNameA));
+ assertTrue("test mbean B registered after deploy",
!getServer().isRegistered(testObjectNameB));
- //we'll believe from testDeployJSR that the classes are available.
- //deploy the test jsrs again, should undeploy and redeploy.
+ //deploy A.
deployService(testUrlA);
+ //should have only bean A, D is still waiting on C
//check deployment registered expected mbeans
- assertTrue("test mbean not registered after redeploy",
getServer().isRegistered(testObjectNameA));
- assertTrue("test mbean not registered after redeploy",
getServer().isRegistered(testObjectNameB));
- assertTrue("test mbean not registered after redeploy",
getServer().isRegistered(testObjectNameC));
- assertTrue("test mbean not registered after redeploy",
getServer().isRegistered(testObjectNameD));
+ assertTrue("test mbeanA not registered after deploy",
getServer().isRegistered(testObjectNameA));
+ assertTrue("test mbeanB registered after deploy",
!getServer().isRegistered(testObjectNameB));
+ assertTrue("test mbeanC registered after deploy",
!getServer().isRegistered(testObjectNameC));
+ assertTrue("test mbeanD registered after deploy",
!getServer().isRegistered(testObjectNameD));
- //undeploy test xml doc.
- undeployService(testUrlA);
+ //Deploy B, should have no effect except on B
+ deployService(testUrlB);
- //check they aren't there any more
- assertTrue("test mbean A still registered after undeploy of A",
!getServer().isRegistered(testObjectNameA));
- assertTrue("test mbean C still registered after undeploy of A",
!getServer().isRegistered(testObjectNameC));
- assertTrue("test mbean D still registered after undeploy of A",
!getServer().isRegistered(testObjectNameD));
- assertTrue("test mbean B unregistered after undeploy of A",
getServer().isRegistered(testObjectNameB));
+ assertTrue("test mbeanA not registered after deploy",
getServer().isRegistered(testObjectNameA));
+ assertTrue("test mbeanB not registered after deploy",
getServer().isRegistered(testObjectNameB));
+ assertTrue("test mbeanC registered after deploy",
!getServer().isRegistered(testObjectNameC));
+ assertTrue("test mbeanD registered after deploy",
!getServer().isRegistered(testObjectNameD));
+
//check the class for D is not available
+ //actually it should be here...
try
{
ObjectInstance oe =
getServer().createMBean("org.jboss.test.jmx.mbean.TestDeployerD", testObjectName3,
classLoaderObjectName);
@@ -389,16 +369,16 @@
}
}
- //deploy the test jsr A doc a second time.
- deployService(testUrlA);
+ //deploy the test bean C. D should get created too.
+ deployService(testUrlC);
//check deployment registered expected mbeans
- assertTrue("test mbean A not registered after deploy of A",
getServer().isRegistered(testObjectNameA));
+ assertTrue("test mbean A not registered after deploy of C",
getServer().isRegistered(testObjectNameA));
- assertTrue("test mbean B not registered after deploy of A",
getServer().isRegistered(testObjectNameB));
+ assertTrue("test mbean B not registered after deploy of C",
getServer().isRegistered(testObjectNameB));
- assertTrue("test mbean C not registered after deploy of A",
getServer().isRegistered(testObjectNameC));
- assertTrue("test mbean D not registered after deploy of A",
getServer().isRegistered(testObjectNameD));
+ assertTrue("test mbean C not registered after deploy of C",
getServer().isRegistered(testObjectNameC));
+ assertTrue("test mbean D not registered after deploy of C",
getServer().isRegistered(testObjectNameD));
//undeploy test xml doc.
undeployService(testUrlD);
@@ -448,5 +428,214 @@
}
}
+
+
+ /**
+ * C and E both have A and B in their classpath.
+ * we deploy C, E, and B.
+ * Undeploying C should leave A and B (classes only for A)
+ * Undeploying E should remove classes for A and leave B
+ * (B was explicitly deployed)
+ *
+ * @exception Exception Description of Exception
+ */
+ public void testNeedsClasses() throws Exception
+ {
+ //C depends on A and B via classpath.
+ //Find the testdeploy[ABC].sar files in lib directory with other jars.
+
+ String testUrlA = "testdeploya.sar";
+ String testUrlB = "testdeployb.sar";
+ String testUrlC = "testdeployc.sar";
+ String testUrlE = "testdeploye.sar";
+ getLog().debug("testUrlA is : " + testUrlA);
+
+ //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 testObjectNameE = new ObjectName("test:name=TestDeployerE");
+ 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",
!getServer().isRegistered(testObjectNameA));
+ assertTrue("test mbean b already registered before deploy",
!getServer().isRegistered(testObjectNameB));
+ assertTrue("test mbean c already registered before deploy",
!getServer().isRegistered(testObjectNameC));
+ assertTrue("test mbean e already registered before deploy",
!getServer().isRegistered(testObjectNameE));
+
+ //deploy C
+ deployService(testUrlC);
+
+ //check the classloader-- is C's class there?
+ //make sure we can create an mbean based on the class we just deployed.
+ try
+ {
+ getServer().createMBean("org.jboss.test.jmx.mbeanc.TestDeployerC",
testObjectName2, classLoaderObjectName);
+ }
+ catch (Exception e)
+ {
+ fail("could not create mbean after class loaded in jsr" + e);
+ }
+ //now remove it again
+ try
+ {
+ getServer().unregisterMBean(testObjectName2);
+ }
+ catch (Exception e)
+ {
+ fail("could not remove mbean after class loaded in jsr" + e);
+ }
+
+ //check deployment registered expected mbeans
+ assertTrue("test mbean C not registered after deploy",
getServer().isRegistered(testObjectNameC));
+ assertTrue("test mbean A registered after deploy",
!getServer().isRegistered(testObjectNameA));
+ assertTrue("test mbean B registered after deploy",
!getServer().isRegistered(testObjectNameB));
+
+ deployService(testUrlB);//This should work, check the rest..
+ deployService(testUrlE);
+
+ assertTrue("test mbean C not registered after deploy",
getServer().isRegistered(testObjectNameC));
+ assertTrue("test mbean A registered after deploy",
!getServer().isRegistered(testObjectNameA));
+ //assertTrue("test mbean B not registered after deploy",
getServer().isRegistered(testObjectNameB));
+ assertTrue("test mbean E not registered after deploy",
getServer().isRegistered(testObjectNameE));
+
+ //check for A class
+ try
+ {
+ getServer().createMBean("org.jboss.test.jmx.mbeana.TestDeployerA",
testObjectName2, classLoaderObjectName);
+ }
+ catch (Exception e)
+ {
+ fail("could not create mbean after class loaded in jsr" + e);
+ }
+ //now remove it again
+ try
+ {
+ getServer().unregisterMBean(testObjectName2);
+ }
+ catch (Exception e)
+ {
+ fail("could not remove mbean after class loaded in jsr" + e);
+ }
+
+ //check for B class
+ try
+ {
+ getServer().createMBean("org.jboss.test.jmx.mbeanb.TestDeployerB",
testObjectName2, classLoaderObjectName);
+ }
+ catch (Exception e)
+ {
+ fail("could not create mbean after class loaded in jsr" + e);
+ }
+ //now remove it again
+ try
+ {
+ getServer().unregisterMBean(testObjectName2);
+ }
+ catch (Exception e)
+ {
+ fail("could not remove mbean after class loaded in jsr" + e);
+ }
+ //undeploy C, should leave A's class,
+ undeployService(testUrlC);
+ //check for A class
+ try
+ {
+ getServer().createMBean("org.jboss.test.jmx.mbeana.TestDeployerA",
testObjectName2, classLoaderObjectName);
+ }
+ catch (Exception e)
+ {
+ fail("could not create mbean after class loaded in jsr" + e);
+ }
+ //now remove it again
+ try
+ {
+ getServer().unregisterMBean(testObjectName2);
+ }
+ catch (Exception e)
+ {
+ fail("could not remove mbean after class loaded in jsr" + e);
+ }
+ //undeploy E, should remove A's class,
+ undeployService(testUrlE);
+ //check for A class
+ try
+ {
+ getServer().createMBean("org.jboss.test.jmx.mbeana.TestDeployerA",
testObjectName2, classLoaderObjectName);
+ fail("could create mbeana after it should be unloaded");
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ finally
+ {
+ try
+ {
+ undeployService(testUrlE);
+ }
+ catch (Exception e)
+ {
+ }
+ try
+ {
+ undeployService(testUrlC);
+ }
+ catch (Exception e)
+ {
+ }
+ try
+ {
+ undeployService(testUrlA);
+ }
+ catch (Exception e)
+ {
+ }
+ try
+ {
+ undeployService(testUrlB);
+ }
+ catch (Exception e)
+ {
+ }
+
+ }
+ }
+
+
+ /**
+ * The <code>testCopyLocalDir</code> method tests the local-directory element
+ * in jboss-system.xml. This test is currently incomplete: you can check by
+ * hand that a directory is created in db.
+ *
+ * @exception Exception if an error occurs
+ */
+ public void testCopyLocalDir() throws Exception
+ {
+
+ String testUrl = "testcopylocaldir.sar";
+ getLog().debug("testUrl is : " + testUrl);
+
+ //the mbeans we are trying to deploy/undeploy
+ ObjectName testObjectName = new ObjectName("test:name=TestCopyLocalDir");
+ try
+ {
+ //check they aren't there already
+ assertTrue("test mbean already registered before deploy",
!getServer().isRegistered(testObjectName));
+
+ //deploy C
+ deployService(testUrl);
+ }
+ finally
+ {
+ undeployService(testUrl);
+
+ } // end of finally
+ }
+
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development