Methods Summary |
---|
protected com.sun.enterprise.deployment.backend.DeploymentEvent | getPostPhaseEvent(com.sun.enterprise.deployment.backend.DeploymentRequest req)Event that will be broadcasted at the end of the phase
return new DeploymentEvent(DeploymentEventType.POST_UNDEPLOY, new DeploymentEventInfo(req));
|
protected com.sun.enterprise.deployment.backend.DeploymentEvent | getPrePhaseEvent(com.sun.enterprise.deployment.backend.DeploymentRequest req)Event that will be broadcasted at the start of the phase
return new DeploymentEvent(DeploymentEventType.PRE_UNDEPLOY, new DeploymentEventInfo(req));
|
public void | runPhase(DeploymentPhaseContext phaseCtx)Undeploys the application using App/ModuleUnDeployers
unregisters the application for domain.xml
DeploymentStatus status = phaseCtx.getDeploymentStatus();
DeploymentRequest req = phaseCtx.getDeploymentRequest();
DeploymentTarget target = (DeploymentTarget)req.getTarget();
// set the descriptor on request so we can get it in Deployers code
Application app = deploymentCtx.getApplication(req.getName());
req.setDescriptor(app);
// Clear out the reference to the class loader
if (app != null) {
app.setClassLoader(null);
}
String type = null;
Deployer deployer = null;
try{
if(!req.isApplication())
{
type = DeploymentServiceUtils.getModuleTypeString(req.getType());
}
deployer = DeployerFactory.getDeployer(req);
deployer.doRequest();
// create a DeploymentStatus for cleanup stage, it is a
// substatus of current (UndeployFromDomainPhase) deployment status
DeploymentStatus cleanupStatus =
new DeploymentStatus(status);
req.setCurrentDeploymentStatus(cleanupStatus);
deployer.cleanup();
DeploymentServiceUtils.removeFromConfig(req.getName(),
req.getType());
// remove the application from deployment context
deploymentCtx.removeApplication(req.getName());
status.setStageStatus(DeploymentStatus.SUCCESS);
postPhaseNotify(getPostPhaseEvent(req));
}catch(Throwable t){
status.setStageStatus(DeploymentStatus.FAILURE);
status.setStageException(t);
status.setStageStatusMessage(t.getMessage());
// Clean up domain.xml so that the system config is clean after the undeploy
try {
if (deployer != null) {
deployer.removePolicy();
}
DeploymentServiceUtils.removeFromConfig(req.getName(), req.getType());
} catch (Exception eee){}
}
|