Skip to content

Commit 02e1add

Browse files
committed
Merge branch 'develop'
2 parents 0a2198a + 8aa02cb commit 02e1add

File tree

3 files changed

+25
-38
lines changed

3 files changed

+25
-38
lines changed

core/src/main/java/com/exadel/etoolbox/rolloutmanager/core/servlets/RolloutServlet.java

+23-36
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ protected void doPost(final SlingHttpServletRequest request, final SlingHttpServ
110110
private void writeStatusesIfFailed(List<RolloutStatus> rolloutStatuses, SlingHttpServletResponse response) {
111111
List<String> failedTargets = rolloutStatuses.stream()
112112
.filter(status -> !status.isSuccess())
113-
.flatMap(status -> status.getTargets().stream())
113+
.map(RolloutStatus::getTarget)
114114
.collect(Collectors.toList());
115115
if (CollectionUtils.isNotEmpty(failedTargets)) {
116116
LOG.debug("Rollout failed for the following targets: {}", failedTargets);
@@ -136,49 +136,40 @@ private List<RolloutStatus> doItemsRollout(RolloutItem[] items, PageManager page
136136

137137
private Stream<RolloutStatus> rolloutSortedByDepthItems(List<RolloutItem> items, PageManager pageManager, boolean isDeep) {
138138
return items.stream()
139-
.collect(Collectors.groupingBy(RolloutItem::getMaster))
140-
.entrySet()
141-
.stream()
142-
.map(masterToTargets -> rollout(masterToTargets.getKey(), masterToTargets.getValue(), pageManager, isDeep));
139+
.filter(item -> StringUtils.isNotBlank(item.getTarget()))
140+
.map(item -> rollout(item, pageManager, isDeep));
143141
}
144142

145-
private RolloutStatus rollout(String masterPath, List<RolloutItem> targetItems, PageManager pageManager, boolean isDeep) {
146-
RolloutStatus status = new RolloutStatus();
147-
148-
List<String> targetPaths = rolloutItemsToTargetPaths(targetItems);
149-
status.setTargets(targetPaths);
143+
private RolloutStatus rollout(RolloutItem targetItem, PageManager pageManager, boolean isDeep) {
144+
String targetPath = targetItem.getTarget();
145+
RolloutStatus status = new RolloutStatus(targetPath);
150146

147+
String masterPath = targetItem.getMaster();
151148
Optional<Page> masterPage = Optional.ofNullable(pageManager.getPage(masterPath));
152-
if (!masterPage.isPresent() || CollectionUtils.isEmpty(targetPaths)) {
149+
if (!masterPage.isPresent()) {
153150
status.setSuccess(false);
154-
LOG.warn("Rollout failed - master page is null or targets are empty, master page path: {}", masterPath);
151+
LOG.warn("Rollout failed - master page is null, master page path: {}", masterPath);
155152
return status;
156153
}
157154

158-
RolloutManager.RolloutParams params = toRolloutParams(masterPage.get(), targetPaths, isDeep);
155+
RolloutManager.RolloutParams params = toRolloutParams(masterPage.get(), targetPath, isDeep);
159156
try {
160-
LOG.debug(getRolloutLogMessage("Item rollout started", masterPath, params.targets));
157+
LOG.debug("Item rollout started, master: {}, target: {}", masterPath, targetPath);
161158
rolloutManager.rollout(params);
162159
status.setSuccess(true);
163-
LOG.debug(getRolloutLogMessage("Item rollout completed", masterPath, params.targets));
160+
LOG.debug("Item rollout completed, master: {}, target: {}", masterPath, targetPath);
164161
} catch (WCMException e) {
165162
status.setSuccess(false);
166-
LOG.error(getRolloutLogMessage("Item rollout failed", masterPath, params.targets), e);
163+
String message = String.format("Item rollout failed, master: %s, target: %s", masterPath, targetPath);
164+
LOG.error(message, e);
167165
}
168166
return status;
169167
}
170168

171-
private List<String> rolloutItemsToTargetPaths(List<RolloutItem> items) {
172-
return items.stream()
173-
.map(RolloutItem::getTarget)
174-
.filter(StringUtils::isNotBlank)
175-
.collect(Collectors.toList());
176-
}
177-
178-
private RolloutManager.RolloutParams toRolloutParams(Page masterPage, List<String> targetPaths, boolean isDeep) {
169+
private RolloutManager.RolloutParams toRolloutParams(Page masterPage, String targetPath, boolean isDeep) {
179170
RolloutManager.RolloutParams params = new RolloutManager.RolloutParams();
180171
params.master = masterPage;
181-
params.targets = targetPaths.toArray(new String[0]);
172+
params.targets = new String[]{targetPath};
182173
params.isDeep = isDeep;
183174
params.trigger = RolloutManager.Trigger.ROLLOUT;
184175
return params;
@@ -193,10 +184,6 @@ private RolloutItem[] jsonArrayToRolloutItems(String jsonArray) {
193184
return new RolloutItem[0];
194185
}
195186

196-
private String getRolloutLogMessage(String completionMsg, String masterPath, String[] targets) {
197-
return String.format("%s, master: %s, targets: %s", completionMsg, masterPath, Arrays.toString(targets));
198-
}
199-
200187
private static class RolloutItem {
201188
private String master;
202189
private String target;
@@ -217,7 +204,11 @@ public int getDepth() {
217204

218205
private static class RolloutStatus {
219206
private boolean isSuccess;
220-
private List<String> targets;
207+
private final String target;
208+
209+
public RolloutStatus(String target) {
210+
this.target = target;
211+
}
221212

222213
public boolean isSuccess() {
223214
return isSuccess;
@@ -227,12 +218,8 @@ public void setSuccess(boolean success) {
227218
isSuccess = success;
228219
}
229220

230-
public List<String> getTargets() {
231-
return targets;
232-
}
233-
234-
public void setTargets(List<String> targets) {
235-
this.targets = targets;
221+
public String getTarget() {
222+
return target;
236223
}
237224
}
238225
}

core/src/test/java/com/exadel/etoolbox/rolloutmanager/core/servlets/RolloutServletTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ void doPost_RolloutTargets_Success() throws IOException, WCMException {
133133

134134
fixture.doPost(request, response);
135135

136-
verify(rolloutManager, times(3)).rollout(any(RolloutManager.RolloutParams.class));
136+
verify(rolloutManager, times(6)).rollout(any(RolloutManager.RolloutParams.class));
137137

138138
assertEquals(HttpStatus.SC_OK, response.getStatus());
139139
}

ui.apps/src/main/content/jcr_root/apps/etoolbox-rollout-manager/clientlibs/rollout-manager-ui/css/console-ui.checkboxlist.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,5 @@
6767

6868
.rollout-manager-logger-dialog .coral3-Dialog-wrapper {
6969
width: 500px;
70-
height: 165px;
70+
height: auto;
7171
}

0 commit comments

Comments
 (0)