[jboss-cvs] JBossAS SVN: r97181 - in projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers: test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 30 12:51:30 EST 2009


Author: alesj
Date: 2009-11-30 12:51:29 -0500 (Mon, 30 Nov 2009)
New Revision: 97181

Added:
   projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/support/SMDParsingDeployer.java
   projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/AbstractServiceTest.java
   projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceDeploymentRegistryTestCase.java
Modified:
   projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/DeployersTestSuite.java
   projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceUnitNameTestCase.java
Log:
[JBDEPLOY-65]; tests for service/context 2 deployment mapping.

Added: projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/support/SMDParsingDeployer.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/support/SMDParsingDeployer.java	                        (rev 0)
+++ projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/support/SMDParsingDeployer.java	2009-11-30 17:51:29 UTC (rev 97181)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.system.deployers.support;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.system.metadata.ServiceDeployment;
+import org.jboss.system.metadata.ServiceMetaData;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class SMDParsingDeployer extends AbstractParsingDeployerWithOutput<ServiceDeployment>
+{
+   private ServiceMetaData smd;
+
+   public SMDParsingDeployer(ServiceMetaData smd)
+   {
+      super(ServiceDeployment.class);
+      this.smd = smd;
+   }
+
+   protected ServiceDeployment getServiceDeployment() throws Exception
+   {
+      ServiceDeployment serviceDeployment = new ServiceDeployment();
+      serviceDeployment.setServices(Collections.singletonList(smd));
+      return serviceDeployment;
+   }
+
+   @Override
+   protected ServiceDeployment parse(DeploymentUnit arg0, Set<String> arg1, ServiceDeployment arg2) throws Exception
+   {
+      return getServiceDeployment();
+   }
+
+   @Override
+   protected ServiceDeployment parse(DeploymentUnit arg0, Set<String> arg1, String arg2, ServiceDeployment arg3) throws Exception
+   {
+      return getServiceDeployment();
+   }
+
+   protected ServiceDeployment parse(DeploymentUnit deploymentUnit, String s, ServiceDeployment deployment) throws Exception
+   {
+      return getServiceDeployment();
+   }
+
+   protected ServiceDeployment parse(DeploymentUnit deploymentUnit, String s, String s1, ServiceDeployment deployment) throws Exception
+   {
+      return getServiceDeployment();
+   }
+}

Copied: projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/AbstractServiceTest.java (from rev 96678, projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceUnitNameTestCase.java)
===================================================================
--- projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/AbstractServiceTest.java	                        (rev 0)
+++ projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/AbstractServiceTest.java	2009-11-30 17:51:29 UTC (rev 97181)
@@ -0,0 +1,225 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.system.deployers.test;
+
+import java.lang.reflect.Method;
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
+
+import org.jboss.dependency.spi.Controller;
+import org.jboss.deployers.client.spi.Deployment;
+import org.jboss.deployers.plugins.deployers.DeployersImpl;
+import org.jboss.deployers.plugins.main.MainDeployerImpl;
+import org.jboss.deployers.spi.deployer.Deployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.structure.spi.StructuralDeployers;
+import org.jboss.deployers.structure.spi.DeploymentRegistry;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
+import org.jboss.mx.server.ServerConstants;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.system.ServiceController;
+import org.jboss.system.deployers.ServiceDeployer;
+import org.jboss.system.deployers.ServiceDeploymentDeployer;
+import org.jboss.system.metadata.ServiceMetaData;
+import org.jboss.test.AbstractSystemTest;
+import org.jboss.test.AbstractTestDelegate;
+import org.jboss.test.system.deployers.support.CLDeployer;
+import org.jboss.test.system.deployers.support.JmxCL;
+import org.jboss.test.system.deployers.support.SMDParsingDeployer;
+
+/**
+ * Abstract service/jmx test.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public abstract class AbstractServiceTest extends AbstractSystemTest
+{
+   protected Controller controller;
+   protected ServiceController serviceController;
+   protected MainDeployerImpl main;
+
+   protected AbstractServiceTest(String name)
+   {
+      super(name);
+   }
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+
+      MBeanServer mbeanServer = createMBeanServer();
+      try
+      {
+         BasicBootstrap bootstrap = new BasicBootstrap();
+         bootstrap.run();
+         Kernel kernel = bootstrap.getKernel();
+         controller = kernel.getController();
+
+         serviceController = new ServiceController();
+         ObjectName objectName = new ObjectName("jboss.system:service=ServiceController");
+         serviceController.setKernel(kernel);
+         serviceController.setMBeanServer(mbeanServer);
+         mbeanServer.registerMBean(serviceController, objectName);
+
+         ClassLoader loader = Thread.currentThread().getContextClassLoader();
+         ObjectName clON = new ObjectName("jboss:service=defaultClassLoader");
+         mbeanServer.registerMBean(new JmxCL(loader), clON);
+
+         MainDeployerImpl mainDeployer = new MainDeployerImpl();
+         DeployersImpl deployersImpl = new DeployersImpl(controller);
+         mainDeployer.setDeployers(deployersImpl);
+
+         // default deployers
+         ServiceDeployer serviceDeployer = new ServiceDeployer(serviceController);
+         serviceDeployer.setDeploymentRegistry(getRegistry());
+         deployersImpl.addDeployer(serviceDeployer);
+         deployersImpl.addDeployer(new ServiceDeploymentDeployer());
+         deployersImpl.addDeployer(new CLDeployer());
+
+         main = mainDeployer;
+      }
+      catch (Exception e)
+      {
+         cleanup(mbeanServer);
+
+         super.tearDown();
+
+         throw e;
+      }
+   }
+
+   protected DeploymentRegistry getRegistry()
+   {
+      return null;
+   }
+
+   private void cleanup(MBeanServer mbeanServer)
+   {
+      try
+      {
+         ObjectName objectName = new ObjectName("jboss.system:service=ServiceController");
+         mbeanServer.unregisterMBean(objectName);
+
+         ObjectName clON = new ObjectName("jboss:service=defaultClassLoader");
+         mbeanServer.unregisterMBean(clON);
+      }
+      catch (Exception ignored)
+      {
+      }
+      finally
+      {
+         controller = null;
+         serviceController = null;
+         main = null;
+
+         MBeanServerLocator.setJBoss(null);
+         if (MBeanServerFactory.findMBeanServer("JBoss").isEmpty() == false)
+            MBeanServerFactory.releaseMBeanServer(mbeanServer);
+      }
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      try
+      {
+         MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
+
+         cleanup(mbeanServer);
+      }
+      finally
+      {
+         super.tearDown();
+      }
+   }
+
+   protected void setStructureDeployer(StructuralDeployers deployers)
+   {
+      main.setStructuralDeployers(deployers);
+   }
+
+   protected void addDeployers(Deployer... deployers)
+   {
+      if (deployers != null)
+      {
+         DeployersImpl dc = (DeployersImpl)main.getDeployers();
+         for (Deployer deployer : deployers)
+            dc.addDeployer(deployer);
+      }
+   }
+
+   protected DeploymentUnit deploy(Deployment deployment) throws Exception
+   {
+      main.addDeployment(deployment);
+      main.process();
+      main.checkComplete();
+      return main.getDeploymentUnit(deployment.getName());
+   }
+
+   protected void undeploy(Deployment deployment) throws Exception
+   {
+      main.removeDeployment(deployment);
+      main.process();
+      main.checkComplete();
+   }
+
+   protected void addServiceMetaData(ServiceMetaData smd)
+   {
+      SMDParsingDeployer deployer = new SMDParsingDeployer(smd);
+      addDeployers(deployer);
+   }
+
+   private MBeanServer createMBeanServer() throws Exception
+   {
+      MBeanServer server;
+
+      String builder = System.getProperty(ServerConstants.MBEAN_SERVER_BUILDER_CLASS_PROPERTY, ServerConstants.DEFAULT_MBEAN_SERVER_BUILDER_CLASS);
+      System.setProperty(ServerConstants.MBEAN_SERVER_BUILDER_CLASS_PROPERTY, builder);
+
+      ClassLoader cl = Thread.currentThread().getContextClassLoader();
+      Class<?> clazz = cl.loadClass("java.lang.management.ManagementFactory");
+      Method method = clazz.getMethod("getPlatformMBeanServer");
+      Object[] args = null;
+      server = (MBeanServer)method.invoke(null, args);
+      // Tell the MBeanServerLocator to point to this mbeanServer
+      MBeanServerLocator.setJBoss(server);
+      return server;
+   }
+
+   /**
+    * Default setup with security manager enabled
+    *
+    * @param clazz the class
+    * @return the delegate
+    * @throws Exception for any error
+    */
+   public static AbstractTestDelegate getDelegate(Class<?> clazz) throws Exception
+   {
+      AbstractTestDelegate delegate = new AbstractTestDelegate(clazz);
+      delegate.enableSecurity = false; // security
+      return delegate;
+   }
+}
\ No newline at end of file

Modified: projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/DeployersTestSuite.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/DeployersTestSuite.java	2009-11-30 17:19:21 UTC (rev 97180)
+++ projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/DeployersTestSuite.java	2009-11-30 17:51:29 UTC (rev 97181)
@@ -42,6 +42,7 @@
       TestSuite suite = new TestSuite("Deployers Tests");
 
        suite.addTest(ServiceUnitNameTestCase.suite());
+       suite.addTest(ServiceDeploymentRegistryTestCase.suite());
 
       return suite;
    }

Copied: projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceDeploymentRegistryTestCase.java (from rev 96678, projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceUnitNameTestCase.java)
===================================================================
--- projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceDeploymentRegistryTestCase.java	                        (rev 0)
+++ projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceDeploymentRegistryTestCase.java	2009-11-30 17:51:29 UTC (rev 97181)
@@ -0,0 +1,104 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.system.deployers.test;
+
+import java.util.Collections;
+
+import javax.management.ObjectName;
+
+import junit.framework.Test;
+
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.deployers.client.plugins.deployment.AbstractDeployment;
+import org.jboss.deployers.client.spi.Deployment;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentContext;
+import org.jboss.deployers.structure.spi.DeploymentRegistry;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.structure.spi.StructuralDeployers;
+import org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext;
+import org.jboss.deployers.structure.spi.helpers.AbstractDeploymentRegistry;
+import org.jboss.system.metadata.ServiceConstructorMetaData;
+import org.jboss.system.metadata.ServiceMetaData;
+import org.jboss.test.system.deployers.support.Tester;
+
+/**
+ * Test component name usage.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class ServiceDeploymentRegistryTestCase extends AbstractServiceTest
+{
+   private DeploymentRegistry registry = new AbstractDeploymentRegistry();
+
+   public ServiceDeploymentRegistryTestCase(String name)
+   {
+      super(name);
+   }
+
+   public static Test suite()
+   {
+      return suite(ServiceDeploymentRegistryTestCase.class);
+   }
+
+   @Override
+   protected DeploymentRegistry getRegistry()
+   {
+      return registry;
+   }
+
+   public void testDeploymentRegistry() throws Exception
+   {
+      ServiceMetaData metaData = new ServiceMetaData();
+      ObjectName objectName = new ObjectName("jboss.system:service=Tester");
+      metaData.setObjectName(objectName);
+      metaData.setCode(Tester.class.getName());
+      metaData.setConstructor(new ServiceConstructorMetaData());
+      addServiceMetaData(metaData);
+
+      setStructureDeployer(new StructuralDeployers()
+      {
+         public DeploymentContext determineStructure(Deployment deployment) throws DeploymentException
+         {
+            return new AbstractDeploymentContext("SMD", "");
+         }
+      });
+
+      ControllerContext context = null;
+      Deployment deployment = new AbstractDeployment("SMD");
+      DeploymentUnit unit = deploy(deployment);
+      try
+      {
+         context = controller.getInstalledContext(objectName.getCanonicalName());
+         assertNotNull(context);
+         assertSame(unit, registry.getDeployment(context));
+         assertEquals(Collections.singleton(context), registry.getContexts(unit));
+      }
+      finally
+      {
+         undeploy(deployment);
+
+         assertNull(registry.getDeployment(context));
+         assertEmpty(registry.getContexts(unit));
+      }
+   }
+}
\ No newline at end of file

Modified: projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceUnitNameTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceUnitNameTestCase.java	2009-11-30 17:19:21 UTC (rev 97180)
+++ projects/jboss-deployers/trunk/deployers-jmx/src/test/java/org/jboss/test/system/deployers/test/ServiceUnitNameTestCase.java	2009-11-30 17:51:29 UTC (rev 97181)
@@ -21,42 +21,22 @@
  */
 package org.jboss.test.system.deployers.test;
 
-import java.lang.reflect.Method;
 import java.util.Collections;
-import java.util.Set;
 
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
 import javax.management.ObjectName;
 
 import junit.framework.Test;
 
-import org.jboss.dependency.plugins.AbstractController;
 import org.jboss.deployers.client.plugins.deployment.AbstractDeployment;
 import org.jboss.deployers.client.spi.Deployment;
 import org.jboss.deployers.client.spi.IncompleteDeploymentException;
-import org.jboss.deployers.plugins.deployers.DeployersImpl;
-import org.jboss.deployers.plugins.main.MainDeployerImpl;
 import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput;
 import org.jboss.deployers.structure.spi.DeploymentContext;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.structure.spi.StructuralDeployers;
 import org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext;
-import org.jboss.kernel.Kernel;
-import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
-import org.jboss.mx.server.ServerConstants;
-import org.jboss.mx.util.MBeanServerLocator;
-import org.jboss.system.ServiceController;
-import org.jboss.system.deployers.ServiceDeployer;
-import org.jboss.system.deployers.ServiceDeploymentDeployer;
 import org.jboss.system.metadata.ServiceConstructorMetaData;
 import org.jboss.system.metadata.ServiceDependencyMetaData;
-import org.jboss.system.metadata.ServiceDeployment;
 import org.jboss.system.metadata.ServiceMetaData;
-import org.jboss.test.AbstractSystemTest;
-import org.jboss.test.system.deployers.support.CLDeployer;
-import org.jboss.test.system.deployers.support.JmxCL;
 import org.jboss.test.system.deployers.support.Tester;
 
 /**
@@ -64,7 +44,7 @@
  *
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
  */
-public class ServiceUnitNameTestCase extends AbstractSystemTest
+public class ServiceUnitNameTestCase extends AbstractServiceTest
 {
    public ServiceUnitNameTestCase(String name)
    {
@@ -78,129 +58,36 @@
 
    public void testServiceDeployerComponentName() throws Exception
    {
-      SecurityManager sm = suspendSecurity();
-      try
+      ServiceMetaData metaData = new ServiceMetaData();
+      metaData.setObjectName(new ObjectName("jboss.system:service=Tester"));
+      metaData.setCode(Tester.class.getName());
+      metaData.setConstructor(new ServiceConstructorMetaData());
+      ServiceDependencyMetaData o = new ServiceDependencyMetaData();
+      o.setIDependOn("somenonexistant");
+      metaData.setDependencies(Collections.singletonList(o));
+      addServiceMetaData(metaData);
+
+      setStructureDeployer(new StructuralDeployers()
       {
-         MBeanServer mbeanServer = createMBeanServer("jboss");
-         try
+         public DeploymentContext determineStructure(Deployment deployment) throws DeploymentException
          {
-            ServiceController serviceController = new ServiceController();
-            ObjectName objectName = new ObjectName("jboss.system:service=ServiceController");
-            mbeanServer.registerMBean(serviceController, objectName);
-            try
-            {
-               ClassLoader loader = Thread.currentThread().getContextClassLoader();
-               mbeanServer.registerMBean(new JmxCL(loader), new ObjectName("jboss:service=defaultClassLoader"));
-
-               BasicBootstrap bootstrap = new BasicBootstrap();
-               bootstrap.run();
-               Kernel kernel = bootstrap.getKernel();
-               AbstractController controller = (AbstractController)kernel.getController();
-
-               serviceController.setMBeanServer(mbeanServer);
-               serviceController.setKernel(kernel);
-
-               MainDeployerImpl mainDeployer = new MainDeployerImpl();
-               mainDeployer.setStructuralDeployers(new StructuralDeployers()
-               {
-                  public DeploymentContext determineStructure(Deployment deployment) throws DeploymentException
-                  {
-                     return new AbstractDeploymentContext("SMD", "");
-                  }
-               });
-               DeployersImpl deployersImpl = new DeployersImpl(controller);
-               deployersImpl.addDeployer(new ServiceDeployer(serviceController));
-               deployersImpl.addDeployer(new ServiceDeploymentDeployer());
-               deployersImpl.addDeployer(new CLDeployer());
-               deployersImpl.addDeployer(new SMDParsingDeployer());
-               mainDeployer.setDeployers(deployersImpl);
-
-               Deployment deployment = new AbstractDeployment("SMD");
-               mainDeployer.addDeployment(deployment);
-               mainDeployer.process();
-
-               mainDeployer.checkComplete(deployment);
-               fail("Should not be here");
-            }
-            catch (Exception e)
-            {
-               assertInstanceOf(e, IncompleteDeploymentException.class);               
-            }
-            finally
-            {
-               mbeanServer.unregisterMBean(objectName);
-            }
+            return new AbstractDeploymentContext("SMD", "");
          }
-         finally
-         {
-            MBeanServerFactory.releaseMBeanServer(mbeanServer);
-         }
-      }
-      finally
-      {
-         resumeSecurity(sm);
-      }
-   }
+      });
 
-   private class SMDParsingDeployer extends AbstractParsingDeployerWithOutput<ServiceDeployment>
-   {
-      public SMDParsingDeployer()
+      Deployment deployment = new AbstractDeployment("SMD");
+      try
       {
-         super(ServiceDeployment.class);
+         deploy(deployment);
+         fail("Should not be here");
       }
-
-      protected ServiceDeployment getServiceDeployment() throws Exception
+      catch (Exception e)
       {
-         ServiceMetaData metaData = new ServiceMetaData();
-         metaData.setObjectName(new ObjectName("jboss.system:service=Tester"));
-         metaData.setCode(Tester.class.getName());
-         metaData.setConstructor(new ServiceConstructorMetaData());
-         ServiceDependencyMetaData o = new ServiceDependencyMetaData();
-         o.setIDependOn("somenonexistant");
-         metaData.setDependencies(Collections.singletonList(o));
-
-         ServiceDeployment serviceDeployment = new ServiceDeployment();
-         serviceDeployment.setServices(Collections.singletonList(metaData));
-         return serviceDeployment;
+         assertInstanceOf(e, IncompleteDeploymentException.class);
       }
-
-      @Override
-      protected ServiceDeployment parse(DeploymentUnit arg0, Set<String> arg1, ServiceDeployment arg2) throws Exception
+      finally
       {
-         return getServiceDeployment();
+         undeploy(deployment);
       }
-
-      @Override
-      protected ServiceDeployment parse(DeploymentUnit arg0, Set<String> arg1, String arg2, ServiceDeployment arg3) throws Exception
-      {
-         return getServiceDeployment();
-      }
-
-      protected ServiceDeployment parse(DeploymentUnit deploymentUnit, String s, ServiceDeployment deployment) throws Exception
-      {
-         return getServiceDeployment();
-      }
-
-      protected ServiceDeployment parse(DeploymentUnit deploymentUnit, String s, String s1, ServiceDeployment deployment) throws Exception
-      {
-         return getServiceDeployment();
-      }
    }
-
-   private MBeanServer createMBeanServer(String domain) throws Exception
-   {
-      MBeanServer server;
-
-      String builder = System.getProperty(ServerConstants.MBEAN_SERVER_BUILDER_CLASS_PROPERTY, ServerConstants.DEFAULT_MBEAN_SERVER_BUILDER_CLASS);
-      System.setProperty(ServerConstants.MBEAN_SERVER_BUILDER_CLASS_PROPERTY, builder);
-
-      ClassLoader cl = Thread.currentThread().getContextClassLoader();
-      Class<?> clazz = cl.loadClass("java.lang.management.ManagementFactory");
-      Method method = clazz.getMethod("getPlatformMBeanServer");
-      Object[] args = null;
-      server = (MBeanServer)method.invoke(null, args);
-      // Tell the MBeanServerLocator to point to this mbeanServer
-      MBeanServerLocator.setJBoss(server);
-      return server;
-   }
 }




More information about the jboss-cvs-commits mailing list