User: d_jencks
  Date: 01/09/08 09:57:05

  Modified:    src/main/org/jboss/test/jmx/test
                        TestConnectionFactoryLoader.java
  Added:       src/main/org/jboss/test/jmx/test TestDeployService.java
  Log:
  Added tests for sar deployment, *-service.xml deployment, sar dependency management, 
and recursive .sar deployment
  
  Revision  Changes    Path
  1.4       +14 -7     
jbosstest/src/main/org/jboss/test/jmx/test/TestConnectionFactoryLoader.java
  
  Index: TestConnectionFactoryLoader.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbosstest/src/main/org/jboss/test/jmx/test/TestConnectionFactoryLoader.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestConnectionFactoryLoader.java  2001/09/07 10:26:43     1.3
  +++ TestConnectionFactoryLoader.java  2001/09/08 16:57:05     1.4
  @@ -38,8 +38,8 @@
   /**
    *      
    *   @see <related>
  - *   @author $Author: kimptoc $
  - *   @version $Revision: 1.3 $
  + *   @author $Author: d_jencks $
  + *   @version $Revision: 1.4 $
    */
   public class TestConnectionFactoryLoader
      extends TestCase
  @@ -81,12 +81,18 @@
         assertTrue("Server was not found", server != null);
      }
   
  -   public void testAddRemoveConnectionFactory() throws Exception {
  +   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.
  @@ -98,19 +104,20 @@
         assertTrue("test mbean not registered", 
server.isRegistered(connectionFactoryLoaderName));
   
         AttributeList al = new AttributeList();
  -      al.add(new Attribute("FactoryName", "ConnectionFactoryLoaderTestDS"));
  +      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("Properties", 
"ConnectionURL=jdbc:HypersonicSQL:hsql://localhost:1476"));
  +      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"
  -         + " GCEnabled=false\n"
  +         + " CleanupEnabled=false\n"
            + " IdleTimeoutEnabled=false\n"
            + " InvalidateOnError=false\n"
            + " TrackLastUsed=false\n"
  -         + " GCIntervalMillis=120000\n"
  +         + " CleanupIntervalMillis=120000\n"
            + " GCMinIdleMillis=1200000\n"
            + " IdleTimeoutMillis=1800000\n"
            + " MaxIdleTimeoutPercent=1.0"));
  
  
  
  1.1                  
jbosstest/src/main/org/jboss/test/jmx/test/TestDeployService.java
  
  Index: TestDeployService.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.interfaces.JMXAdaptor;
  import org.jboss.jmx.interfaces.RMIConnector;
  import org.jboss.jmx.interfaces.RMINotificationListener;
  
  import junit.framework.*;
  
  
  /**
   *      
   *   @see <related>
   *   @author $Author: d_jencks $
   *   @version $Revision: 1.1 $
   */
  public class TestDeployService
     extends TestCase
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
      private ObjectName serviceDeployerName;
  
     protected RMIConnector server;
     
     // Static --------------------------------------------------------
     // Constructors --------------------------------------------------
     public TestDeployService(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(TestDeployService.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

Reply via email to