001
014
015 package com.liferay.portal.tools.deploy;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019
020 import javax.enterprise.deploy.shared.ModuleType;
021 import javax.enterprise.deploy.spi.DeploymentManager;
022 import javax.enterprise.deploy.spi.TargetModuleID;
023 import javax.enterprise.deploy.spi.status.DeploymentStatus;
024 import javax.enterprise.deploy.spi.status.ProgressEvent;
025 import javax.enterprise.deploy.spi.status.ProgressListener;
026 import javax.enterprise.deploy.spi.status.ProgressObject;
027
028
032 public class DeploymentProgressListener implements ProgressListener {
033
034 public DeploymentProgressListener(
035 DeploymentHandler deploymentHandler, String warContext) {
036
037 _deploymentHandler = deploymentHandler;
038 _warContext = warContext;
039 _deploymentManager = _deploymentHandler.getDeploymentManager();
040 }
041
042 public void handleProgressEvent(ProgressEvent progressEvent) {
043 DeploymentStatus deploymentStatus = progressEvent.getDeploymentStatus();
044
045 if (_log.isInfoEnabled()) {
046 _log.info(deploymentStatus.getMessage());
047 }
048
049 if (deploymentStatus.isCompleted()) {
050 try {
051 TargetModuleID[] targetModuleIDs =
052 _deploymentManager.getNonRunningModules(
053 ModuleType.WAR, _deploymentManager.getTargets());
054
055 if ((targetModuleIDs != null) && (targetModuleIDs.length > 0)) {
056 for (TargetModuleID targetModuleID : targetModuleIDs) {
057 if (!_warContext.equals(targetModuleID.getModuleID())) {
058 continue;
059 }
060
061 ProgressObject startProgress = _deploymentManager.start(
062 new TargetModuleID[] {targetModuleID});
063
064 startProgress.addProgressListener(
065 new StartProgressListener(_deploymentHandler));
066
067 _deploymentHandler.setError(false);
068 _deploymentHandler.setStarted(true);
069
070 break;
071 }
072 }
073 else {
074 targetModuleIDs = _deploymentManager.getAvailableModules(
075 ModuleType.WAR, _deploymentManager.getTargets());
076
077 for (TargetModuleID targetModuleID : targetModuleIDs) {
078 if (!_warContext.equals(targetModuleID.getModuleID())) {
079 continue;
080 }
081
082 ProgressObject startProgress = _deploymentManager.start(
083 new TargetModuleID[] {targetModuleID});
084
085 startProgress.addProgressListener(
086 new StartProgressListener(_deploymentHandler));
087
088 _deploymentHandler.setError(false);
089 _deploymentHandler.setStarted(true);
090
091 break;
092 }
093 }
094 }
095 catch (Exception e) {
096 _log.error(e, e);
097
098 _deploymentHandler.setError(true);
099 _deploymentHandler.setStarted(false);
100 }
101 }
102 else if (deploymentStatus.isFailed()) {
103 _deploymentHandler.setError(true);
104 _deploymentHandler.setStarted(false);
105 }
106 }
107
108 private static Log _log = LogFactoryUtil.getLog(
109 DeploymentProgressListener.class);
110
111 private DeploymentHandler _deploymentHandler;
112 private String _warContext;
113 private DeploymentManager _deploymentManager;
114
115 }