package org.mobicents.slee.container.deployment.jboss; import org.jboss.deployers.spi.DeploymentException; import org.jboss.deployers.vfs.spi.deployer.AbstractSimpleVFSRealDeployer; import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit; import org.jboss.logging.Logger; import org.jboss.system.ServiceController; import org.jboss.virtual.VFSUtils; public class SLEEDeployer extends AbstractSimpleVFSRealDeployer<SLEEDeploymentMetaData> { private static Logger logger = Logger.getLogger( SLEEDeployer.class ); /** * Create a new SleeDeploymentMetaData. */ public SLEEDeployer(ServiceController serviceController) { super(SLEEDeploymentMetaData.class); setOutput(SLEEDeploymentMetaData.class); logger.info("Mobicents SLEE Real Deployer initialized."); } @Override public void deploy( VFSDeploymentUnit vfsDU, SLEEDeploymentMetaData sdmd ) throws DeploymentException { //logger.info("��� SLEEDeployer �� public void deploy( VFSDeploymentUnit unit, SLEEDeploymentMetaData sdmd )"); if(logger.isTraceEnabled()) { logger.trace("SLEEParserDeployer 'deploy' called:"); logger.trace("vfsDeploymentUnit.." + vfsDU); logger.trace("sdmd..............." + sdmd); } if(sdmd != null) { try { SLEESubDeployer ssdeployer = SLEESubDeployer.INSTANCE; DeployableUnitWrapper duWrapper = new DeployableUnitWrapper(VFSUtils.getCompatibleURL(vfsDU.getRoot())); ssdeployer.accepts( duWrapper ); ssdeployer.init( duWrapper ); for (String componentJar : sdmd.duContents) { DeployableUnitWrapper duWrapperComp = new DeployableUnitWrapper(VFSUtils.getCompatibleURL(vfsDU.getFile(componentJar))); ssdeployer.accepts( duWrapperComp ); ssdeployer.init( duWrapperComp ); ssdeployer.create( duWrapperComp ); ssdeployer.start( duWrapperComp ); } ssdeployer.create( duWrapper ); ssdeployer.start( duWrapper ); } catch ( Exception e ) { logger.error( "Failure while deploying " + vfsDU.getName(), e ); } } } public void undeploy(VFSDeploymentUnit vfsDU, SLEEDeploymentMetaData sdmd) { //logger.info("��� SLEEDeployer �� public void undeploy(VFSDeploymentUnit unit, SLEEDeploymentMetaData sdmd)"); if(logger.isTraceEnabled()) { logger.trace("SLEEParserDeployer 'undeploy' called:"); logger.trace("vfsDeploymentUnit.." + vfsDU); logger.trace("sdmd..............." + sdmd); } if(sdmd != null) { try { SLEESubDeployer ssdeployer = SLEESubDeployer.INSTANCE; DeployableUnitWrapper duWrapper = new DeployableUnitWrapper(VFSUtils.getCompatibleURL(vfsDU.getRoot())); ssdeployer.stop( duWrapper ); ssdeployer.destroy( duWrapper ); } catch ( Exception e ) { logger.error( "Failure while undeploying " + vfsDU.getName(), e ); } } } }