1 22 package org.jboss.kernel.deployment.jboss; 23 24 import org.jboss.dependency.spi.ControllerMode; 25 import org.jboss.dependency.spi.ControllerState; 26 import org.jboss.deployment.DeploymentException; 27 import org.jboss.deployment.DeploymentInfo; 28 import org.jboss.kernel.Kernel; 29 import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap; 30 import org.jboss.kernel.plugins.deployment.AbstractKernelDeployer; 31 import org.jboss.kernel.spi.deployment.KernelDeployment; 32 import org.jboss.system.ServiceMBeanSupport; 33 import org.jboss.util.UnreachableStatementException; 34 35 41 public class JBossBeanDeployment extends ServiceMBeanSupport implements JBossBeanDeploymentMBean 42 { 43 44 protected DeploymentInfo di; 45 46 47 protected KernelDeployment deployment; 48 49 50 protected AbstractKernelDeployer deployer; 51 52 57 public JBossBeanDeployment(DeploymentInfo di) 58 { 59 this.di = di; 60 this.deployment = (KernelDeployment) di.metaData; 61 } 62 63 protected void createService() throws Exception 64 { 65 Kernel kernel = getKernel(); 66 deployer = new AbstractKernelDeployer(kernel, ControllerState.CREATE, ControllerMode.MANUAL); 67 try 68 { 69 deployer.deploy(deployment); 70 } 71 catch (Throwable t) 72 { 73 DeploymentException.rethrowAsDeploymentException("Cannot deploy " + deployment, t); 74 } 75 } 76 77 protected void startService() throws Exception 78 { 79 try 80 { 81 deployer.change(deployment, ControllerState.INSTALLED); 82 deployer.validate(deployment); 83 } 84 catch (Throwable t) 85 { 86 DeploymentException.rethrowAsDeploymentException("Cannot start " + deployment, t); 87 } 88 } 89 90 protected void stopService() throws Exception 91 { 92 try 93 { 94 deployer.change(deployment, ControllerState.CREATE); 95 } 96 catch (Throwable t) 97 { 98 DeploymentException.rethrowAsDeploymentException("Cannot stop " + deployment, t); 99 } 100 } 101 102 protected void destroyService() throws Exception 103 { 104 try 105 { 106 if (deployer != null) 107 deployer.undeploy(deployment); 108 } 109 catch (Throwable t) 110 { 111 DeploymentException.rethrowAsDeploymentException("Cannot stop " + deployment, t); 112 } 113 deployer = null; 114 } 115 116 121 protected Kernel getKernel() throws DeploymentException 122 { 123 try 124 { 125 BasicBootstrap bootstrap = new BasicBootstrap(); 126 bootstrap.run(); 127 return bootstrap.getKernel(); 128 } 129 catch (Throwable t) 130 { 131 DeploymentException.rethrowAsDeploymentException("Unable to boot kernel", t); 132 throw new UnreachableStatementException(); 133 } 134 } 135 } 136 | Popular Tags |