001: /*
002: * JBoss, Home of Professional Open Source.
003: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
004: * as indicated by the @author tags. See the copyright.txt file in the
005: * distribution for a full listing of individual contributors.
006: *
007: * This is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU Lesser General Public License as
009: * published by the Free Software Foundation; either version 2.1 of
010: * the License, or (at your option) any later version.
011: *
012: * This software is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this software; if not, write to the Free
019: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
021: */
022: package org.jboss.test.deployers;
023:
024: import java.net.URL;
025: import java.util.HashSet;
026: import java.util.Iterator;
027: import java.util.Set;
028:
029: import javax.management.MBeanServerConnection;
030:
031: import org.jboss.deployment.DeploymentInfo;
032: import org.jboss.deployment.DeploymentState;
033: import org.jboss.deployment.MainDeployerMBean;
034: import org.jboss.test.JBossTestCase;
035:
036: /**
037: * Abstract deployment test.
038: *
039: * @author <a href="adrian@jboss.com">Adrian Brock</a>
040: * @version $Revision: 57211 $
041: */
042: public class AbstractDeploymentTest extends JBossTestCase {
043: public static final String ear1Deployment = "testdeployers-ear1.ear";
044: public static final String ear1DeploymentUnpacked = "unpacked-ear1.ear";
045: public static final String ear2DeploymentUnpacked = "unpacked-ear2.ear";
046: public static final String bean1Deployment = "testdeployers-bean1ejb.jar";
047: public static final String bean1DeploymentUnpacked = "unpacked-bean1ejb.jar";
048: public static final String notBean1Deployment = "bean1ejb-not.ajar";
049: public static final String notBean1DeploymentUnpacked = "unpacked-bean1ejb-not.ajar";
050: public static final String web1Deployment = "testdeployers-web1.war";
051: public static final String web1DeploymentUnpacked = "unpacked-web1.war";
052: public static final String notWeb1Deployment = "web1-not.awar";
053: public static final String notWeb1DeploymentUnpacked = "unpacked-web1-not.awar";
054: public static final String rar1Deployment = "testdeployers-mcf1.rar";
055: public static final String rar1DeploymentUnpacked = "unpacked-mcf1.rar";
056: public static final String notRar1Deployment = "mcf1-not.arar";
057: public static final String notRar1DeploymentUnpacked = "unpacked-mcf1-not.arar";
058: public static final String rarjar1Deployment = "testdeployers-mcf1.jar";
059: public static final String client1Deployment = "testdeployers-client1.jar";
060: public static final String client1DeploymentUnpacked = "unpacked-client1.jar";
061: public static final String notClient1Deployment = "client1-not.ajar";
062: public static final String notClient1DeploymentUnpacked = "unpacked-client1-not.ajar";
063: public static final String ds1Deployment = "testdeployers-mcf1-ds.xml";
064: public static final String ds1DeploymentUnpacked = "unpacked-mcf1-ds.xml";
065: public static final String ds1DeploymentUnpacked2 = "unpacked2-mcf1-ds.xml";
066: public static final String service1Deployment = "testdeployers-1-service.xml";
067: public static final String sar1Deployment = "testdeployers-mbean1.sar";
068: public static final String sar1DeploymentUnpacked = "unpacked-mbean1.sar";
069: public static final String notSar1Deployment = "mbean1-not.asar";
070: public static final String notSar1DeploymentUnpacked = "unpacked-mbean1-not.asar";
071:
072: protected DeploymentInfo assertDeployed(String deployment)
073: throws Exception {
074: DeploymentInfo result = getDeploymentInfo(deployment);
075: assertNotNull("Unable to retrieve deployment info for "
076: + deployment, result);
077: return result;
078: }
079:
080: protected void assertNotDeployed(String deployment)
081: throws Exception {
082: DeploymentInfo result = getDeploymentInfo(deployment);
083: assertNull("Should not be deployed " + result, result);
084: }
085:
086: protected DeploymentInfo getDeploymentInfo(String deployment)
087: throws Exception {
088: MBeanServerConnection server = getServer();
089: URL deployURL = getDeployURL(deployment);
090: return (DeploymentInfo) server.invoke(
091: MainDeployerMBean.OBJECT_NAME, "getDeployment",
092: new Object[] { deployURL }, new String[] { URL.class
093: .getName() });
094: }
095:
096: public AbstractDeploymentTest(String test) {
097: super (test);
098: }
099:
100: public static class DeploymentInfoVisitor {
101: public void start(DeploymentInfo topLevel) {
102: doVisit(topLevel);
103: }
104:
105: protected void doVisit(DeploymentInfo info) {
106: visit(info);
107:
108: Set subDeployments = info.subDeployments;
109: if (subDeployments == null || subDeployments.size() == 0)
110: return;
111:
112: for (Iterator i = subDeployments.iterator(); i.hasNext();) {
113: DeploymentInfo child = (DeploymentInfo) i.next();
114: doVisit(child);
115: }
116: }
117:
118: public void visit(DeploymentInfo info) {
119: }
120: }
121:
122: public class CheckExpectedDeploymentInfoVisitor extends
123: DeploymentInfoVisitor {
124: protected HashSet expected;
125:
126: public CheckExpectedDeploymentInfoVisitor(HashSet expected) {
127: this .expected = expected;
128: }
129:
130: public void visit(DeploymentInfo info) {
131: String shortName = info.shortName;
132: log.info("Found deployment " + shortName);
133: boolean found = expected.remove(shortName);
134: if (found == false)
135: fail(shortName + " not expected, or duplicate?");
136: else {
137: DeploymentState state = info.state;
138: assertEquals("Should be fully deployed: " + shortName
139: + " state=" + state, DeploymentState.STARTED,
140: state);
141: }
142: }
143: }
144: }
|