[jboss-cvs] JBossAS SVN: r58881 - trunk/testsuite/src/main/org/jboss/test/deployment

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 6 16:01:13 EST 2006


Author: scott.stark at jboss.org
Date: 2006-12-06 16:01:09 -0500 (Wed, 06 Dec 2006)
New Revision: 58881

Added:
   trunk/testsuite/src/main/org/jboss/test/deployment/BaseDeploymentTestCase.java
   trunk/testsuite/src/main/org/jboss/test/deployment/JMXDeploymentTestCase.java
   trunk/testsuite/src/main/org/jboss/test/deployment/StreamingDeploymentTestCase.java
Removed:
   trunk/testsuite/src/main/org/jboss/test/deployment/DeploymentTestCase.java
Log:
Update to support both jmx and remote targetType tests

Copied: trunk/testsuite/src/main/org/jboss/test/deployment/BaseDeploymentTestCase.java (from rev 58810, trunk/testsuite/src/main/org/jboss/test/deployment/DeploymentTestCase.java)
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/deployment/DeploymentTestCase.java	2006-12-01 19:20:44 UTC (rev 58810)
+++ trunk/testsuite/src/main/org/jboss/test/deployment/BaseDeploymentTestCase.java	2006-12-06 21:01:09 UTC (rev 58881)
@@ -0,0 +1,420 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.deployment;
+
+import org.jboss.deployment.spi.DeploymentManagerImpl;
+import org.jboss.deployment.spi.DeploymentMetaData;
+import org.jboss.deployment.spi.JarUtils;
+import org.jboss.deployment.spi.TargetModuleIDImpl;
+import org.jboss.deployment.spi.factories.DeploymentFactoryImpl;
+import org.jboss.test.JBossTestCase;
+import org.jboss.util.UnreachableStatementException;
+
+import javax.ejb.CreateException;
+import javax.enterprise.deploy.shared.ModuleType;
+import javax.enterprise.deploy.shared.StateType;
+import javax.enterprise.deploy.shared.factories.DeploymentFactoryManager;
+import javax.enterprise.deploy.spi.DeploymentManager;
+import javax.enterprise.deploy.spi.Target;
+import javax.enterprise.deploy.spi.TargetModuleID;
+import javax.enterprise.deploy.spi.factories.DeploymentFactory;
+import javax.enterprise.deploy.spi.status.DeploymentStatus;
+import javax.enterprise.deploy.spi.status.ProgressObject;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.rmi.PortableRemoteObject;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URI;
+import java.net.URL;
+import java.rmi.RemoteException;
+import java.util.jar.JarOutputStream;
+
+/** 
+ * Deployment API JSR-88 tests
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @author Fabiano C. de Oliveira (JBAS-1995)
+ * @author Scott.stark at jboss.org
+ * @version $Revision$
+ */
+public class BaseDeploymentTestCase extends JBossTestCase
+{
+   private static final String WAR_JBOSS_FILE = "WEB-INF/jboss-web.xml";
+
+   private static final String JAR_JBOSS_FILE = "META-INF/jboss.xml";
+
+   private static final String EAR_JBOSS_FILE = "META-INF/jboss-app.xml";
+
+   private DeploymentFactory factory;
+   private String targetType;
+
+   public BaseDeploymentTestCase(String name, String targetType)
+   {
+      super(name);
+      this.targetType = targetType;
+   }
+
+   protected String getTargetDescription()
+   {
+      return "No target specified";
+   }
+
+   /** Get the DeploymentManager
+    */
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+      DeploymentFactoryImpl.register();
+      DeploymentFactoryManager dfManager = DeploymentFactoryManager.getInstance();
+      DeploymentFactory[] factories = dfManager.getDeploymentFactories();
+      assertTrue("No DeploymentFactory available", factories.length > 0);
+      factory = factories[0];
+   }
+
+   /** Check DeploymentManager
+    */
+   public void testDeploymentManager() throws Exception
+   {
+      DeploymentManager manager = getDeploymentManager();
+
+      assertNotNull("No deployment manager", manager);
+
+      Target target = manager.getTargets()[0];
+      assertEquals(getTargetDescription(), target.getDescription());
+   }
+
+   /** Distribute a web app
+    */
+   public void testDistributeWebApp() throws Exception
+   {
+      ProgressObject progress = jsr88Deployment("deployment-web.war");
+      try
+      {
+         assertServletAccess("custom-context");
+      }
+      finally
+      {
+         jsr88Undeploy(progress.getResultTargetModuleIDs());
+      }
+      try
+      {
+         assertServletAccess("custom-context");
+         fail("Test deployment not undeployed");
+      }
+      catch (IOException e)
+      {
+         // ignore
+      }
+   }
+
+   /** 
+    * Distribute a EJB app
+    */
+   public void testDistributeEjbApp() throws Exception
+   {
+      ProgressObject progress = jsr88Deployment("deployment-ejb.jar");
+      try
+      {
+          assertEjbEchoAccess();
+      }
+      finally
+      {
+          jsr88Undeploy(progress.getResultTargetModuleIDs());
+      }
+      try
+      {
+         assertEjbEchoAccess();
+         fail("Test deployment not undeployed");
+      }
+      catch (Exception e)
+      {
+         // ignore
+      }
+   }
+
+   public void testDistributeEARApp() throws Exception
+   {
+      ProgressObject progress = jsr88Deployment("deployment-ear.ear");
+      try
+      {
+         assertServletAccess("custom-context");
+         assertEjbEchoAccess();
+      }
+      finally
+      {
+         jsr88Undeploy(progress.getResultTargetModuleIDs());
+      }
+      try
+      {
+         assertServletAccess("custom-context");
+         fail("Test deployment not undeployed");
+      }
+      catch (Exception e)
+      {
+         // ignore
+      }
+
+      try
+      {
+         assertEjbEchoAccess();
+         fail("Test deployment not undeployed");
+      }
+      catch (Exception e)
+      {
+         // ignore
+      }
+   }
+
+   /**
+    * 
+    * @throws Exception
+    */ 
+   public void testListStartStopModules() throws Exception
+   {
+      TargetModuleIDImpl child = null;
+      TargetModuleIDImpl parent = null;
+
+      // Get the deployment manager and the distribution targets
+      DeploymentManager manager = getDeploymentManager();
+      Target[] targets = manager.getTargets();
+      assertEquals(1, targets.length);
+
+      TargetModuleID[] modules = manager.getRunningModules(ModuleType.EAR, manager.getTargets());
+      assertNull("no modules Available", modules);
+
+      ProgressObject parentProgress = jsr88Deployment("deployment-ear.ear");
+      assertServletAccess("custom-context");
+      assertEjbEchoAccess();
+
+      modules = manager.getRunningModules(ModuleType.EAR, manager.getTargets());
+      assertNotNull(modules);
+      assertEquals("one EAR module in the server", modules.length, 1);
+
+      parent = (TargetModuleIDImpl) modules[0];
+      assertTrue("wrong state", parent.isRunning());
+      assertEquals("wrong type", parent.getModuleType(), ModuleType.EAR);
+      assertEquals("EAR module have a jar and a war", parent.getChildTargetModuleID().length, 2);
+
+      child = (TargetModuleIDImpl) parent.getChildTargetModuleID()[0];
+      assertTrue("wrong state", child.isRunning());
+      assertTrue("wrong type", child.getModuleType().equals(ModuleType.EJB) || child.getModuleType().equals(ModuleType.WAR));
+      assertEquals("child have no child", child.getChildTargetModuleID().length, 0);
+
+      child = (TargetModuleIDImpl) parent.getChildTargetModuleID()[1];
+      assertTrue("wrong state", child.isRunning());
+      assertTrue("wrong type " + child.getModuleType(), child.getModuleType().equals(ModuleType.EJB) || child.getModuleType().equals(ModuleType.WAR));
+      assertEquals("child have no child", child.getChildTargetModuleID().length, 0);
+
+      parentProgress = manager.stop(new TargetModuleID[] { parent });
+      waitForCompletion(parentProgress.getDeploymentStatus());
+
+      modules = manager.getNonRunningModules(ModuleType.EAR, manager.getTargets());
+      assertNotNull(modules);
+      assertEquals("one EAR module in the server", modules.length, 1);
+
+      parent = (TargetModuleIDImpl) modules[0];
+      assertFalse("wrong state", parent.isRunning());
+      assertEquals("wrong type", parent.getModuleType(), ModuleType.EAR);
+      assertEquals("EAR module have a jar and a war", parent.getChildTargetModuleID().length, 2);
+
+      parentProgress = manager.start(new TargetModuleID[]{ parent });
+      waitForCompletion(parentProgress.getDeploymentStatus());
+
+      modules = manager.getRunningModules(ModuleType.EAR, manager.getTargets());
+      assertNotNull(modules);
+      assertEquals("one EAR module in the server", modules.length, 1);
+
+      parent = (TargetModuleIDImpl) modules[0];
+      assertTrue("wrong state", parent.isRunning());
+      assertEquals("wrong type", parent.getModuleType(), ModuleType.EAR);
+      assertEquals("EAR module have a jar and a war", parent.getChildTargetModuleID().length, 2);
+      parentProgress = manager.undeploy(new TargetModuleID[]{ parent });
+      waitForCompletion(parentProgress.getDeploymentStatus());
+
+      modules = manager.getAvailableModules(ModuleType.EAR, manager.getTargets());
+      assertNull("EAR must not be available", modules);
+
+      try
+      {
+         assertServletAccess("custom-context");
+         fail("Test deployment not undeployed");
+      }
+      catch (Exception e)
+      {
+         // ignore
+      }
+
+      try
+      {
+         assertEjbEchoAccess();
+         fail("Test deployment not undeployed");
+      }
+      catch (Exception e)
+      {
+         // ignore
+      }
+   }
+
+   /**
+    * Obtain a DeploymentManager using a deployURI of the form
+    * http://org.jboss.deployment/jsr88?targetType=targetType
+    * Valid targetType values are:
+    * jmx - Use the JMXTarget RMIAdaptor based deployment target
+    * remote - Use the StreamingTarget remoting based deployment target
+    * @return JSR88 DeploymentManager
+    * @throws Exception
+    */
+   protected DeploymentManager getDeploymentManager()
+      throws Exception
+   {
+      // Get the deployment manager and the distribution targets
+      String mgrURI = DeploymentManagerImpl.DEPLOYER_URI+"?targetType="+targetType;
+      DeploymentManager manager = factory.getDeploymentManager(mgrURI, null, null);
+      return manager;
+   }
+   private void jsr88Undeploy(TargetModuleID[] resultTargetModuleIDs) throws Exception
+   {
+      DeploymentManager manager = getDeploymentManager();
+      Target[] targets = manager.getTargets();
+      assertEquals(1, targets.length);
+
+      ProgressObject progress = manager.stop(resultTargetModuleIDs);
+      DeploymentStatus status = progress.getDeploymentStatus();
+      waitForCompletion(status);
+
+      // Check the webapp is undeployed
+      assertEquals(status.getMessage(), StateType.COMPLETED, status.getState());
+
+      progress = manager.undeploy(resultTargetModuleIDs);
+      status = progress.getDeploymentStatus();
+      waitForCompletion(status);
+      assertEquals(status.getMessage(), StateType.COMPLETED, status.getState());
+   }
+
+   private ProgressObject jsr88Deployment(String module)
+      throws Exception
+   {
+      // Get the deployment manager and the distribution targets
+      DeploymentManager manager = getDeploymentManager();
+      Target[] targets = manager.getTargets();
+      assertEquals(1, targets.length);
+
+      File deploymentPlan = createDeploymentPlan(module);
+
+      // Get a pointer to the plain web archive
+      log.debug("module=" + module);
+      File moduleArchive = new File(new URI(getDeployURL(module).toString()));
+      assertTrue(moduleArchive.exists());
+
+      // Deploy the test war
+      ProgressObject progress = manager.distribute(targets, moduleArchive, deploymentPlan);
+      DeploymentStatus status = progress.getDeploymentStatus();
+      waitForCompletion(status);
+
+      assertEquals(status.getMessage(), StateType.COMPLETED, status.getState());
+
+      TargetModuleID[] moduleIDs = progress.getResultTargetModuleIDs();
+      progress = manager.start(moduleIDs);
+      status = progress.getDeploymentStatus();
+      waitForCompletion(status);
+
+      return progress;
+   }
+
+   private void assertEjbEchoAccess() throws NamingException, RemoteException, CreateException
+   {
+      InitialContext initial = new InitialContext();
+      Object obj = initial.lookup("deployment/test/Echo");
+      EchoHome home = (EchoHome) PortableRemoteObject.narrow(obj, EchoHome.class);
+      Echo echo = home.create();
+
+      assertEquals("Wrong EJB return", "Hello!", echo.echo("Hello!"));
+   }
+
+   private void waitForCompletion(DeploymentStatus status) throws InterruptedException
+   {
+      // wait for the deployment to finish
+      while (StateType.RUNNING == status.getState())
+         Thread.sleep(100);
+   }
+
+   private void assertServletAccess(String context) throws IOException
+   {
+      // Check that we can access the servlet
+      URL servletURL = new URL("http://" + getServerHost() + ":8080/" + context);
+      BufferedReader br = new BufferedReader(new InputStreamReader(servletURL.openStream()));
+      String message = br.readLine();
+      assertEquals("Hello World!", message);
+   }
+
+   private File createDeploymentPlan(String deploymentFile) throws Exception
+   {
+      String[] strs = null;
+
+      // Create temp file for deployment plan
+      File deploymentPlan = File.createTempFile("deploymentplan", ".zip");
+      deploymentPlan.deleteOnExit();
+
+      String jbossFile = getJBossFile(deploymentFile);
+      String resourcedir = getResourceURL("deployment/" + jbossFile);
+      File jbossDescriptor = new File(new URI(resourcedir));
+      assertTrue(jbossDescriptor.exists());
+
+      JarOutputStream jos = new JarOutputStream(new FileOutputStream(deploymentPlan));
+      JarUtils.addJarEntry(jos, "!/" + jbossFile, new FileInputStream(jbossDescriptor));
+
+      // Setup deployment plan meta data with propriatary descriptor
+      DeploymentMetaData metaData = new DeploymentMetaData(deploymentFile);
+
+      strs = jbossFile.split("/");
+      metaData.addEntry(deploymentFile, strs[strs.length - 1]);
+
+      // Add the meta data to the deployment plan
+      String metaStr = metaData.toXMLString();
+
+      JarUtils.addJarEntry(jos, DeploymentMetaData.ENTRY_NAME, new ByteArrayInputStream(metaStr.getBytes()));
+      jos.flush();
+      jos.close();
+
+      return deploymentPlan;
+   }
+
+   private String getJBossFile(String deploymentFile)
+   {
+      if (deploymentFile.endsWith(".war"))
+         return WAR_JBOSS_FILE;
+      else if (deploymentFile.endsWith(".jar"))
+         return JAR_JBOSS_FILE;
+      else if (deploymentFile.endsWith(".ear"))
+         return EAR_JBOSS_FILE;
+      else
+         fail("Wrong J2EE Module found...");
+      throw new UnreachableStatementException();
+   }
+}

Deleted: trunk/testsuite/src/main/org/jboss/test/deployment/DeploymentTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/deployment/DeploymentTestCase.java	2006-12-06 20:50:08 UTC (rev 58880)
+++ trunk/testsuite/src/main/org/jboss/test/deployment/DeploymentTestCase.java	2006-12-06 21:01:09 UTC (rev 58881)
@@ -1,393 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt 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.deployment;
-
-import org.jboss.deployment.spi.DeploymentManagerImpl;
-import org.jboss.deployment.spi.DeploymentMetaData;
-import org.jboss.deployment.spi.JarUtils;
-import org.jboss.deployment.spi.TargetModuleIDImpl;
-import org.jboss.test.JBossTestCase;
-import org.jboss.util.UnreachableStatementException;
-
-import javax.ejb.CreateException;
-import javax.enterprise.deploy.shared.ModuleType;
-import javax.enterprise.deploy.shared.StateType;
-import javax.enterprise.deploy.shared.factories.DeploymentFactoryManager;
-import javax.enterprise.deploy.spi.DeploymentManager;
-import javax.enterprise.deploy.spi.Target;
-import javax.enterprise.deploy.spi.TargetModuleID;
-import javax.enterprise.deploy.spi.factories.DeploymentFactory;
-import javax.enterprise.deploy.spi.status.DeploymentStatus;
-import javax.enterprise.deploy.spi.status.ProgressObject;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.rmi.PortableRemoteObject;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URI;
-import java.net.URL;
-import java.rmi.RemoteException;
-import java.util.jar.JarOutputStream;
-
-/** 
- * Deployment API JSR-88 tests
- *
- * @author Thomas.Diesler at jboss.org
- * @author Fabiano C. de Oliveira (JBAS-1995)
- * @version $Revision$
- */
-public class DeploymentTestCase extends JBossTestCase
-{
-   private static final String WAR_JBOSS_FILE = "WEB-INF/jboss-web.xml";
-
-   private static final String JAR_JBOSS_FILE = "META-INF/jboss.xml";
-
-   private static final String EAR_JBOSS_FILE = "META-INF/jboss-app.xml";
-
-   private DeploymentFactory factory;
-
-   public DeploymentTestCase(String name)
-   {
-      super(name);
-   }
-
-   /** Get the DeploymentManager
-    */
-   protected void setUp() throws Exception
-   {
-      super.setUp();
-      DeploymentFactoryManager dfManager = DeploymentFactoryManager.getInstance();
-      DeploymentFactory[] factories = dfManager.getDeploymentFactories();
-      assertTrue("No DeploymentFactory available", factories.length > 0);
-      factory = factories[0];
-   }
-
-   /** Check DeploymentManager
-    */
-   public void testDeploymentManager() throws Exception
-   {
-      String uri = DeploymentManagerImpl.DEPLOYER_URI;
-      DeploymentManager manager = factory.getDeploymentManager(uri, null, null);
-      assertNotNull("No deployment manager", manager);
-
-      Target target = manager.getTargets()[0];
-      assertEquals("JBoss JMX deployment target", target.getDescription());
-   }
-
-   /** Distribute a web app
-    */
-   public void testDistributeWebApp() throws Exception
-   {
-      ProgressObject progress = jsr88Deployment("deployment-web.war");
-      try
-      {
-         assertServletAccess("custom-context");
-      }
-      finally
-      {
-         jsr88Undeploy(progress.getResultTargetModuleIDs());
-      }
-      try
-      {
-         assertServletAccess("custom-context");
-         fail("Test deployment not undeployed");
-      }
-      catch (IOException e)
-      {
-         // ignore
-      }
-   }
-
-   /** 
-    * Distribute a EJB app
-    */
-   public void testDistributeEjbApp() throws Exception
-   {
-      ProgressObject progress = jsr88Deployment("deployment-ejb.jar");
-      try
-      {
-          assertEjbEchoAccess();
-      }
-      finally
-      {
-          jsr88Undeploy(progress.getResultTargetModuleIDs());
-      }
-      try
-      {
-         assertEjbEchoAccess();
-         fail("Test deployment not undeployed");
-      }
-      catch (Exception e)
-      {
-         // ignore
-      }
-   }
-
-   public void testDistributeEARApp() throws Exception
-   {
-      ProgressObject progress = jsr88Deployment("deployment-ear.ear");
-      try
-      {
-         assertServletAccess("custom-context");
-         assertEjbEchoAccess();
-      }
-      finally
-      {
-         jsr88Undeploy(progress.getResultTargetModuleIDs());
-      }
-      try
-      {
-         assertServletAccess("custom-context");
-         fail("Test deployment not undeployed");
-      }
-      catch (Exception e)
-      {
-         // ignore
-      }
-
-      try
-      {
-         assertEjbEchoAccess();
-         fail("Test deployment not undeployed");
-      }
-      catch (Exception e)
-      {
-         // ignore
-      }
-   }
-
-   /**
-    * 
-    * @throws Exception
-    */ 
-   public void testListStartStopModules() throws Exception
-   {
-      TargetModuleIDImpl child = null;
-      TargetModuleIDImpl parent = null;
-
-      // Get the deployment manager and the distribution targets
-      DeploymentManager manager = factory.getDeploymentManager(DeploymentManagerImpl.DEPLOYER_URI, null, null);
-      Target[] targets = manager.getTargets();
-      assertEquals(1, targets.length);
-
-      TargetModuleID[] modules = manager.getRunningModules(ModuleType.EAR, manager.getTargets());
-      assertNull("no modules Available", modules);
-
-      ProgressObject parentProgress = jsr88Deployment("deployment-ear.ear");
-      assertServletAccess("custom-context");
-      assertEjbEchoAccess();
-
-      modules = manager.getRunningModules(ModuleType.EAR, manager.getTargets());
-      assertNotNull(modules);
-      assertEquals("one EAR module in the server", modules.length, 1);
-
-      parent = (TargetModuleIDImpl) modules[0];
-      assertTrue("wrong state", parent.isRunning());
-      assertEquals("wrong type", parent.getModuleType(), ModuleType.EAR);
-      assertEquals("EAR module have a jar and a war", parent.getChildTargetModuleID().length, 2);
-
-      child = (TargetModuleIDImpl) parent.getChildTargetModuleID()[0];
-      assertTrue("wrong state", child.isRunning());
-      assertTrue("wrong type", child.getModuleType().equals(ModuleType.EJB) || child.getModuleType().equals(ModuleType.WAR));
-      assertEquals("child have no child", child.getChildTargetModuleID().length, 0);
-
-      child = (TargetModuleIDImpl) parent.getChildTargetModuleID()[1];
-      assertTrue("wrong state", child.isRunning());
-      assertTrue("wrong type " + child.getModuleType(), child.getModuleType().equals(ModuleType.EJB) || child.getModuleType().equals(ModuleType.WAR));
-      assertEquals("child have no child", child.getChildTargetModuleID().length, 0);
-
-      parentProgress = manager.stop(new TargetModuleID[] { parent });
-      waitForCompletion(parentProgress.getDeploymentStatus());
-
-      modules = manager.getNonRunningModules(ModuleType.EAR, manager.getTargets());
-      assertNotNull(modules);
-      assertEquals("one EAR module in the server", modules.length, 1);
-
-      parent = (TargetModuleIDImpl) modules[0];
-      assertFalse("wrong state", parent.isRunning());
-      assertEquals("wrong type", parent.getModuleType(), ModuleType.EAR);
-      assertEquals("EAR module have a jar and a war", parent.getChildTargetModuleID().length, 2);
-
-      parentProgress = manager.start(new TargetModuleID[]{ parent });
-      waitForCompletion(parentProgress.getDeploymentStatus());
-
-      modules = manager.getRunningModules(ModuleType.EAR, manager.getTargets());
-      assertNotNull(modules);
-      assertEquals("one EAR module in the server", modules.length, 1);
-
-      parent = (TargetModuleIDImpl) modules[0];
-      assertTrue("wrong state", parent.isRunning());
-      assertEquals("wrong type", parent.getModuleType(), ModuleType.EAR);
-      assertEquals("EAR module have a jar and a war", parent.getChildTargetModuleID().length, 2);
-      parentProgress = manager.undeploy(new TargetModuleID[]{ parent });
-      waitForCompletion(parentProgress.getDeploymentStatus());
-
-      modules = manager.getAvailableModules(ModuleType.EAR, manager.getTargets());
-      assertNull("EAR must not be available", modules);
-
-      try
-      {
-         assertServletAccess("custom-context");
-         fail("Test deployment not undeployed");
-      }
-      catch (Exception e)
-      {
-         // ignore
-      }
-
-      try
-      {
-         assertEjbEchoAccess();
-         fail("Test deployment not undeployed");
-      }
-      catch (Exception e)
-      {
-         // ignore
-      }
-   }
-
-   private void jsr88Undeploy(TargetModuleID[] resultTargetModuleIDs) throws Exception
-   {
-      // Get the deployment manager and the distribution targets
-      DeploymentManager manager = factory.getDeploymentManager(DeploymentManagerImpl.DEPLOYER_URI, null, null);
-      Target[] targets = manager.getTargets();
-      assertEquals(1, targets.length);
-
-      ProgressObject progress = manager.stop(resultTargetModuleIDs);
-      DeploymentStatus status = progress.getDeploymentStatus();
-      waitForCompletion(status);
-
-      // Check the webapp is undeployed
-      assertEquals(status.getMessage(), StateType.COMPLETED, status.getState());
-
-      progress = manager.undeploy(resultTargetModuleIDs);
-      status = progress.getDeploymentStatus();
-      waitForCompletion(status);
-      assertEquals(status.getMessage(), StateType.COMPLETED, status.getState());
-   }
-
-   private ProgressObject jsr88Deployment(String module) throws Exception
-   {
-      // Get the deployment manager and the distribution targets
-      DeploymentManager manager = factory.getDeploymentManager(DeploymentManagerImpl.DEPLOYER_URI, null, null);
-      Target[] targets = manager.getTargets();
-      assertEquals(1, targets.length);
-
-      File deploymentPlan = createDeploymentPlan(module);
-
-      // Get a pointer to the plain web archive
-      log.debug("module=" + module);
-      File moduleArchive = new File(new URI(getDeployURL(module).toString()));
-      assertTrue(moduleArchive.exists());
-
-      // Deploy the test war
-      ProgressObject progress = manager.distribute(targets, moduleArchive, deploymentPlan);
-      DeploymentStatus status = progress.getDeploymentStatus();
-      waitForCompletion(status);
-
-      assertEquals(status.getMessage(), StateType.COMPLETED, status.getState());
-
-      TargetModuleID[] moduleIDs = progress.getResultTargetModuleIDs();
-      progress = manager.start(moduleIDs);
-      status = progress.getDeploymentStatus();
-      waitForCompletion(status);
-
-      return progress;
-   }
-
-   private void assertEjbEchoAccess() throws NamingException, RemoteException, CreateException
-   {
-      InitialContext initial = new InitialContext();
-      Object obj = initial.lookup("deployment/test/Echo");
-      EchoHome home = (EchoHome) PortableRemoteObject.narrow(obj, EchoHome.class);
-      Echo echo = home.create();
-
-      assertEquals("Wrong EJB return", "Hello!", echo.echo("Hello!"));
-   }
-
-   private void waitForCompletion(DeploymentStatus status) throws InterruptedException
-   {
-      // wait for the deployment to finish
-      while (StateType.RUNNING == status.getState())
-         Thread.sleep(100);
-   }
-
-   private void assertServletAccess(String context) throws IOException
-   {
-      // Check that we can access the servlet
-      URL servletURL = new URL("http://" + getServerHost() + ":8080/" + context);
-      BufferedReader br = new BufferedReader(new InputStreamReader(servletURL.openStream()));
-      String message = br.readLine();
-      assertEquals("Hello World!", message);
-   }
-
-   private File createDeploymentPlan(String deploymentFile) throws Exception
-   {
-      String[] strs = null;
-
-      // Create temp file for deployment plan
-      File deploymentPlan = File.createTempFile("deploymentplan", ".zip");
-      deploymentPlan.deleteOnExit();
-
-      String jbossFile = getJBossFile(deploymentFile);
-      String resourcedir = getResourceURL("deployment/" + jbossFile);
-      File jbossDescriptor = new File(new URI(resourcedir));
-      assertTrue(jbossDescriptor.exists());
-
-      JarOutputStream jos = new JarOutputStream(new FileOutputStream(deploymentPlan));
-      JarUtils.addJarEntry(jos, "!/" + jbossFile, new FileInputStream(jbossDescriptor));
-
-      // Setup deployment plan meta data with propriatary descriptor
-      DeploymentMetaData metaData = new DeploymentMetaData(deploymentFile);
-
-      strs = jbossFile.split("/");
-      metaData.addEntry(deploymentFile, strs[strs.length - 1]);
-
-      // Add the meta data to the deployment plan
-      String metaStr = metaData.toXMLString();
-
-      JarUtils.addJarEntry(jos, DeploymentMetaData.ENTRY_NAME, new ByteArrayInputStream(metaStr.getBytes()));
-      jos.flush();
-      jos.close();
-
-      return deploymentPlan;
-   }
-
-   private String getJBossFile(String deploymentFile)
-   {
-      if (deploymentFile.endsWith(".war"))
-         return WAR_JBOSS_FILE;
-      else if (deploymentFile.endsWith(".jar"))
-         return JAR_JBOSS_FILE;
-      else if (deploymentFile.endsWith(".ear"))
-         return EAR_JBOSS_FILE;
-      else
-         fail("Wrong J2EE Module found...");
-      throw new UnreachableStatementException();
-   }
-}

Added: trunk/testsuite/src/main/org/jboss/test/deployment/JMXDeploymentTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/deployment/JMXDeploymentTestCase.java	2006-12-06 20:50:08 UTC (rev 58880)
+++ trunk/testsuite/src/main/org/jboss/test/deployment/JMXDeploymentTestCase.java	2006-12-06 21:01:09 UTC (rev 58881)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.deployment;
+
+import org.jboss.deployment.spi.JMXTarget;
+
+/**
+ * JSR88 deployment tests using the JMXTarget, targetType=jmx
+ * javax.enterprise.deploy.spi.Target implemention.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision:$
+ */
+public class JMXDeploymentTestCase extends BaseDeploymentTestCase
+{
+   public JMXDeploymentTestCase(String name)
+   {
+      super(name, "jmx");
+   }
+
+   protected String getTargetDescription()
+   {
+      return JMXTarget.DESCRIPTION;
+   }
+
+}

Added: trunk/testsuite/src/main/org/jboss/test/deployment/StreamingDeploymentTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/deployment/StreamingDeploymentTestCase.java	2006-12-06 20:50:08 UTC (rev 58880)
+++ trunk/testsuite/src/main/org/jboss/test/deployment/StreamingDeploymentTestCase.java	2006-12-06 21:01:09 UTC (rev 58881)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.deployment;
+
+import org.jboss.deployment.remoting.StreamingTarget;
+
+/**
+ * JSR88 deployment tests using the StreamingTarget, targetType=remote
+ * javax.enterprise.deploy.spi.Target implemention.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision:$
+ */
+public class StreamingDeploymentTestCase extends BaseDeploymentTestCase
+{
+   public StreamingDeploymentTestCase(String name)
+   {
+      super(name, "remote");
+   }
+
+   protected String getTargetDescription()
+   {
+      return StreamingTarget.DESCRIPTION;
+   }
+
+}




More information about the jboss-cvs-commits mailing list