[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