[jboss-cvs] JBossAS SVN: r73339 - projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue May 13 06:05:44 EDT 2008
Author: wolfc
Date: 2008-05-13 06:05:44 -0400 (Tue, 13 May 2008)
New Revision: 73339
Modified:
projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/EmbeddedTestMcBootstrap.java
Log:
EJBTHREE-1345: rewrote shutdown and added lookup
Modified: projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/EmbeddedTestMcBootstrap.java
===================================================================
--- projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/EmbeddedTestMcBootstrap.java 2008-05-13 09:18:40 UTC (rev 73338)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/EmbeddedTestMcBootstrap.java 2008-05-13 10:05:44 UTC (rev 73339)
@@ -23,9 +23,11 @@
import java.net.URL;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ControllerState;
import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
-import org.jboss.kernel.plugins.deployment.AbstractKernelDeployer;
import org.jboss.kernel.plugins.deployment.xml.BasicXMLDeployer;
+import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.logging.Logger;
/**
@@ -52,6 +54,8 @@
// --------------------------------------------------------------------------------||
private BasicXMLDeployer deployer;
+
+ private Thread shutdownHook;
// --------------------------------------------------------------------------------||
// Constructors -------------------------------------------------------------------||
@@ -92,7 +96,8 @@
this.setDeployer(new BasicXMLDeployer(this.getKernel()));
// Add a shutdown hook
- Runtime.getRuntime().addShutdownHook(new ShutdownDeployerThread(this.getDeployer()));
+ shutdownHook = new ShutdownDeployerThread();
+ Runtime.getRuntime().addShutdownHook(shutdownHook);
}
// --------------------------------------------------------------------------------||
@@ -153,6 +158,26 @@
}
/**
+ * @param name
+ */
+ public <T> T lookup(String name, Class<T> expectedType) throws Throwable
+ {
+ KernelController controller = getKernel().getController();
+ ControllerContext context = controller.getContext(name, null);
+ controller.change(context, ControllerState.INSTALLED);
+ if(context.getError() != null)
+ throw context.getError();
+
+ if(context.getState() != ControllerState.INSTALLED) {
+ System.err.println(context.getDependencyInfo().getUnresolvedDependencies(null));
+ }
+ // TODO: it can be stalled because of dependencies
+ assert context.getState() == ControllerState.INSTALLED;
+
+ return expectedType.cast(context.getTarget());
+ }
+
+ /**
* Undeploys the specified URL
*
* @param url
@@ -233,20 +258,12 @@
*/
protected final class ShutdownDeployerThread extends Thread
{
- private AbstractKernelDeployer deployer;
-
- public ShutdownDeployerThread(AbstractKernelDeployer deployer)
- {
- this.deployer = deployer;
- }
-
@Override
public void run()
{
super.run();
- log.debug("Shutting down " + this.deployer + "...");
- getDeployer().shutdown();
- log.info("Shut down: " + getDeployer());
+
+ shutdownHook();
}
}
@@ -302,4 +319,23 @@
}
return url;
}
+
+ /**
+ * Perform a clean shutdown.
+ */
+ public void shutdown()
+ {
+ // remove the hook
+ Runtime.getRuntime().removeShutdownHook(shutdownHook);
+
+ // and call it.
+ shutdownHook();
+ }
+
+ private void shutdownHook()
+ {
+ log.debug("Shutting down " + this.deployer + "...");
+ getDeployer().shutdown();
+ log.info("Shut down: " + getDeployer());
+ }
}
More information about the jboss-cvs-commits
mailing list