1515 */
1616package io .serverlessworkflow .impl .executors .openapi ;
1717
18+ import com .fasterxml .jackson .databind .JsonNode ;
1819import io .serverlessworkflow .api .types .ExternalResource ;
1920import io .serverlessworkflow .impl .TaskContext ;
2021import io .serverlessworkflow .impl .WorkflowApplication ;
2425import io .serverlessworkflow .impl .executors .http .HttpExecutor ;
2526import io .serverlessworkflow .impl .executors .http .HttpExecutorBuilder ;
2627import io .serverlessworkflow .impl .resources .ResourceLoaderUtils ;
27- import io .swagger .v3 .oas .models .media .Schema ;
2828import java .util .Collection ;
2929import java .util .HashMap ;
3030import java .util .HashSet ;
3535
3636class 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 {
0 commit comments