1 22 package org.jboss.test.jmx.test; 23 24 import java.io.File ; 25 import javax.management.ObjectName ; 26 import javax.naming.InitialContext ; 27 import javax.naming.NamingException ; 28 29 import org.jboss.test.JBossTestCase; 30 import org.jboss.test.jmx.eardeployment.a.interfaces.SessionA; 31 import org.jboss.test.jmx.eardeployment.a.interfaces.SessionAHome; 32 import org.jboss.test.jmx.eardeployment.b.interfaces.SessionB; 33 import org.jboss.test.jmx.eardeployment.b.interfaces.SessionBHome; 34 import org.jboss.deployment.DeploymentException; 35 import org.jboss.deployment.IncompleteDeploymentException; 36 import org.jboss.util.file.Files; 37 38 44 45 public class UndeployBrokenPackageUnitTestCase extends JBossTestCase 46 { 47 public UndeployBrokenPackageUnitTestCase(String name) 48 { 49 super(name); 50 } 51 52 public void testBrokenPackageRedeployment() throws Exception 53 { 54 getLog().info("+++ testBrokenPackageRedeployment"); 55 String testPackage = "undeploybroken.jar"; 56 String missingDatasource = "test-service.xml"; 57 ObjectName entityAName = new ObjectName ("jboss.j2ee:service=EJB,jndiName=EntityA"); 58 ObjectName entityBName = new ObjectName ("jboss.j2ee:service=EJB,jndiName=EntityB"); 59 getLog().info("testPackage is : " + testPackage); 60 try 61 { 62 try 63 { 64 deploy(testPackage); 65 fail("test package " + testPackage + " deployed successfully without needed datasource!"); 66 } 67 catch (IncompleteDeploymentException e) 68 { 69 log.info("caught exception as expected", e); 70 } undeploy(testPackage); 72 getLog().info("Undeployed testPackage"); 73 deploy(missingDatasource); 74 getLog().info("Deployed missing datasource"); 75 deploy(testPackage); 76 } 77 finally 78 { 79 try 80 { 81 undeploy(testPackage); 82 } 83 catch (Throwable e) 84 { 85 } try 87 { 88 undeploy(missingDatasource); 89 } 90 catch (Throwable e) 91 { 92 } 94 } try 96 { 97 getInitialContext().lookup("EntityA"); 98 fail("EntityA found after undeployment"); 99 } 100 catch (NamingException e) 101 { 102 log.info("caught exception as expected", e); 103 } try 105 { 106 getInitialContext().lookup("EntityB"); 107 fail("EntityB found after undeployment"); 108 } 109 catch (NamingException e) 110 { 111 log.info("caught exception as expected", e); 112 } assertTrue("EntityA mbean is registered!", !getServer().isRegistered(entityAName)); 114 assertTrue("EntityB mbean is registered!", !getServer().isRegistered(entityBName)); 115 116 } 117 118 121 public void testBadEjbRedeployment() throws Exception 122 { 123 getLog().info("+++ testBadEjbRedeployment"); 124 String testPackage = "ejbredeploy.jar"; 125 String deployDir = System.getProperty("jbosstest.deploy.dir"); 127 File thejar = new File (deployDir, "ejbredeploy.jar"); 128 File badjar = new File (deployDir, "ejbredeploy-bad.jar"); 129 File goodjar = new File (deployDir, "ejbredeploy-good.jar"); 130 131 thejar.delete(); 132 Files.copy(badjar, thejar); 133 getLog().info("Deploying testPackage: " + testPackage); 134 try 135 { 136 deploy(testPackage); 137 fail("test package " + testPackage + " deployed successfully with bad descriptor!"); 138 } 139 catch (DeploymentException e) 140 { 141 log.info("caught exception as expected", e); 142 } 143 undeploy(testPackage); 144 getLog().info("Undeployed bad testPackage"); 145 146 thejar.delete(); 147 Files.copy(goodjar, thejar); 148 getLog().info("Redeploying testPackage: " + testPackage); 149 deploy(testPackage); 150 Object home = getInitialContext().lookup("EntityA"); 151 getLog().info("Found EntityA home"); 152 undeploy(testPackage); 153 } 154 155 159 public void testBadSideAffects() throws Exception 160 { 161 getLog().info("+++ testBadSideAffects"); 162 getLog().info("Deploying testPackage: ejbredeploy-bad.jar"); 163 try 164 { 165 deploy("ejbredeploy-bad.jar"); 166 fail("test package deployed successfully with bad descriptor!"); 167 } 168 catch (DeploymentException e) 169 { 170 log.info("caught exception as expected", e); 171 } 172 173 try 174 { 175 getLog().info("Deploying testPackage: test-service.xml"); 176 deploy("test-service.xml"); 177 getLog().info("Deployed test-service.xml"); 178 ObjectName serviceName = new ObjectName ("jboss.test:service=TestService,test=jmx"); 179 assertTrue("test-service.xml mbean is registered", getServer().isRegistered(serviceName)); 180 } 181 finally 182 { 183 try 184 { 185 undeploy("test-service.xml"); 186 } 187 catch(Throwable t) 188 { 189 } 190 try 191 { 192 undeploy("ejbredeploy-bad.jar"); 193 } 194 catch(Throwable t) 195 { 196 } 197 } 198 } 199 200 } 202 | Popular Tags |