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