@@ -110,7 +110,7 @@ protected void doPost(final SlingHttpServletRequest request, final SlingHttpServ
110
110
private void writeStatusesIfFailed (List <RolloutStatus > rolloutStatuses , SlingHttpServletResponse response ) {
111
111
List <String > failedTargets = rolloutStatuses .stream ()
112
112
.filter (status -> !status .isSuccess ())
113
- .flatMap ( status -> status . getTargets (). stream () )
113
+ .map ( RolloutStatus :: getTarget )
114
114
.collect (Collectors .toList ());
115
115
if (CollectionUtils .isNotEmpty (failedTargets )) {
116
116
LOG .debug ("Rollout failed for the following targets: {}" , failedTargets );
@@ -136,49 +136,40 @@ private List<RolloutStatus> doItemsRollout(RolloutItem[] items, PageManager page
136
136
137
137
private Stream <RolloutStatus > rolloutSortedByDepthItems (List <RolloutItem > items , PageManager pageManager , boolean isDeep ) {
138
138
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 ));
143
141
}
144
142
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 );
150
146
147
+ String masterPath = targetItem .getMaster ();
151
148
Optional <Page > masterPage = Optional .ofNullable (pageManager .getPage (masterPath ));
152
- if (!masterPage .isPresent () || CollectionUtils . isEmpty ( targetPaths ) ) {
149
+ if (!masterPage .isPresent ()) {
153
150
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 );
155
152
return status ;
156
153
}
157
154
158
- RolloutManager .RolloutParams params = toRolloutParams (masterPage .get (), targetPaths , isDeep );
155
+ RolloutManager .RolloutParams params = toRolloutParams (masterPage .get (), targetPath , isDeep );
159
156
try {
160
- LOG .debug (getRolloutLogMessage ( "Item rollout started" , masterPath , params . targets ) );
157
+ LOG .debug ("Item rollout started, master: {}, target: {} " , masterPath , targetPath );
161
158
rolloutManager .rollout (params );
162
159
status .setSuccess (true );
163
- LOG .debug (getRolloutLogMessage ( "Item rollout completed" , masterPath , params . targets ) );
160
+ LOG .debug ("Item rollout completed, master: {}, target: {} " , masterPath , targetPath );
164
161
} catch (WCMException e ) {
165
162
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 );
167
165
}
168
166
return status ;
169
167
}
170
168
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 ) {
179
170
RolloutManager .RolloutParams params = new RolloutManager .RolloutParams ();
180
171
params .master = masterPage ;
181
- params .targets = targetPaths . toArray ( new String [0 ]) ;
172
+ params .targets = new String []{ targetPath } ;
182
173
params .isDeep = isDeep ;
183
174
params .trigger = RolloutManager .Trigger .ROLLOUT ;
184
175
return params ;
@@ -193,10 +184,6 @@ private RolloutItem[] jsonArrayToRolloutItems(String jsonArray) {
193
184
return new RolloutItem [0 ];
194
185
}
195
186
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
-
200
187
private static class RolloutItem {
201
188
private String master ;
202
189
private String target ;
@@ -217,7 +204,11 @@ public int getDepth() {
217
204
218
205
private static class RolloutStatus {
219
206
private boolean isSuccess ;
220
- private List <String > targets ;
207
+ private final String target ;
208
+
209
+ public RolloutStatus (String target ) {
210
+ this .target = target ;
211
+ }
221
212
222
213
public boolean isSuccess () {
223
214
return isSuccess ;
@@ -227,12 +218,8 @@ public void setSuccess(boolean success) {
227
218
isSuccess = success ;
228
219
}
229
220
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 ;
236
223
}
237
224
}
238
225
}
0 commit comments