Skip to content

Commit da277f6

Browse files
committed
Remove activity specific information from HttpRequest
1 parent 773b964 commit da277f6

File tree

6 files changed

+133
-290
lines changed

6 files changed

+133
-290
lines changed

modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/behavior/impl/http/DefaultCmmnHttpActivityDelegate.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ protected FlowableHttpClient createHttpClient() {
6565

6666
@Override
6767
public CompletableFuture<ExecutionData> execute(DelegatePlanItemInstance planItemInstance, AsyncTaskInvoker taskInvoker) {
68-
HttpRequest request;
68+
RequestData request;
6969

7070
HttpServiceTask httpServiceTask = (HttpServiceTask) planItemInstance.getPlanItemDefinition();
7171
try {
@@ -83,11 +83,11 @@ public CompletableFuture<ExecutionData> execute(DelegatePlanItemInstance planIte
8383
HttpRequestHandler httpRequestHandler = createHttpRequestHandler(httpServiceTask.getHttpRequestHandler(), cmmnEngineConfiguration);
8484

8585
if (httpRequestHandler != null) {
86-
httpRequestHandler.handleHttpRequest(planItemInstance, request, null);
86+
httpRequestHandler.handleHttpRequest(planItemInstance, request.getHttpRequest(), null);
8787
}
8888

8989
// Validate request
90-
validateRequest(request);
90+
validateRequest(request.getHttpRequest());
9191

9292
boolean parallelInSameTransaction;
9393
if (httpServiceTask.getParallelInSameTransaction() != null) {
@@ -102,7 +102,7 @@ public CompletableFuture<ExecutionData> execute(DelegatePlanItemInstance planIte
102102
@Override
103103
public void afterExecution(DelegatePlanItemInstance planItemInstance, ExecutionData result) {
104104

105-
HttpRequest request = result.getRequest();
105+
RequestData request = result.getRequest();
106106
HttpResponse response = result.getResponse();
107107

108108
Throwable resultException = result.getException();

modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/http/DefaultBpmnHttpActivityDelegate.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ protected FlowableHttpClient createHttpClient() {
7777

7878
@Override
7979
public CompletableFuture<ExecutionData> execute(DelegateExecution execution, AsyncTaskInvoker taskInvoker) {
80-
HttpRequest request;
80+
RequestData request;
8181

8282
HttpServiceTask httpServiceTask = (HttpServiceTask) execution.getCurrentFlowElement();
8383
try {
@@ -95,11 +95,11 @@ public CompletableFuture<ExecutionData> execute(DelegateExecution execution, Asy
9595
HttpRequestHandler httpRequestHandler = createHttpRequestHandler(httpServiceTask.getHttpRequestHandler(), processEngineConfiguration);
9696

9797
if (httpRequestHandler != null) {
98-
httpRequestHandler.handleHttpRequest(execution, request, null);
98+
httpRequestHandler.handleHttpRequest(execution, request.getHttpRequest(), null);
9999
}
100100

101101
// Validate request
102-
validateRequest(request);
102+
validateRequest(request.getHttpRequest());
103103

104104
boolean parallelInSameTransaction;
105105
if (httpServiceTask.getParallelInSameTransaction() != null) {
@@ -114,7 +114,7 @@ public CompletableFuture<ExecutionData> execute(DelegateExecution execution, Asy
114114
@Override
115115
public void afterExecution(DelegateExecution execution, ExecutionData result) {
116116

117-
HttpRequest request = result.getRequest();
117+
RequestData request = result.getRequest();
118118
HttpResponse response = result.getResponse();
119119

120120
Throwable resultException = result.getException();

modules/flowable-http-common/src/main/java/org/flowable/http/common/api/HttpRequest.java

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
import java.util.ArrayList;
1616
import java.util.Collection;
17-
import java.util.Set;
1817

1918
import org.flowable.common.engine.api.FlowableIllegalStateException;
2019

@@ -31,14 +30,6 @@ public class HttpRequest {
3130
protected Collection<MultiValuePart> multiValueParts;
3231
protected int timeout;
3332
protected boolean noRedirects;
34-
protected Set<String> failCodes;
35-
protected Set<String> handleCodes;
36-
protected boolean ignoreErrors;
37-
protected boolean saveRequest;
38-
protected boolean saveResponse;
39-
protected boolean saveResponseTransient;
40-
protected boolean saveResponseAsJson;
41-
protected String prefix;
4233

4334
public String getMethod() {
4435
return method;
@@ -118,67 +109,4 @@ public void setNoRedirects(boolean noRedirects) {
118109
this.noRedirects = noRedirects;
119110
}
120111

121-
public Set<String> getFailCodes() {
122-
return failCodes;
123-
}
124-
125-
public void setFailCodes(Set<String> failCodes) {
126-
this.failCodes = failCodes;
127-
}
128-
129-
public Set<String> getHandleCodes() {
130-
return handleCodes;
131-
}
132-
133-
public void setHandleCodes(Set<String> handleCodes) {
134-
this.handleCodes = handleCodes;
135-
}
136-
137-
public boolean isIgnoreErrors() {
138-
return ignoreErrors;
139-
}
140-
141-
public void setIgnoreErrors(boolean ignoreErrors) {
142-
this.ignoreErrors = ignoreErrors;
143-
}
144-
145-
public boolean isSaveRequest() {
146-
return saveRequest;
147-
}
148-
149-
public void setSaveRequest(boolean saveRequest) {
150-
this.saveRequest = saveRequest;
151-
}
152-
153-
public boolean isSaveResponse() {
154-
return saveResponse;
155-
}
156-
157-
public void setSaveResponse(boolean saveResponse) {
158-
this.saveResponse = saveResponse;
159-
}
160-
161-
public boolean isSaveResponseTransient() {
162-
return saveResponseTransient;
163-
}
164-
165-
public void setSaveResponseTransient(boolean saveResponseTransient) {
166-
this.saveResponseTransient = saveResponseTransient;
167-
}
168-
169-
public boolean isSaveResponseAsJson() {
170-
return saveResponseAsJson;
171-
}
172-
173-
public void setSaveResponseAsJson(boolean saveResponseAsJson) {
174-
this.saveResponseAsJson = saveResponseAsJson;
175-
}
176-
177-
public String getPrefix() {
178-
return prefix;
179-
}
180-
181-
public void setPrefix(String prefix) {
182-
this.prefix = prefix;
183-
}
184112
}

modules/flowable-http-common/src/main/java/org/flowable/http/common/impl/BaseHttpActivityDelegate.java

Lines changed: 125 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)