1
22
23 package com.liferay.portal.tools.deploy;
24
25 import com.liferay.portal.kernel.log.Log;
26 import com.liferay.portal.kernel.log.LogFactoryUtil;
27
28 import javax.enterprise.deploy.shared.ModuleType;
29 import javax.enterprise.deploy.spi.DeploymentManager;
30 import javax.enterprise.deploy.spi.TargetModuleID;
31 import javax.enterprise.deploy.spi.status.DeploymentStatus;
32 import javax.enterprise.deploy.spi.status.ProgressEvent;
33 import javax.enterprise.deploy.spi.status.ProgressListener;
34 import javax.enterprise.deploy.spi.status.ProgressObject;
35
36
43 public class DeploymentProgressListener implements ProgressListener {
44
45 public DeploymentProgressListener(
46 DeploymentHandler deploymentHandler, String warContext) {
47
48 _deploymentHandler = deploymentHandler;
49 _warContext = warContext;
50 _deploymentManager = _deploymentHandler.getDeploymentManager();
51 }
52
53 public void handleProgressEvent(ProgressEvent progressEvent) {
54 DeploymentStatus deploymentStatus = progressEvent.getDeploymentStatus();
55
56 if (_log.isInfoEnabled()) {
57 _log.info(deploymentStatus.getMessage());
58 }
59
60 if (deploymentStatus.isCompleted()) {
61 try {
62 TargetModuleID[] targetModuleIDs =
63 _deploymentManager.getNonRunningModules(
64 ModuleType.WAR, _deploymentManager.getTargets());
65
66 if ((targetModuleIDs != null) && (targetModuleIDs.length > 0)) {
67 for (TargetModuleID targetModuleID : targetModuleIDs) {
68 if (!_warContext.equals(targetModuleID.getModuleID())) {
69 continue;
70 }
71
72 ProgressObject startProgress = _deploymentManager.start(
73 new TargetModuleID[] {targetModuleID});
74
75 startProgress.addProgressListener(
76 new StartProgressListener(_deploymentHandler));
77
78 _deploymentHandler.setError(false);
79 _deploymentHandler.setStarted(true);
80
81 break;
82 }
83 }
84 else {
85 targetModuleIDs = _deploymentManager.getAvailableModules(
86 ModuleType.WAR, _deploymentManager.getTargets());
87
88 for (TargetModuleID targetModuleID : targetModuleIDs) {
89 if (!_warContext.equals(targetModuleID.getModuleID())) {
90 continue;
91 }
92
93 ProgressObject startProgress = _deploymentManager.start(
94 new TargetModuleID[] {targetModuleID});
95
96 startProgress.addProgressListener(
97 new StartProgressListener(_deploymentHandler));
98
99 _deploymentHandler.setError(false);
100 _deploymentHandler.setStarted(true);
101
102 break;
103 }
104 }
105 }
106 catch (Exception e) {
107 _log.error(e, e);
108
109 _deploymentHandler.setError(true);
110 _deploymentHandler.setStarted(false);
111 }
112 }
113 else if (deploymentStatus.isFailed()) {
114 _deploymentHandler.setError(true);
115 _deploymentHandler.setStarted(false);
116 }
117 }
118
119 private static Log _log =
120 LogFactoryUtil.getLog(DeploymentProgressListener.class);
121
122 private DeploymentHandler _deploymentHandler;
123 private String _warContext;
124 private DeploymentManager _deploymentManager;
125
126 }