1 7 package org.jboss.test.deployers.jbas2904.test; 8 9 import java.util.ArrayList ; 10 import java.util.Collections ; 11 import java.util.Comparator ; 12 import java.util.StringTokenizer ; 13 14 import java.io.InputStream ; 15 import java.io.File ; 16 import java.io.FileInputStream ; 17 18 import java.net.URL ; 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 ; 28 29 35 public class EARDeploymentUnitTestCase extends AbstractDeploymentTest 36 { 37 38 public EARDeploymentUnitTestCase(String test) 39 { 40 super(test); 41 } 42 43 public static Test suite() throws Exception 44 { 45 return getDeploySetup(EARDeploymentUnitTestCase.class, 46 "testdeployers-jbas2904.ear"); 47 } 48 49 public void testEARDeployment() throws Exception 50 { 51 DeploymentContext topInfo = assertDeployed("testdeployers-jbas2904.ear"); 52 Object actualModules[] = topInfo.getChildren().toArray(); 54 ArrayList expectedList = new ArrayList (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 url = child.getRoot().toURL(); 60 String moduleName = getModuleDeployed(url.toString()); 61 expectedList.add(moduleName); 62 } 65 Object expectedModules[] = expectedList.toArray(); 67 68 Deployments deployment1 = new Deployments( 69 "Atestdeployerorder-jbas2904.sar", 70 getMBeanLastDeployment(new ObjectName ( 71 "jboss.jbas2904.test.deployers:service=MBean1"))); 72 Deployments deployment2 = new Deployments( 73 "Btestdeployerorder-jbas2904.sar", 74 getMBeanLastDeployment(new ObjectName ( 75 "jboss.jbas2904.test.deployers:service=MBean2"))); 76 ArrayList precisionDeployments = new ArrayList (); 77 precisionDeployments.add(deployment1); 78 precisionDeployments.add(deployment2); 79 DeploymentInfoComparator comparator = new DeploymentInfoComparator(); 80 Collections.sort(precisionDeployments, comparator); 81 Object 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 expectedModule = ((Deployments) preciseModulesExpected[count]) 92 .getDuName(); 93 assertEquals(expectedModules[count], expectedModule); 94 } 95 } 96 97 private String getModuleDeployed(String tempUrl) 98 { 99 StringTokenizer st = new StringTokenizer (tempUrl, "/"); 100 String moduleName = ""; 101 while (st.hasMoreTokens()) 102 { 103 moduleName = st.nextToken(); 104 } 105 return moduleName; 106 } 107 108 private long getMBeanLastDeployment(ObjectName objName) throws Exception 109 { 110 String method = "getLastDeployed"; 111 Object args[] = {}; 112 String [] sig = {}; 113 Long lastDeployed = (Long ) invoke(objName, method, args, sig); 114 return lastDeployed.longValue(); 115 } 116 } 117 118 class Deployments 119 { 120 private String duName; 121 122 private long lastDeployed; 123 124 public Deployments(String duName, long lastDeployed) 125 { 126 this.duName = duName; 127 this.lastDeployed = lastDeployed; 128 } 129 130 public String getDuName() 131 { 132 return duName; 133 } 134 135 public long getLastDeployed() 136 { 137 return lastDeployed; 138 } 139 } 140 141 class DeploymentInfoComparator implements Comparator 142 { 143 public int compare(Object o1, Object 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 |