1 22 package org.jboss.test.jmx.test; 23 24 import javax.management.ObjectName ; 25 26 import org.jboss.test.JBossTestCase; 27 import org.jboss.test.jmx.eardeployment.a.interfaces.SessionA; 28 import org.jboss.test.jmx.eardeployment.a.interfaces.SessionAHome; 29 import org.jboss.test.jmx.eardeployment.b.interfaces.SessionB; 30 import org.jboss.test.jmx.eardeployment.b.interfaces.SessionBHome; 31 32 33 42 43 public class EarDeploymentUnitTestCase extends JBossTestCase 44 { 45 protected final static int INSTALLED = 0; 47 protected final static int CONFIGURED = 1; 48 protected final static int CREATED = 2; 49 protected final static int RUNNING = 3; 50 protected final static int FAILED = 4; 51 protected final static int STOPPED = 5; 52 protected final static int DESTROYED = 6; 53 protected final static int NOTYETINSTALLED = 7; 54 55 private ObjectName serviceControllerName; 56 57 public EarDeploymentUnitTestCase(String name) 58 { 59 super(name); 60 61 try 62 { 63 serviceControllerName = 64 new ObjectName ("jboss.system:service=ServiceController"); 65 } 66 catch (Exception ignore) 67 { 68 } 69 } 70 71 79 public void testEarSubpackageVisibility() throws Exception 80 { 81 getLog().info("+++ testEarSubpackageVisibility"); 82 String testUrl = "eardeployment.ear"; 83 deploy(testUrl); 84 85 try 86 { 87 SessionAHome aHome = (SessionAHome) getInitialContext().lookup("eardeployment/SessionA"); 88 SessionBHome bHome = (SessionBHome) getInitialContext().lookup("eardeployment/SessionB"); 89 SessionA a = aHome.create(); 90 SessionB b = bHome.create(); 91 assertTrue("a called b", a.callB()); 92 assertTrue("b called a", b.callA()); 93 } 94 finally 95 { 96 undeploy(testUrl); 97 } 98 } 99 100 public void testEarDepends() throws Exception 101 { 102 getLog().info("+++ testEarDepends"); 103 String testUrl = "eardepends.ear"; 104 105 ObjectName dependentAName = 106 new ObjectName ("jboss.j2ee:jndiName=test/DependentA,service=EJB"); 107 ObjectName dependentBName = 108 new ObjectName ("jboss.j2ee:jndiName=test/DependentB,service=EJB"); 109 110 ObjectName independentName = 111 new ObjectName ("jboss.j2ee:jndiName=test/Independent,service=EJB"); 112 113 ObjectName testName = new ObjectName ("test:name=Test"); 114 115 if (removeService(dependentAName)) 116 { 117 log.warn(dependentAName + " is registered, removed"); 118 } 119 if (removeService(dependentBName)) 120 { 121 log.warn(dependentBName + " is registered, removed"); 122 } 123 124 deploy(testUrl); 125 126 try 127 { 128 assertTrue(dependentAName + " is registered", 129 getServer().isRegistered(dependentAName)); 130 assertTrue(dependentBName + " is registered", 131 getServer().isRegistered(dependentBName)); 132 133 assertTrue(dependentAName + " in RUNNING state", checkState(dependentAName, RUNNING)); 135 assertTrue(dependentBName + " in RUNNING state", checkState(dependentBName, RUNNING)); 136 assertTrue(testName + " in RUNNING state", checkState(testName, RUNNING)); 137 assertTrue(independentName + " in RUNNING state", checkState(independentName, RUNNING)); 138 } 139 finally 140 { 141 undeploy(testUrl); 142 } 143 144 try 145 { 146 assertTrue(dependentAName + " is not registered", 147 !getServer().isRegistered(dependentAName)); 148 assertTrue(dependentBName + " is not registered", 149 !getServer().isRegistered(dependentBName)); 150 } 151 finally 152 { 153 removeService(dependentAName); 154 removeService(dependentBName); 155 } 156 } 157 158 protected boolean removeService(final ObjectName mbean) throws Exception 159 { 160 boolean isRegistered = getServer().isRegistered(mbean); 161 if (isRegistered) 162 { 163 Object [] args = {mbean}; 164 String [] sig = {ObjectName .class.getName()}; 165 invoke(serviceControllerName, 166 "remove", 167 args, 168 sig 169 ); 170 } 171 172 return isRegistered; 173 } 174 175 protected boolean checkState(ObjectName mbean, int state) throws Exception 176 { 177 Integer mbeanState = (Integer ) getServer().getAttribute(mbean, "State"); 178 return state == mbeanState.intValue(); 179 } 180 181 } | Popular Tags |