[jboss-cvs] JBossAS SVN: r98984 - in branches/JBPAPP_5_0: testsuite/src/main/org/jboss/test/deployers/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 4 08:39:26 EST 2010


Author: emuckenhuber
Date: 2010-01-04 08:39:26 -0500 (Mon, 04 Jan 2010)
New Revision: 98984

Added:
   branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/deployers/test/LegacyDeploymentScannerUnitTestCase.java
Modified:
   branches/JBPAPP_5_0/profileservice/src/main/org/jboss/profileservice/management/upload/remoting/AbstractDeployHandler.java
Log:
[JBPAPP-3324]

Modified: branches/JBPAPP_5_0/profileservice/src/main/org/jboss/profileservice/management/upload/remoting/AbstractDeployHandler.java
===================================================================
--- branches/JBPAPP_5_0/profileservice/src/main/org/jboss/profileservice/management/upload/remoting/AbstractDeployHandler.java	2010-01-04 13:35:41 UTC (rev 98983)
+++ branches/JBPAPP_5_0/profileservice/src/main/org/jboss/profileservice/management/upload/remoting/AbstractDeployHandler.java	2010-01-04 13:39:26 UTC (rev 98984)
@@ -105,7 +105,17 @@
       if(names == null || names.length == 0)
          return new String[0];
       
-      return deploymentRepository.getRepositoryNames(names);
+      ArrayList<String> resolvedNames = new ArrayList<String>();
+      for(ProfileKey key : this.profileRepository.getProfileKeys())
+      {
+         DeploymentRepository repository = this.profileRepository.getProfileDeploymentRepository(key);
+         String[] repositoryNames = repository.getRepositoryNames(names);
+         if(repositoryNames != null && repositoryNames.length > 0)
+         {
+            resolvedNames.addAll(Arrays.asList(repositoryNames));
+         }
+      }
+      return resolvedNames.toArray(new String[resolvedNames.size()]);
    }
    
    public String getSecurityDomain()
@@ -159,6 +169,27 @@
    }
    
    /**
+    * Try to resolve a deployment repository based on the deployment name.
+    * 
+    * @param name the deployment name
+    * @param defaultKey the fallback profile key
+    * @return the resolved deployment repository
+    * @throws Exception
+    */
+   protected DeploymentRepository resolveDeploymentRepository(String name, ProfileKey defaultKey) throws Exception
+   {
+      for(ProfileKey key : this.profileRepository.getProfileKeys())
+      {
+         DeploymentRepository repository = this.profileRepository.getProfileDeploymentRepository(key);
+         if(repository.getDeploymentNames().contains(name))
+         {
+            return repository;
+         }
+      }
+      return this.profileRepository.getProfileDeploymentRepository(defaultKey);
+   }
+   
+   /**
     * Handle a DeploymentManager invocation other than distribute
     * 
     * @param request - the remoting invocation
@@ -280,12 +311,12 @@
    protected void start(DeploymentID dtID) throws Exception
    {
       String[] names = dtID.getNames();
-      DeploymentRepository deploymentRepository = getDeploymentRepository(dtID);
       log.info("Begin start, "+Arrays.asList(names));
       
       List<String> deployments = new ArrayList<String>(); 
       for(String name : names)
       {
+         DeploymentRepository deploymentRepository = resolveDeploymentRepository(name, dtID.getProfile());
          // Schedule start for the deployment
          deployments.add(start(name, deploymentRepository));
       }
@@ -317,12 +348,12 @@
    protected void stop(DeploymentID dtID) throws Exception
    {
       String[] names = dtID.getNames();
-      DeploymentRepository deploymentRepository = getDeploymentRepository(dtID);
       log.info("Stop, "+Arrays.asList(names));
       
       List<String> deployments = new ArrayList<String>();
       for(String name : names)
       {
+         DeploymentRepository deploymentRepository = resolveDeploymentRepository(name, dtID.getProfile());
          // Schedule stop
          deployments.add(stop(name, deploymentRepository));
       }
@@ -354,11 +385,11 @@
    protected void remove(DeploymentID dtID) throws Exception
    {
       String[] names = dtID.getNames();
-      DeploymentRepository deploymentRepository = getDeploymentRepository(dtID);
       log.info("Remove, "+Arrays.asList(names));
       
       for(String name : names)
       {
+         DeploymentRepository deploymentRepository = resolveDeploymentRepository(name, dtID.getProfile());
          // Remove from repository
          removeDeployment(name, deploymentRepository);
       }

Added: branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/deployers/test/LegacyDeploymentScannerUnitTestCase.java
===================================================================
--- branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/deployers/test/LegacyDeploymentScannerUnitTestCase.java	                        (rev 0)
+++ branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/deployers/test/LegacyDeploymentScannerUnitTestCase.java	2010-01-04 13:39:26 UTC (rev 98984)
@@ -0,0 +1,157 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2009, Red Hat 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.deployers.test;
+
+import java.net.URL;
+
+import javax.management.ObjectName;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.deployers.spi.management.deploy.DeploymentManager;
+import org.jboss.managed.api.ManagedDeployment;
+import org.jboss.profileservice.spi.NoSuchDeploymentException;
+
+/**
+ * Test the JBossTools legacy DeploymentScanner usage.
+ *
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+public class LegacyDeploymentScannerUnitTestCase extends AbstractDeployTestBase
+{
+
+   /** The deployment scanner MBean name. */
+   private static final String DEPLOYMENT_SCANNER_MBEAN = "jboss.deployment:flavor=URL,type=DeploymentScanner";
+   
+   public static Test suite() throws Exception
+   {
+      TestSuite suite = new TestSuite();
+      
+      suite.addTest(new LegacyDeploymentScannerUnitTestCase("testDeploy"));
+      suite.addTest(new LegacyDeploymentScannerUnitTestCase("testlistDeployedURLs"));      
+      suite.addTest(new LegacyDeploymentScannerUnitTestCase("testDeploymentMgrRedeploy"));     
+      suite.addTest(new LegacyDeploymentScannerUnitTestCase("testUndeploy"));
+      
+      return suite;
+   }
+   
+   public LegacyDeploymentScannerUnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   public void testDeploy() throws Exception
+   {
+      final ObjectName scanner = new ObjectName(DEPLOYMENT_SCANNER_MBEAN);      
+
+      // The deployment
+      URL deployment = getDeployURL(EMTPY_DEPLOYMENT);
+      assertNotNull(EMTPY_DEPLOYMENT, deployment);
+      
+      // Suspend
+      invoke(scanner, "stop" , new Object[0], new String[0]);
+      try
+      {
+         // Add the deployment
+         invoke(scanner, "addURL", new Object[] { deployment }, new String[] { URL.class.getName() });
+      }
+      finally
+      {
+         // Resume
+         invoke(scanner, "start" , new Object[0], new String[0]);
+      }
+      
+      // Wait for HDScanner
+      Thread.sleep(8000);
+      
+      ManagedDeployment managedDeployment = getManagementView().getDeployment(EMTPY_DEPLOYMENT);
+      assertNotNull(managedDeployment);
+
+   }
+   
+   public void testUndeploy() throws Exception
+   {
+      final ObjectName scanner = new ObjectName(DEPLOYMENT_SCANNER_MBEAN); 
+
+      // The deployment
+      URL deployment = getDeployURL(EMTPY_DEPLOYMENT);
+      assertNotNull(EMTPY_DEPLOYMENT, deployment);
+      
+      // Suspend
+      invoke(scanner, "stop" , new Object[0], new String[0]);
+      try
+      {
+         // Add the deployment
+         invoke(scanner, "removeURL", new Object[] { deployment }, new String[] { URL.class.getName() });
+      }
+      finally
+      {
+         // Resume
+         invoke(scanner, "start" , new Object[0], new String[0]);
+      }
+      
+      // Wait for HDScanner
+      Thread.sleep(8000);
+      
+      try
+      {
+         ManagedDeployment managedDeployment = getManagementView().getDeployment(EMTPY_DEPLOYMENT);
+         fail("deployment not undeployed " + managedDeployment);
+      }
+      catch(NoSuchDeploymentException ok)
+      {
+         log.debug("saw NoSuchDeploymentException");
+      }
+   }
+   
+   public void testlistDeployedURLs() throws Exception
+   {
+      final ObjectName scanner = new ObjectName(DEPLOYMENT_SCANNER_MBEAN);
+      
+      String[] deployments = (String[]) invoke(scanner, "listDeployedURLs", new Object[0], new String[0]);
+      
+      assertNotNull(deployments);
+      assertTrue(deployments.length > 1);
+   }
+
+   public void testDeploymentMgrRedeploy() throws Exception
+   {
+      // Test redeploy using deploymentManager
+      DeploymentManager deployMgr = getDeploymentManager();
+      // deployMgr.loadProfile(scannerProfile);
+      try
+      {
+         String name = deployMgr.getRepositoryNames(new String[] { EMTPY_DEPLOYMENT })[0];
+         redeployCheckComplete(name);
+      }
+      finally
+      {
+         deployMgr.releaseProfile();
+      }      
+   }
+   
+}
+
+
+




More information about the jboss-cvs-commits mailing list