diff --git a/impl/README.md b/impl/README.md index e041285da..931a66df2 100644 --- a/impl/README.md +++ b/impl/README.md @@ -70,17 +70,26 @@ This reference implementation can run workflows consisting of: This SDK is modular by design—pull in only what you need: -* **`serverlessworkflow-impl-core`** +* **serverlessworkflow-impl-core** Workflow engine & core interfaces. Depends on generated types and CloudEvents SDK. -* **`serverlessworkflow-impl-jackson`** - Adds Jackson integration, JQ expressions, JSON Schema validation, and CloudEvents (de)serialization. +* **serverlessworkflow-impl-jackson** 👉 **Most users add this one.** - -* **`serverlessworkflow-impl-http`** + + Adds Jackson integration, JQ expressions, JSON Schema validation, and CloudEvents (de)serialization. + + Internally, this module is an aggregation of smaller modules to allow part replacement if needed: + * **serverlessworkflow-impl-jq** JQ expression implementation + * **serverlessworkflow-impl-model** Jackson model implementation + * **serverlessworkflow-impl-validation** Schema validation implementation + * **serverlessworkflow-impl-lifecycle-events** Enable publication of lifecycle events as Json cloud events. + * **serverlessworkflow-impl-json** Json common utilities shared by all modules in this list + + +* **serverlessworkflow-impl-http** HTTP `Call` task handler. -* **`serverlessworkflow-impl-jackson-jwt`** +* **serverlessworkflow-impl-jackson-jwt** OAuth2/OIDC helpers for HTTP calls. There are also companion modules/docs for: diff --git a/impl/jackson/pom.xml b/impl/jackson/pom.xml index 1f123648c..3690fafa3 100644 --- a/impl/jackson/pom.xml +++ b/impl/jackson/pom.xml @@ -6,23 +6,28 @@ 8.0.0-SNAPSHOT serverlessworkflow-impl-jackson + pom Serverless Workflow :: Impl :: Jackson - - io.serverlessworkflow - serverlessworkflow-impl-core - - - io.serverlessworkflow - serverlessworkflow-api - - - io.cloudevents - cloudevents-json-jackson - - - com.networknt - json-schema-validator - + + io.serverlessworkflow + serverlessworkflow-impl-core + + + io.serverlessworkflow + serverlessworkflow-impl-jq + + + io.serverlessworkflow + serverlessworkflow-impl-model + + + io.serverlessworkflow + serverlessworkflow-impl-validation + + + io.serverlessworkflow + serverlessworkflow-impl-lifecycle-events + \ No newline at end of file diff --git a/impl/jq/pom.xml b/impl/jq/pom.xml index 451ab5553..909ace32b 100644 --- a/impl/jq/pom.xml +++ b/impl/jq/pom.xml @@ -8,25 +8,30 @@ serverlessworkflow-impl-jq Serverless Workflow :: Impl :: JQ - - net.thisptr - jackson-jq - - - io.serverlessworkflow - serverlessworkflow-impl-jackson - - - org.junit.jupiter - junit-jupiter-engine - - - org.assertj - assertj-core - - - org.mockito - mockito-core - + + net.thisptr + jackson-jq + + + io.serverlessworkflow + serverlessworkflow-impl-json + + + org.junit.jupiter + junit-jupiter-engine + + + org.assertj + assertj-core + + + org.mockito + mockito-core + + + io.serverlessworkflow + serverlessworkflow-impl-model + test + \ No newline at end of file diff --git a/impl/json-utils/pom.xml b/impl/json-utils/pom.xml new file mode 100644 index 000000000..57627413b --- /dev/null +++ b/impl/json-utils/pom.xml @@ -0,0 +1,24 @@ + + 4.0.0 + + io.serverlessworkflow + serverlessworkflow-impl + 8.0.0-SNAPSHOT + + serverlessworkflow-impl-json + Serverless Workflow :: Impl :: Json utils + + + com.fasterxml.jackson.core + jackson-databind + + + io.serverlessworkflow + serverlessworkflow-impl-core + + + io.cloudevents + cloudevents-json-jackson + + + \ No newline at end of file diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/events/JacksonCloudEventUtils.java b/impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/JacksonCloudEventUtils.java similarity index 96% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/events/JacksonCloudEventUtils.java rename to impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/JacksonCloudEventUtils.java index 61df65020..a3591a93c 100644 --- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/events/JacksonCloudEventUtils.java +++ b/impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/JacksonCloudEventUtils.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.serverlessworkflow.impl.jackson.events; +package io.serverlessworkflow.impl.jackson; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.NullNode; @@ -21,7 +21,6 @@ import io.cloudevents.CloudEvent; import io.cloudevents.CloudEventData; import io.cloudevents.jackson.JsonCloudEventData; -import io.serverlessworkflow.impl.jackson.JsonUtils; import java.io.IOException; import java.io.UncheckedIOException; import java.time.OffsetDateTime; diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/JsonUtils.java b/impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/JsonUtils.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/JsonUtils.java rename to impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/JsonUtils.java diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/MergeUtils.java b/impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/MergeUtils.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/MergeUtils.java rename to impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/MergeUtils.java diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/ObjectMapperFactory.java b/impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/ObjectMapperFactory.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/ObjectMapperFactory.java rename to impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/ObjectMapperFactory.java diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/ObjectMapperFactoryProvider.java b/impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/ObjectMapperFactoryProvider.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/ObjectMapperFactoryProvider.java rename to impl/json-utils/src/main/java/io/serverlessworkflow/impl/jackson/ObjectMapperFactoryProvider.java diff --git a/impl/lifecycleevent/pom.xml b/impl/lifecycleevent/pom.xml new file mode 100644 index 000000000..82ba06973 --- /dev/null +++ b/impl/lifecycleevent/pom.xml @@ -0,0 +1,20 @@ + + 4.0.0 + + io.serverlessworkflow + serverlessworkflow-impl + 8.0.0-SNAPSHOT + + serverlessworkflow-impl-lifecycle-events + Serverless Workflow :: Impl :: Jackson:: Lifecycle Events + + + io.serverlessworkflow + serverlessworkflow-impl-json + + + io.serverlessworkflow + serverlessworkflow-impl-core + + + \ No newline at end of file diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/events/JacksonLifeCyclePublisher.java b/impl/lifecycleevent/src/main/java/io/serverlessworkflow/impl/jackson/events/JacksonLifeCyclePublisher.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/events/JacksonLifeCyclePublisher.java rename to impl/lifecycleevent/src/main/java/io/serverlessworkflow/impl/jackson/events/JacksonLifeCyclePublisher.java diff --git a/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.lifecycle.WorkflowExecutionListener b/impl/lifecycleevent/src/main/resources/META-INF/services/io.serverlessworkflow.impl.lifecycle.WorkflowExecutionListener similarity index 100% rename from impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.lifecycle.WorkflowExecutionListener rename to impl/lifecycleevent/src/main/resources/META-INF/services/io.serverlessworkflow.impl.lifecycle.WorkflowExecutionListener diff --git a/impl/model/pom.xml b/impl/model/pom.xml new file mode 100644 index 000000000..c73779712 --- /dev/null +++ b/impl/model/pom.xml @@ -0,0 +1,20 @@ + + 4.0.0 + + io.serverlessworkflow + serverlessworkflow-impl + 8.0.0-SNAPSHOT + + serverlessworkflow-impl-model + Serverless Workflow :: Impl :: Jackson:: Model + + + io.serverlessworkflow + serverlessworkflow-impl-json + + + io.serverlessworkflow + serverlessworkflow-impl-core + + + \ No newline at end of file diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModel.java b/impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModel.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModel.java rename to impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModel.java diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelCollection.java b/impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelCollection.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelCollection.java rename to impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelCollection.java diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelDeserializer.java b/impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelDeserializer.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelDeserializer.java rename to impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelDeserializer.java diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelFactory.java b/impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelFactory.java similarity index 98% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelFactory.java rename to impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelFactory.java index cb2516143..810207618 100644 --- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelFactory.java +++ b/impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelFactory.java @@ -27,8 +27,8 @@ import io.serverlessworkflow.impl.WorkflowModel; import io.serverlessworkflow.impl.WorkflowModelCollection; import io.serverlessworkflow.impl.WorkflowModelFactory; +import io.serverlessworkflow.impl.jackson.JacksonCloudEventUtils; import io.serverlessworkflow.impl.jackson.JsonUtils; -import io.serverlessworkflow.impl.jackson.events.JacksonCloudEventUtils; import java.math.BigDecimal; import java.time.OffsetDateTime; import java.util.Map; diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelSerializer.java b/impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelSerializer.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelSerializer.java rename to impl/model/src/main/java/io/serverlessworkflow/impl/model/jackson/JacksonModelSerializer.java diff --git a/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.WorkflowModelFactory b/impl/model/src/main/resources/META-INF/services/io.serverlessworkflow.impl.WorkflowModelFactory similarity index 100% rename from impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.WorkflowModelFactory rename to impl/model/src/main/resources/META-INF/services/io.serverlessworkflow.impl.WorkflowModelFactory diff --git a/impl/persistence/jackson-marshaller/pom.xml b/impl/persistence/jackson-marshaller/pom.xml index 322a557ce..7cd1447b8 100644 --- a/impl/persistence/jackson-marshaller/pom.xml +++ b/impl/persistence/jackson-marshaller/pom.xml @@ -14,7 +14,7 @@ io.serverlessworkflow - serverlessworkflow-impl-jackson + serverlessworkflow-impl-model \ No newline at end of file diff --git a/impl/pom.xml b/impl/pom.xml index fe4f6bd32..8996325f8 100644 --- a/impl/pom.xml +++ b/impl/pom.xml @@ -27,6 +27,31 @@ serverlessworkflow-impl-http ${project.version} + + io.serverlessworkflow + serverlessworkflow-impl-json + ${project.version} + + + io.serverlessworkflow + serverlessworkflow-impl-jq + ${project.version} + + + io.serverlessworkflow + serverlessworkflow-impl-model + ${project.version} + + + io.serverlessworkflow + serverlessworkflow-impl-validation + ${project.version} + + + io.serverlessworkflow + serverlessworkflow-impl-lifecycle-events + ${project.version} + io.serverlessworkflow serverlessworkflow-persistence-api @@ -57,11 +82,6 @@ serverlessworkflow-impl-jackson ${project.version} - - io.serverlessworkflow - serverlessworkflow-impl-jq - ${project.version} - net.thisptr jackson-jq @@ -104,5 +124,9 @@ persistence test jq + json-utils + model + lifecycleevent + validation \ No newline at end of file diff --git a/impl/test/pom.xml b/impl/test/pom.xml index 32bc56756..f861f9c55 100644 --- a/impl/test/pom.xml +++ b/impl/test/pom.xml @@ -29,10 +29,6 @@ io.serverlessworkflow serverlessworkflow-impl-http - - io.serverlessworkflow - serverlessworkflow-impl-jq - io.serverlessworkflow serverlessworkflow-impl-jackson-jwt diff --git a/impl/validation/pom.xml b/impl/validation/pom.xml new file mode 100644 index 000000000..b8b77ed69 --- /dev/null +++ b/impl/validation/pom.xml @@ -0,0 +1,28 @@ + + 4.0.0 + + io.serverlessworkflow + serverlessworkflow-impl + 8.0.0-SNAPSHOT + + serverlessworkflow-impl-validation + Serverless Workflow :: Impl :: Jackson:: Validation + + + com.networknt + json-schema-validator + + + io.serverlessworkflow + serverlessworkflow-api + + + io.serverlessworkflow + serverlessworkflow-impl-core + + + io.serverlessworkflow + serverlessworkflow-impl-json + + + \ No newline at end of file diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/schema/JsonSchemaValidator.java b/impl/validation/src/main/java/io/serverlessworkflow/impl/jackson/schema/JsonSchemaValidator.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/schema/JsonSchemaValidator.java rename to impl/validation/src/main/java/io/serverlessworkflow/impl/jackson/schema/JsonSchemaValidator.java diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/schema/JsonSchemaValidatorFactory.java b/impl/validation/src/main/java/io/serverlessworkflow/impl/jackson/schema/JsonSchemaValidatorFactory.java similarity index 100% rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/schema/JsonSchemaValidatorFactory.java rename to impl/validation/src/main/java/io/serverlessworkflow/impl/jackson/schema/JsonSchemaValidatorFactory.java diff --git a/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.schema.SchemaValidatorFactory b/impl/validation/src/main/resources/META-INF/services/io.serverlessworkflow.impl.schema.SchemaValidatorFactory similarity index 100% rename from impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.schema.SchemaValidatorFactory rename to impl/validation/src/main/resources/META-INF/services/io.serverlessworkflow.impl.schema.SchemaValidatorFactory