Skip to content

Commit a07a4c5

Browse files
committed
Use Jackson
Signed-off-by: Matheus Cruz <matheuscruz.dev@gmail.com>
1 parent 3ae028a commit a07a4c5

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

impl/openapi/src/main/java/io/serverlessworkflow/impl/executors/openapi/JacksonOpenAPIExecutor.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package io.serverlessworkflow.impl.executors.openapi;
1717

18+
import com.fasterxml.jackson.databind.JsonNode;
1819
import io.serverlessworkflow.api.types.ExternalResource;
1920
import io.serverlessworkflow.impl.TaskContext;
2021
import io.serverlessworkflow.impl.WorkflowApplication;
@@ -24,7 +25,6 @@
2425
import io.serverlessworkflow.impl.executors.http.HttpExecutor;
2526
import io.serverlessworkflow.impl.executors.http.HttpExecutorBuilder;
2627
import io.serverlessworkflow.impl.resources.ResourceLoaderUtils;
27-
import io.swagger.v3.oas.models.media.Schema;
2828
import java.util.Collection;
2929
import java.util.HashMap;
3030
import java.util.HashSet;
@@ -35,13 +35,13 @@
3535

3636
class JacksonOpenAPIExecutor implements CallableTask {
3737

38-
private final OpenAPIProcessor processor;
38+
private final JacksonOpenAPIProcessor processor;
3939
private final ExternalResource resource;
4040
private final Map<String, Object> parameters;
4141
private final HttpExecutorBuilder builder;
4242

4343
JacksonOpenAPIExecutor(
44-
OpenAPIProcessor processor,
44+
JacksonOpenAPIProcessor processor,
4545
ExternalResource resource,
4646
Map<String, Object> parameters,
4747
HttpExecutorBuilder builder) {
@@ -56,7 +56,7 @@ public CompletableFuture<WorkflowModel> apply(
5656
WorkflowContext workflowContext, TaskContext taskContext, WorkflowModel input) {
5757

5858
// In the same workflow, access to an already cached document
59-
final OperationDefinition operationDefinition =
59+
final JacksonOperationDefinition operationDefinition =
6060
processor.parse(
6161
workflowContext
6262
.definition()
@@ -89,14 +89,15 @@ public CompletableFuture<WorkflowModel> apply(
8989
return future;
9090
}
9191

92-
private void fillHttpBuilder(WorkflowApplication application, OperationDefinition operation) {
92+
private void fillHttpBuilder(
93+
WorkflowApplication application, JacksonOperationDefinition operation) {
9394
Map<String, Object> headersMap = new HashMap<>();
9495
Map<String, Object> queryMap = new HashMap<>();
9596
Map<String, Object> pathParameters = new HashMap<>();
9697
Set<String> missingParams = new HashSet<>();
9798

9899
Map<String, Object> bodyParameters = new HashMap<>(parameters);
99-
for (ParameterDefinition parameter : operation.getParameters()) {
100+
for (JacksonParameterDefinition parameter : operation.getParameters()) {
100101
switch (parameter.getIn()) {
101102
case "header":
102103
param(parameter, bodyParameters, headersMap, missingParams);
@@ -113,8 +114,8 @@ private void fillHttpBuilder(WorkflowApplication application, OperationDefinitio
113114
if (!missingParams.isEmpty()) {
114115
throw new IllegalArgumentException(
115116
"Missing required OpenAPI parameters for operation '"
116-
+ (operation.getOperation().getOperationId() != null
117-
? operation.getOperation().getOperationId()
117+
+ (operation.getOperation().get("operationId") != null
118+
? operation.getOperation().get("operationId").asText()
118119
: "<unknown>" + "': ")
119120
+ missingParams);
120121
}
@@ -127,16 +128,17 @@ private void fillHttpBuilder(WorkflowApplication application, OperationDefinitio
127128
}
128129

129130
private void param(
130-
ParameterDefinition parameter,
131+
JacksonParameterDefinition parameter,
131132
Map<String, Object> origMap,
132133
Map<String, Object> collectorMap,
133134
Set<String> missingParams) {
134135
String name = parameter.getName();
135136
if (origMap.containsKey(name)) {
136137
collectorMap.put(parameter.getName(), origMap.remove(name));
137138
} else if (parameter.getRequired()) {
138-
Schema<?> schema = parameter.getSchema();
139-
Object defaultValue = schema != null ? schema.getDefault() : null;
139+
140+
JsonNode schema = parameter.getSchema();
141+
Object defaultValue = schema != null ? schema.get("default") : null;
140142
if (defaultValue != null) {
141143
collectorMap.put(name, defaultValue);
142144
} else {

impl/openapi/src/main/java/io/serverlessworkflow/impl/executors/openapi/OpenAPIExecutorBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
public class OpenAPIExecutorBuilder implements CallableTaskBuilder<CallOpenAPI> {
3030

31-
private OpenAPIProcessor processor;
31+
private JacksonOpenAPIProcessor processor;
3232
private ExternalResource resource;
3333
private Map<String, Object> parameters;
3434
private HttpExecutorBuilder builder;
@@ -42,7 +42,7 @@ public boolean accept(Class<? extends TaskBase> clazz) {
4242
public void init(
4343
CallOpenAPI task, WorkflowDefinition definition, WorkflowMutablePosition position) {
4444
OpenAPIArguments with = task.getWith();
45-
this.processor = new OpenAPIProcessor(with.getOperationId());
45+
this.processor = new JacksonOpenAPIProcessor(with.getOperationId());
4646
this.resource = with.getDocument();
4747
this.parameters =
4848
with.getParameters() != null && with.getParameters().getAdditionalProperties() != null
@@ -56,6 +56,6 @@ public void init(
5656

5757
@Override
5858
public CallableTask build() {
59-
return new OpenAPIExecutor(processor, resource, parameters, builder);
59+
return new JacksonOpenAPIExecutor(processor, resource, parameters, builder);
6060
}
6161
}

0 commit comments

Comments
 (0)