KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > deployers > jbas2904 > test > EARDeploymentUnitTestCase


1 /*
2  * JBoss, the OpenSource J2EE webOS
3  *
4  * Distributable under LGPL license.
5  * See terms of license at gnu.org.
6  */

7 package org.jboss.test.deployers.jbas2904.test;
8
9 import java.util.ArrayList JavaDoc;
10 import java.util.Collections JavaDoc;
11 import java.util.Comparator JavaDoc;
12 import java.util.StringTokenizer JavaDoc;
13
14 import java.io.InputStream JavaDoc;
15 import java.io.File JavaDoc;
16 import java.io.FileInputStream JavaDoc;
17
18 import java.net.URL JavaDoc;
19
20 import junit.framework.Test;
21
22 import org.jboss.deployers.spi.structure.DeploymentContext;
23 import org.jboss.deployment.DeploymentInfo;
24
25 import org.jboss.test.deployers.AbstractDeploymentTest;
26
27 import javax.management.ObjectName JavaDoc;
28
29 /**
30  * A test for JBAB2904
31  *
32  * @author <a HREF="vicky.kak@jboss.com">Vicky Kak</a>
33  * @version $Revision: 1.0 $
34  */

35 public class EARDeploymentUnitTestCase extends AbstractDeploymentTest
36 {
37
38    public EARDeploymentUnitTestCase(String JavaDoc test)
39    {
40       super(test);
41    }
42
43    public static Test suite() throws Exception JavaDoc
44    {
45       return getDeploySetup(EARDeploymentUnitTestCase.class,
46             "testdeployers-jbas2904.ear");
47    }
48
49    public void testEARDeployment() throws Exception JavaDoc
50    {
51       DeploymentContext topInfo = assertDeployed("testdeployers-jbas2904.ear");
52       // Expected ordering of the subdeployments
53
Object JavaDoc actualModules[] = topInfo.getChildren().toArray();
54       ArrayList JavaDoc expectedList = new ArrayList JavaDoc(actualModules.length);
55       System.out.println("Expected Deployment Ordering -------> ");
56       for (int count = 0; count < actualModules.length; count++)
57       {
58          DeploymentContext child = (DeploymentContext) actualModules[count];
59          URL JavaDoc url = child.getRoot().toURL();
60          String JavaDoc moduleName = getModuleDeployed(url.toString());
61          expectedList.add(moduleName);
62          // System.out.println(" "+moduleName+" lastDeployed
63
// :"+child.lastDeployed);
64
}
65       // Expected Deployment Ordering Array
66
Object JavaDoc expectedModules[] = expectedList.toArray();
67
68       Deployments deployment1 = new Deployments(
69             "Atestdeployerorder-jbas2904.sar",
70             getMBeanLastDeployment(new ObjectName JavaDoc(
71                   "jboss.jbas2904.test.deployers:service=MBean1")));
72       Deployments deployment2 = new Deployments(
73             "Btestdeployerorder-jbas2904.sar",
74             getMBeanLastDeployment(new ObjectName JavaDoc(
75                   "jboss.jbas2904.test.deployers:service=MBean2")));
76       ArrayList JavaDoc precisionDeployments = new ArrayList JavaDoc();
77       precisionDeployments.add(deployment1);
78       precisionDeployments.add(deployment2);
79       DeploymentInfoComparator comparator = new DeploymentInfoComparator();
80       Collections.sort(precisionDeployments, comparator);
81       // Actual Deployment Ordering Array
82
Object JavaDoc preciseModulesExpected[] = precisionDeployments.toArray();
83       assertEquals(expectedModules.length, preciseModulesExpected.length);
84
85       System.out.println("Final Deployment Ordering ------->");
86       for (int count = 0; count < preciseModulesExpected.length; count++)
87       {
88          Deployments deployment = (Deployments) preciseModulesExpected[count];
89          System.out.println(" " + deployment.getDuName() + " : "
90                + deployment.getLastDeployed());
91          String JavaDoc expectedModule = ((Deployments) preciseModulesExpected[count])
92                .getDuName();
93          assertEquals(expectedModules[count], expectedModule);
94       }
95    }
96
97    private String JavaDoc getModuleDeployed(String JavaDoc tempUrl)
98    {
99       StringTokenizer JavaDoc st = new StringTokenizer JavaDoc(tempUrl, "/");
100       String JavaDoc moduleName = "";
101       while (st.hasMoreTokens())
102       {
103          moduleName = st.nextToken();
104       }
105       return moduleName;
106    }
107
108    private long getMBeanLastDeployment(ObjectName JavaDoc objName) throws Exception JavaDoc
109    {
110       String JavaDoc method = "getLastDeployed";
111       Object JavaDoc args[] = {};
112       String JavaDoc[] sig = {};
113       Long JavaDoc lastDeployed = (Long JavaDoc) invoke(objName, method, args, sig);
114       return lastDeployed.longValue();
115    }
116 }
117
118 class Deployments
119 {
120    private String JavaDoc duName;
121
122    private long lastDeployed;
123
124    public Deployments(String JavaDoc duName, long lastDeployed)
125    {
126       this.duName = duName;
127       this.lastDeployed = lastDeployed;
128    }
129
130    public String JavaDoc getDuName()
131    {
132       return duName;
133    }
134
135    public long getLastDeployed()
136    {
137       return lastDeployed;
138    }
139 }
140
141 class DeploymentInfoComparator implements Comparator JavaDoc
142 {
143    public int compare(Object JavaDoc o1, Object JavaDoc o2)
144    {
145       long deployedTime1 = ((Deployments) o1).getLastDeployed();
146       long deployedTime2 = ((Deployments) o2).getLastDeployed();
147       long timediff = deployedTime1 - deployedTime2;
148       int retVal = 0;
149       if (timediff == 0)
150          retVal = retVal;
151       else if (timediff < 0)
152          retVal = -1;
153       else
154          retVal = 1;
155       return retVal;
156    }
157 }
Popular Tags