@@ -89,8 +89,10 @@ public BaseHttpActivityDelegate(FlowableHttpClient httpClient) {
8989
9090 protected abstract FlowableHttpClient createHttpClient ();
9191
92- protected HttpRequest createRequest (VariableContainer variableContainer , String prefix ) {
92+ protected RequestData createRequest (VariableContainer variableContainer , String fallbackPrefix ) {
9393 HttpRequest request = new HttpRequest ();
94+ RequestData requestData = new RequestData ();
95+ requestData .setHttpRequest (request );
9496
9597 request .setMethod (ExpressionUtils .getStringFromField (requestMethod , variableContainer ));
9698 request .setUrl (ExpressionUtils .getStringFromField (requestUrl , variableContainer ));
@@ -99,46 +101,47 @@ protected HttpRequest createRequest(VariableContainer variableContainer, String
99101 request .setBodyEncoding (ExpressionUtils .getStringFromField (requestBodyEncoding , variableContainer ));
100102 request .setTimeout (ExpressionUtils .getIntFromField (requestTimeout , variableContainer ));
101103 request .setNoRedirects (ExpressionUtils .getBooleanFromField (disallowRedirects , variableContainer ));
102- request .setIgnoreErrors (ExpressionUtils .getBooleanFromField (ignoreException , variableContainer ));
103- request .setSaveRequest (ExpressionUtils .getBooleanFromField (saveRequestVariables , variableContainer ));
104- request .setSaveResponse (ExpressionUtils .getBooleanFromField (saveResponseParameters , variableContainer ));
105- request .setSaveResponseTransient (ExpressionUtils .getBooleanFromField (saveResponseParametersTransient , variableContainer ));
106- request .setSaveResponseAsJson (ExpressionUtils .getBooleanFromField (saveResponseVariableAsJson , variableContainer ));
107- request .setPrefix (ExpressionUtils .getStringFromField (resultVariablePrefix , variableContainer ));
104+ requestData .setIgnoreErrors (ExpressionUtils .getBooleanFromField (ignoreException , variableContainer ));
105+ requestData .setSaveRequest (ExpressionUtils .getBooleanFromField (saveRequestVariables , variableContainer ));
106+ requestData .setSaveResponse (ExpressionUtils .getBooleanFromField (saveResponseParameters , variableContainer ));
107+ requestData .setSaveResponseTransient (ExpressionUtils .getBooleanFromField (saveResponseParametersTransient , variableContainer ));
108+ requestData .setSaveResponseAsJson (ExpressionUtils .getBooleanFromField (saveResponseVariableAsJson , variableContainer ));
109+ requestData .setPrefix (ExpressionUtils .getStringFromField (resultVariablePrefix , variableContainer ));
108110
109111 String failCodes = ExpressionUtils .getStringFromField (failStatusCodes , variableContainer );
110112 String handleCodes = ExpressionUtils .getStringFromField (handleStatusCodes , variableContainer );
111113
112114 if (failCodes != null ) {
113- request .setFailCodes (ExpressionUtils .getStringSetFromField (failCodes ));
115+ requestData .setFailCodes (ExpressionUtils .getStringSetFromField (failCodes ));
114116 }
115117 if (handleCodes != null ) {
116- request .setHandleCodes (ExpressionUtils .getStringSetFromField (handleCodes ));
118+ requestData .setHandleCodes (ExpressionUtils .getStringSetFromField (handleCodes ));
117119 }
118120
119- if (request .getPrefix () == null ) {
120- request .setPrefix (prefix );
121+ if (requestData .getPrefix () == null ) {
122+ requestData .setPrefix (fallbackPrefix );
121123 }
122124
123125 // Save request fields
124- if (request .isSaveRequest ()) {
125- variableContainer .setVariable (request .getPrefix () + "RequestMethod" , request .getMethod ());
126- variableContainer .setVariable (request .getPrefix () + "RequestUrl" , request .getUrl ());
127- variableContainer .setVariable (request .getPrefix () + "RequestHeaders" , request .getHttpHeadersAsString ());
128- variableContainer .setVariable (request .getPrefix () + "RequestBody" , request .getBody ());
129- variableContainer .setVariable (request .getPrefix () + "RequestBodyEncoding" , request .getBodyEncoding ());
130- variableContainer .setVariable (request .getPrefix () + "RequestTimeout" , request .getTimeout ());
131- variableContainer .setVariable (request .getPrefix () + "DisallowRedirects" , request .isNoRedirects ());
132- variableContainer .setVariable (request .getPrefix () + "FailStatusCodes" , failCodes );
133- variableContainer .setVariable (request .getPrefix () + "HandleStatusCodes" , handleCodes );
134- variableContainer .setVariable (request .getPrefix () + "IgnoreException" , request .isIgnoreErrors ());
135- variableContainer .setVariable (request .getPrefix () + "SaveRequestVariables" , request .isSaveRequest ());
136- variableContainer .setVariable (request .getPrefix () + "SaveResponseParameters" , request .isSaveResponse ());
137- }
138- return request ;
126+ if (requestData .isSaveRequest ()) {
127+ String prefix = requestData .getPrefix ();
128+ variableContainer .setVariable (prefix + "RequestMethod" , request .getMethod ());
129+ variableContainer .setVariable (prefix + "RequestUrl" , request .getUrl ());
130+ variableContainer .setVariable (prefix + "RequestHeaders" , request .getHttpHeadersAsString ());
131+ variableContainer .setVariable (prefix + "RequestBody" , request .getBody ());
132+ variableContainer .setVariable (prefix + "RequestBodyEncoding" , request .getBodyEncoding ());
133+ variableContainer .setVariable (prefix + "RequestTimeout" , request .getTimeout ());
134+ variableContainer .setVariable (prefix + "DisallowRedirects" , request .isNoRedirects ());
135+ variableContainer .setVariable (prefix + "FailStatusCodes" , failCodes );
136+ variableContainer .setVariable (prefix + "HandleStatusCodes" , handleCodes );
137+ variableContainer .setVariable (prefix + "IgnoreException" , requestData .isIgnoreErrors ());
138+ variableContainer .setVariable (prefix + "SaveRequestVariables" , requestData .isSaveRequest ());
139+ variableContainer .setVariable (prefix + "SaveResponseParameters" , requestData .isSaveResponse ());
140+ }
141+ return requestData ;
139142 }
140143
141- protected void saveResponseFields (VariableContainer variableContainer , HttpRequest request , HttpResponse response , ObjectMapper objectMapper )
144+ protected void saveResponseFields (VariableContainer variableContainer , RequestData request , HttpResponse response , ObjectMapper objectMapper )
142145 throws IOException {
143146 // Save response fields
144147 if (response != null ) {
@@ -202,8 +205,8 @@ protected void saveResponseFields(VariableContainer variableContainer, HttpReque
202205 }
203206 }
204207
205- protected CompletableFuture <ExecutionData > prepareAndExecuteRequest (HttpRequest request , boolean parallelInSameTransaction , AsyncTaskInvoker taskInvoker ) {
206- ExecutableHttpRequest httpRequest = httpClient .prepareRequest (request );
208+ protected CompletableFuture <ExecutionData > prepareAndExecuteRequest (RequestData request , boolean parallelInSameTransaction , AsyncTaskInvoker taskInvoker ) {
209+ ExecutableHttpRequest httpRequest = httpClient .prepareRequest (request . getHttpRequest () );
207210
208211 if (!parallelInSameTransaction ) {
209212 CompletableFuture <ExecutionData > future = new CompletableFuture <>();
@@ -264,21 +267,21 @@ protected HttpHeaders getRequestHeaders(VariableContainer variableContainer) {
264267
265268 public static class ExecutionData {
266269
267- protected HttpRequest request ;
270+ protected RequestData request ;
268271 protected HttpResponse response ;
269272 protected Throwable exception ;
270273
271- public ExecutionData (HttpRequest request , HttpResponse response ) {
274+ public ExecutionData (RequestData request , HttpResponse response ) {
272275 this (request , response , null );
273276 }
274277
275- public ExecutionData (HttpRequest request , HttpResponse response , Throwable exception ) {
278+ public ExecutionData (RequestData request , HttpResponse response , Throwable exception ) {
276279 this .request = request ;
277280 this .response = response ;
278281 this .exception = exception ;
279282 }
280283
281- public HttpRequest getRequest () {
284+ public RequestData getRequest () {
282285 return request ;
283286 }
284287
@@ -290,4 +293,93 @@ public Throwable getException() {
290293 return exception ;
291294 }
292295 }
296+
297+ public static class RequestData {
298+
299+ protected HttpRequest httpRequest ;
300+ protected Set <String > failCodes ;
301+ protected Set <String > handleCodes ;
302+ protected boolean ignoreErrors ;
303+ protected boolean saveRequest ;
304+ protected boolean saveResponse ;
305+ protected boolean saveResponseTransient ;
306+ protected boolean saveResponseAsJson ;
307+ protected String prefix ;
308+
309+ public HttpRequest getHttpRequest () {
310+ return httpRequest ;
311+ }
312+
313+ public void setHttpRequest (HttpRequest httpRequest ) {
314+ this .httpRequest = httpRequest ;
315+ }
316+
317+ public Set <String > getFailCodes () {
318+ return failCodes ;
319+ }
320+
321+ public void setFailCodes (Set <String > failCodes ) {
322+ this .failCodes = failCodes ;
323+ }
324+
325+ public Set <String > getHandleCodes () {
326+ return handleCodes ;
327+ }
328+
329+ public void setHandleCodes (Set <String > handleCodes ) {
330+ this .handleCodes = handleCodes ;
331+ }
332+
333+ public boolean isIgnoreErrors () {
334+ return ignoreErrors ;
335+ }
336+
337+ public void setIgnoreErrors (boolean ignoreErrors ) {
338+ this .ignoreErrors = ignoreErrors ;
339+ }
340+
341+ public boolean isSaveRequest () {
342+ return saveRequest ;
343+ }
344+
345+ public void setSaveRequest (boolean saveRequest ) {
346+ this .saveRequest = saveRequest ;
347+ }
348+
349+ public boolean isSaveResponse () {
350+ return saveResponse ;
351+ }
352+
353+ public void setSaveResponse (boolean saveResponse ) {
354+ this .saveResponse = saveResponse ;
355+ }
356+
357+ public boolean isSaveResponseTransient () {
358+ return saveResponseTransient ;
359+ }
360+
361+ public void setSaveResponseTransient (boolean saveResponseTransient ) {
362+ this .saveResponseTransient = saveResponseTransient ;
363+ }
364+
365+ public boolean isSaveResponseAsJson () {
366+ return saveResponseAsJson ;
367+ }
368+
369+ public void setSaveResponseAsJson (boolean saveResponseAsJson ) {
370+ this .saveResponseAsJson = saveResponseAsJson ;
371+ }
372+
373+ public String getPrefix () {
374+ return prefix ;
375+ }
376+
377+ public void setPrefix (String prefix ) {
378+ this .prefix = prefix ;
379+ }
380+
381+ public boolean isNoRedirects () {
382+ return httpRequest .isNoRedirects ();
383+ }
384+ }
293385}
0 commit comments