diff --git a/api/pom.xml b/api/pom.xml
index 662d25c2..8b7e32a9 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -87,7 +87,8 @@
${project.version}
- io.serverlessworkflow.api.types
+ io.serverlessworkflow.api.types
+ io.serverlessworkflow.api.types.jackson
diff --git a/api/src/main/java/io/serverlessworkflow/api/ObjectMapperFactory.java b/api/src/main/java/io/serverlessworkflow/api/ObjectMapperFactory.java
index 78b1e24e..25a3f2a2 100644
--- a/api/src/main/java/io/serverlessworkflow/api/ObjectMapperFactory.java
+++ b/api/src/main/java/io/serverlessworkflow/api/ObjectMapperFactory.java
@@ -21,7 +21,7 @@
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.Feature;
-import io.serverlessworkflow.api.types.JacksonMixInModule;
+import io.serverlessworkflow.api.types.jackson.JacksonMixInModule;
import io.serverlessworkflow.serialization.BeanDeserializerModifierWithValidation;
import io.serverlessworkflow.serialization.URIDeserializer;
import io.serverlessworkflow.serialization.URISerializer;
diff --git a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaCallExecutor.java b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaCallExecutor.java
similarity index 94%
rename from experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaCallExecutor.java
rename to experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaCallExecutor.java
index 8d166986..7e448f77 100644
--- a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaCallExecutor.java
+++ b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaCallExecutor.java
@@ -13,15 +13,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.executors;
+package io.serverlessworkflow.impl.executors.func;
-import io.serverlessworkflow.api.types.CallJava;
import io.serverlessworkflow.api.types.TaskBase;
+import io.serverlessworkflow.api.types.func.CallJava;
import io.serverlessworkflow.impl.TaskContext;
import io.serverlessworkflow.impl.WorkflowApplication;
import io.serverlessworkflow.impl.WorkflowContext;
import io.serverlessworkflow.impl.WorkflowModel;
import io.serverlessworkflow.impl.WorkflowModelFactory;
+import io.serverlessworkflow.impl.executors.CallableTask;
import io.serverlessworkflow.impl.resources.ResourceLoader;
import java.util.concurrent.CompletableFuture;
diff --git a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaForExecutorBuilder.java b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaForExecutorBuilder.java
similarity index 93%
rename from experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaForExecutorBuilder.java
rename to experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaForExecutorBuilder.java
index faa1942c..08fd5c28 100644
--- a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaForExecutorBuilder.java
+++ b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaForExecutorBuilder.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package io.serverlessworkflow.impl.executors;
+package io.serverlessworkflow.impl.executors.func;
-import static io.serverlessworkflow.impl.executors.JavaCallExecutor.safeObject;
+import static io.serverlessworkflow.impl.executors.func.JavaCallExecutor.safeObject;
import io.serverlessworkflow.api.types.ForTask;
-import io.serverlessworkflow.api.types.ForTaskFunction;
import io.serverlessworkflow.api.types.Workflow;
+import io.serverlessworkflow.api.types.func.ForTaskFunction;
import io.serverlessworkflow.impl.WorkflowApplication;
import io.serverlessworkflow.impl.WorkflowFilter;
import io.serverlessworkflow.impl.WorkflowPosition;
diff --git a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaSwitchExecutorBuilder.java b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaSwitchExecutorBuilder.java
similarity index 93%
rename from experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaSwitchExecutorBuilder.java
rename to experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaSwitchExecutorBuilder.java
index 3b42825d..69585a90 100644
--- a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaSwitchExecutorBuilder.java
+++ b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaSwitchExecutorBuilder.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package io.serverlessworkflow.impl.executors;
+package io.serverlessworkflow.impl.executors.func;
import io.serverlessworkflow.api.types.SwitchCase;
-import io.serverlessworkflow.api.types.SwitchCaseFunction;
import io.serverlessworkflow.api.types.SwitchTask;
import io.serverlessworkflow.api.types.Workflow;
+import io.serverlessworkflow.api.types.func.SwitchCaseFunction;
import io.serverlessworkflow.impl.WorkflowApplication;
import io.serverlessworkflow.impl.WorkflowFilter;
import io.serverlessworkflow.impl.WorkflowPosition;
diff --git a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaTaskExecutorFactory.java b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaTaskExecutorFactory.java
similarity index 89%
rename from experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaTaskExecutorFactory.java
rename to experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaTaskExecutorFactory.java
index 26177287..8dfce9de 100644
--- a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/JavaTaskExecutorFactory.java
+++ b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/JavaTaskExecutorFactory.java
@@ -13,13 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.executors;
+package io.serverlessworkflow.impl.executors.func;
import io.serverlessworkflow.api.types.Task;
import io.serverlessworkflow.api.types.TaskBase;
import io.serverlessworkflow.api.types.Workflow;
import io.serverlessworkflow.impl.WorkflowApplication;
import io.serverlessworkflow.impl.WorkflowPosition;
+import io.serverlessworkflow.impl.executors.DefaultTaskExecutorFactory;
+import io.serverlessworkflow.impl.executors.TaskExecutorBuilder;
import io.serverlessworkflow.impl.resources.ResourceLoader;
public class JavaTaskExecutorFactory extends DefaultTaskExecutorFactory {
diff --git a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaExpressionFactory.java b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaExpressionFactory.java
similarity index 92%
rename from experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaExpressionFactory.java
rename to experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaExpressionFactory.java
index a6e89ae8..2f1820a0 100644
--- a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaExpressionFactory.java
+++ b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaExpressionFactory.java
@@ -13,13 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.func;
import io.serverlessworkflow.impl.TaskContext;
import io.serverlessworkflow.impl.WorkflowContext;
import io.serverlessworkflow.impl.WorkflowFilter;
import io.serverlessworkflow.impl.WorkflowModel;
import io.serverlessworkflow.impl.WorkflowModelFactory;
+import io.serverlessworkflow.impl.expressions.Expression;
+import io.serverlessworkflow.impl.expressions.ExpressionFactory;
import java.util.function.BiFunction;
import java.util.function.BiPredicate;
import java.util.function.Function;
diff --git a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaModel.java b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaModel.java
similarity index 98%
rename from experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaModel.java
rename to experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaModel.java
index 00481d54..bb236ed7 100644
--- a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaModel.java
+++ b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaModel.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.func;
import io.cloudevents.CloudEventData;
import io.serverlessworkflow.impl.WorkflowModel;
diff --git a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaModelCollection.java b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaModelCollection.java
similarity index 98%
rename from experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaModelCollection.java
rename to experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaModelCollection.java
index 501cc287..0b9c914f 100644
--- a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaModelCollection.java
+++ b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaModelCollection.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.func;
import io.serverlessworkflow.impl.WorkflowModel;
import io.serverlessworkflow.impl.WorkflowModelCollection;
diff --git a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaModelFactory.java b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaModelFactory.java
similarity index 97%
rename from experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaModelFactory.java
rename to experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaModelFactory.java
index 6ca4cc06..59975e50 100644
--- a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/JavaModelFactory.java
+++ b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/expressions/func/JavaModelFactory.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.func;
import io.cloudevents.CloudEvent;
import io.cloudevents.CloudEventData;
diff --git a/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.CallableTask b/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.CallableTask
index e413059c..780aa17e 100644
--- a/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.CallableTask
+++ b/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.CallableTask
@@ -1 +1 @@
-io.serverlessworkflow.impl.executors.JavaCallExecutor
\ No newline at end of file
+io.serverlessworkflow.impl.executors.func.JavaCallExecutor
\ No newline at end of file
diff --git a/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.TaskExecutorFactory b/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.TaskExecutorFactory
index 6fd5dc15..710fa4db 100644
--- a/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.TaskExecutorFactory
+++ b/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.TaskExecutorFactory
@@ -1 +1 @@
-io.serverlessworkflow.impl.executors.JavaTaskExecutorFactory
\ No newline at end of file
+io.serverlessworkflow.impl.executors.func.JavaTaskExecutorFactory
\ No newline at end of file
diff --git a/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.expressions.ExpressionFactory b/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.expressions.ExpressionFactory
index 171ce036..722ea0f0 100644
--- a/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.expressions.ExpressionFactory
+++ b/experimental/lambda/src/main/resources/META-INF/services/io.serverlessworkflow.impl.expressions.ExpressionFactory
@@ -1 +1 @@
-io.serverlessworkflow.impl.expressions.JavaExpressionFactory
\ No newline at end of file
+io.serverlessworkflow.impl.expressions.func.JavaExpressionFactory
\ No newline at end of file
diff --git a/experimental/lambda/src/test/java/io/serverless/workflow/impl/CallTest.java b/experimental/lambda/src/test/java/io/serverless/workflow/impl/CallTest.java
index 7d95410b..04543004 100644
--- a/experimental/lambda/src/test/java/io/serverless/workflow/impl/CallTest.java
+++ b/experimental/lambda/src/test/java/io/serverless/workflow/impl/CallTest.java
@@ -17,19 +17,19 @@
import static org.assertj.core.api.Assertions.assertThat;
-import io.serverlessworkflow.api.types.CallJava;
-import io.serverlessworkflow.api.types.CallTaskJava;
import io.serverlessworkflow.api.types.Document;
import io.serverlessworkflow.api.types.FlowDirective;
import io.serverlessworkflow.api.types.FlowDirectiveEnum;
import io.serverlessworkflow.api.types.ForTaskConfiguration;
-import io.serverlessworkflow.api.types.ForTaskFunction;
-import io.serverlessworkflow.api.types.SwitchCaseFunction;
import io.serverlessworkflow.api.types.SwitchItem;
import io.serverlessworkflow.api.types.SwitchTask;
import io.serverlessworkflow.api.types.Task;
import io.serverlessworkflow.api.types.TaskItem;
import io.serverlessworkflow.api.types.Workflow;
+import io.serverlessworkflow.api.types.func.CallJava;
+import io.serverlessworkflow.api.types.func.CallTaskJava;
+import io.serverlessworkflow.api.types.func.ForTaskFunction;
+import io.serverlessworkflow.api.types.func.SwitchCaseFunction;
import io.serverlessworkflow.impl.WorkflowApplication;
import io.serverlessworkflow.impl.WorkflowDefinition;
import java.util.Collection;
diff --git a/experimental/lambda/src/test/java/io/serverless/workflow/impl/ModelTest.java b/experimental/lambda/src/test/java/io/serverless/workflow/impl/ModelTest.java
index 7702fffe..8c917dbe 100644
--- a/experimental/lambda/src/test/java/io/serverless/workflow/impl/ModelTest.java
+++ b/experimental/lambda/src/test/java/io/serverless/workflow/impl/ModelTest.java
@@ -20,7 +20,6 @@
import io.serverlessworkflow.api.types.Document;
import io.serverlessworkflow.api.types.DurationInline;
import io.serverlessworkflow.api.types.Output;
-import io.serverlessworkflow.api.types.OutputAsFunction;
import io.serverlessworkflow.api.types.Set;
import io.serverlessworkflow.api.types.SetTask;
import io.serverlessworkflow.api.types.SetTaskConfiguration;
@@ -29,6 +28,7 @@
import io.serverlessworkflow.api.types.TimeoutAfter;
import io.serverlessworkflow.api.types.WaitTask;
import io.serverlessworkflow.api.types.Workflow;
+import io.serverlessworkflow.api.types.func.OutputAsFunction;
import io.serverlessworkflow.impl.WorkflowApplication;
import java.util.List;
import java.util.Map;
diff --git a/experimental/types/src/main/java/io/serverlessworkflow/api/types/CallJava.java b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/CallJava.java
similarity index 97%
rename from experimental/types/src/main/java/io/serverlessworkflow/api/types/CallJava.java
rename to experimental/types/src/main/java/io/serverlessworkflow/api/types/func/CallJava.java
index c3115de2..4158ee57 100644
--- a/experimental/types/src/main/java/io/serverlessworkflow/api/types/CallJava.java
+++ b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/CallJava.java
@@ -13,8 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.api.types;
+package io.serverlessworkflow.api.types.func;
+import io.serverlessworkflow.api.types.TaskBase;
import io.serverlessworkflow.impl.expressions.LoopFunction;
import io.serverlessworkflow.impl.expressions.LoopFunctionIndex;
import java.util.function.Consumer;
diff --git a/experimental/types/src/main/java/io/serverlessworkflow/api/types/CallTaskJava.java b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/CallTaskJava.java
similarity index 90%
rename from experimental/types/src/main/java/io/serverlessworkflow/api/types/CallTaskJava.java
rename to experimental/types/src/main/java/io/serverlessworkflow/api/types/func/CallTaskJava.java
index e1b406ec..cde6281f 100644
--- a/experimental/types/src/main/java/io/serverlessworkflow/api/types/CallTaskJava.java
+++ b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/CallTaskJava.java
@@ -13,7 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.api.types;
+package io.serverlessworkflow.api.types.func;
+
+import io.serverlessworkflow.api.types.CallTask;
public class CallTaskJava extends CallTask {
diff --git a/experimental/types/src/main/java/io/serverlessworkflow/api/types/ExportAsFunction.java b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/ExportAsFunction.java
similarity index 89%
rename from experimental/types/src/main/java/io/serverlessworkflow/api/types/ExportAsFunction.java
rename to experimental/types/src/main/java/io/serverlessworkflow/api/types/func/ExportAsFunction.java
index fd279cd2..e7879af3 100644
--- a/experimental/types/src/main/java/io/serverlessworkflow/api/types/ExportAsFunction.java
+++ b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/ExportAsFunction.java
@@ -13,8 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.api.types;
+package io.serverlessworkflow.api.types.func;
+import io.serverlessworkflow.api.types.ExportAs;
import java.util.function.Function;
public class ExportAsFunction extends ExportAs {
diff --git a/experimental/types/src/main/java/io/serverlessworkflow/api/types/ForTaskFunction.java b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/ForTaskFunction.java
similarity index 95%
rename from experimental/types/src/main/java/io/serverlessworkflow/api/types/ForTaskFunction.java
rename to experimental/types/src/main/java/io/serverlessworkflow/api/types/func/ForTaskFunction.java
index 00e29614..779dccd4 100644
--- a/experimental/types/src/main/java/io/serverlessworkflow/api/types/ForTaskFunction.java
+++ b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/ForTaskFunction.java
@@ -13,8 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.api.types;
+package io.serverlessworkflow.api.types.func;
+import io.serverlessworkflow.api.types.ForTask;
import io.serverlessworkflow.impl.expressions.LoopPredicate;
import io.serverlessworkflow.impl.expressions.LoopPredicateIndex;
import java.util.Collection;
diff --git a/experimental/types/src/main/java/io/serverlessworkflow/api/types/InputFromFunction.java b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/InputFromFunction.java
similarity index 89%
rename from experimental/types/src/main/java/io/serverlessworkflow/api/types/InputFromFunction.java
rename to experimental/types/src/main/java/io/serverlessworkflow/api/types/func/InputFromFunction.java
index abea6daa..49249bc2 100644
--- a/experimental/types/src/main/java/io/serverlessworkflow/api/types/InputFromFunction.java
+++ b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/InputFromFunction.java
@@ -13,8 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.api.types;
+package io.serverlessworkflow.api.types.func;
+import io.serverlessworkflow.api.types.InputFrom;
import java.util.function.Function;
public class InputFromFunction extends InputFrom {
diff --git a/experimental/types/src/main/java/io/serverlessworkflow/api/types/OutputAsFunction.java b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/OutputAsFunction.java
similarity index 89%
rename from experimental/types/src/main/java/io/serverlessworkflow/api/types/OutputAsFunction.java
rename to experimental/types/src/main/java/io/serverlessworkflow/api/types/func/OutputAsFunction.java
index 7ae183a4..b593cb13 100644
--- a/experimental/types/src/main/java/io/serverlessworkflow/api/types/OutputAsFunction.java
+++ b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/OutputAsFunction.java
@@ -13,8 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.api.types;
+package io.serverlessworkflow.api.types.func;
+import io.serverlessworkflow.api.types.OutputAs;
import java.util.function.Function;
public class OutputAsFunction extends OutputAs {
diff --git a/experimental/types/src/main/java/io/serverlessworkflow/api/types/SwitchCaseFunction.java b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/SwitchCaseFunction.java
similarity index 91%
rename from experimental/types/src/main/java/io/serverlessworkflow/api/types/SwitchCaseFunction.java
rename to experimental/types/src/main/java/io/serverlessworkflow/api/types/func/SwitchCaseFunction.java
index 51b4175a..234fcc80 100644
--- a/experimental/types/src/main/java/io/serverlessworkflow/api/types/SwitchCaseFunction.java
+++ b/experimental/types/src/main/java/io/serverlessworkflow/api/types/func/SwitchCaseFunction.java
@@ -13,8 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.api.types;
+package io.serverlessworkflow.api.types.func;
+import io.serverlessworkflow.api.types.SwitchCase;
import java.util.function.Predicate;
public class SwitchCaseFunction extends SwitchCase {
diff --git a/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncCallTaskBuilder.java b/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncCallTaskBuilder.java
index d045e5c0..a8bcf08b 100644
--- a/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncCallTaskBuilder.java
+++ b/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncCallTaskBuilder.java
@@ -15,8 +15,8 @@
*/
package io.serverlessworkflow.fluent.func;
-import io.serverlessworkflow.api.types.CallJava;
-import io.serverlessworkflow.api.types.CallTaskJava;
+import io.serverlessworkflow.api.types.func.CallJava;
+import io.serverlessworkflow.api.types.func.CallTaskJava;
import io.serverlessworkflow.fluent.spec.TaskBaseBuilder;
import java.util.function.Function;
diff --git a/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncForTaskBuilder.java b/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncForTaskBuilder.java
index c24a5af5..921ec920 100644
--- a/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncForTaskBuilder.java
+++ b/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncForTaskBuilder.java
@@ -15,12 +15,12 @@
*/
package io.serverlessworkflow.fluent.func;
-import io.serverlessworkflow.api.types.CallJava;
-import io.serverlessworkflow.api.types.CallTaskJava;
import io.serverlessworkflow.api.types.ForTaskConfiguration;
-import io.serverlessworkflow.api.types.ForTaskFunction;
import io.serverlessworkflow.api.types.Task;
import io.serverlessworkflow.api.types.TaskItem;
+import io.serverlessworkflow.api.types.func.CallJava;
+import io.serverlessworkflow.api.types.func.CallTaskJava;
+import io.serverlessworkflow.api.types.func.ForTaskFunction;
import io.serverlessworkflow.fluent.spec.TaskBaseBuilder;
import io.serverlessworkflow.impl.expressions.LoopFunction;
import io.serverlessworkflow.impl.expressions.LoopPredicate;
diff --git a/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncSwitchTaskBuilder.java b/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncSwitchTaskBuilder.java
index da010f7c..aff365f7 100644
--- a/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncSwitchTaskBuilder.java
+++ b/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncSwitchTaskBuilder.java
@@ -18,9 +18,9 @@
import io.serverlessworkflow.api.types.FlowDirective;
import io.serverlessworkflow.api.types.FlowDirectiveEnum;
import io.serverlessworkflow.api.types.SwitchCase;
-import io.serverlessworkflow.api.types.SwitchCaseFunction;
import io.serverlessworkflow.api.types.SwitchItem;
import io.serverlessworkflow.api.types.SwitchTask;
+import io.serverlessworkflow.api.types.func.SwitchCaseFunction;
import io.serverlessworkflow.fluent.spec.TaskBaseBuilder;
import java.util.ArrayList;
import java.util.List;
diff --git a/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncTransformations.java b/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncTransformations.java
index df0ba767..f1516f7f 100644
--- a/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncTransformations.java
+++ b/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncTransformations.java
@@ -16,11 +16,11 @@
package io.serverlessworkflow.fluent.func;
import io.serverlessworkflow.api.types.Export;
-import io.serverlessworkflow.api.types.ExportAsFunction;
import io.serverlessworkflow.api.types.Input;
-import io.serverlessworkflow.api.types.InputFromFunction;
import io.serverlessworkflow.api.types.Output;
-import io.serverlessworkflow.api.types.OutputAsFunction;
+import io.serverlessworkflow.api.types.func.ExportAsFunction;
+import io.serverlessworkflow.api.types.func.InputFromFunction;
+import io.serverlessworkflow.api.types.func.OutputAsFunction;
import io.serverlessworkflow.fluent.spec.TransformationHandlers;
import java.util.function.Function;
diff --git a/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/JavaWorkflowBuilderTest.java b/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/JavaWorkflowBuilderTest.java
index a087972d..529a9b8d 100644
--- a/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/JavaWorkflowBuilderTest.java
+++ b/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/JavaWorkflowBuilderTest.java
@@ -17,7 +17,15 @@
import static org.junit.jupiter.api.Assertions.*;
-import io.serverlessworkflow.api.types.*;
+import io.serverlessworkflow.api.types.Document;
+import io.serverlessworkflow.api.types.Export;
+import io.serverlessworkflow.api.types.Output;
+import io.serverlessworkflow.api.types.SetTask;
+import io.serverlessworkflow.api.types.Task;
+import io.serverlessworkflow.api.types.TaskBase;
+import io.serverlessworkflow.api.types.TaskItem;
+import io.serverlessworkflow.api.types.Workflow;
+import io.serverlessworkflow.api.types.func.*;
import io.serverlessworkflow.fluent.spec.BaseWorkflowBuilder;
// if you reuse anything
import java.util.List;
diff --git a/generators/jackson/src/main/java/io/serverlessworkflow/generator/jackson/GeneratorUtils.java b/generators/jackson/src/main/java/io/serverlessworkflow/generator/jackson/GeneratorUtils.java
index 9463106f..5687de8c 100644
--- a/generators/jackson/src/main/java/io/serverlessworkflow/generator/jackson/GeneratorUtils.java
+++ b/generators/jackson/src/main/java/io/serverlessworkflow/generator/jackson/GeneratorUtils.java
@@ -28,6 +28,7 @@
import com.sun.codemodel.JInvocation;
import com.sun.codemodel.JMethod;
import com.sun.codemodel.JMod;
+import com.sun.codemodel.JPackage;
import com.sun.codemodel.JType;
import com.sun.codemodel.JVar;
import io.serverlessworkflow.serialization.DeserializeHelper;
@@ -48,14 +49,14 @@ public interface DeserializerFiller {
void accept(JMethod method, JVar parserParam);
}
- public static JDefinedClass serializerClass(JClass relatedClass)
+ public static JDefinedClass serializerClass(JPackage jPackage, JClass relatedClass)
throws JClassAlreadyExistsException {
- return createClass(relatedClass, JsonSerializer.class, "Serializer");
+ return createClass(jPackage, relatedClass, JsonSerializer.class, "Serializer");
}
- public static JDefinedClass deserializerClass(JClass relatedClass)
+ public static JDefinedClass deserializerClass(JPackage jPackage, JClass relatedClass)
throws JClassAlreadyExistsException {
- return createClass(relatedClass, JsonDeserializer.class, "Deserializer");
+ return createClass(jPackage, relatedClass, JsonDeserializer.class, "Deserializer");
}
public static void fillSerializer(
@@ -80,17 +81,16 @@ public static void fillDeserializer(
}
private static JDefinedClass createClass(
- JClass relatedClass, Class> serializerClass, String suffix)
+ JPackage jPackage, JClass relatedClass, Class> serializerClass, String suffix)
throws JClassAlreadyExistsException {
- JDefinedClass definedClass =
- relatedClass._package()._class(JMod.NONE, relatedClass.name() + suffix);
+ JDefinedClass definedClass = jPackage._class(JMod.NONE, relatedClass.name() + suffix);
definedClass._extends(definedClass.owner().ref(serializerClass).narrow(relatedClass));
return definedClass;
}
- public static JDefinedClass generateSerializer(JClass relatedClass)
+ public static JDefinedClass generateSerializer(JPackage jPackage, JClass relatedClass)
throws JClassAlreadyExistsException {
- JDefinedClass definedClass = GeneratorUtils.serializerClass(relatedClass);
+ JDefinedClass definedClass = GeneratorUtils.serializerClass(jPackage, relatedClass);
GeneratorUtils.fillSerializer(
definedClass,
relatedClass,
@@ -104,8 +104,9 @@ public static JDefinedClass generateSerializer(JClass relatedClass)
}
public static JDefinedClass generateDeserializer(
- JClass relatedClass, Collection oneOfTypes) throws JClassAlreadyExistsException {
- JDefinedClass definedClass = GeneratorUtils.deserializerClass(relatedClass);
+ JPackage jPackage, JClass relatedClass, Collection oneOfTypes)
+ throws JClassAlreadyExistsException {
+ JDefinedClass definedClass = GeneratorUtils.deserializerClass(jPackage, relatedClass);
GeneratorUtils.fillDeserializer(
definedClass,
relatedClass,
@@ -124,9 +125,10 @@ public static JDefinedClass generateDeserializer(
return definedClass;
}
- public static JDefinedClass generateDeserializer(JClass relatedClass, JType propertyType)
+ public static JDefinedClass generateDeserializer(
+ JPackage jPackage, JClass relatedClass, JType propertyType)
throws JClassAlreadyExistsException {
- JDefinedClass definedClass = GeneratorUtils.deserializerClass(relatedClass);
+ JDefinedClass definedClass = GeneratorUtils.deserializerClass(jPackage, relatedClass);
GeneratorUtils.fillDeserializer(
definedClass,
relatedClass,
@@ -145,9 +147,9 @@ public static JDefinedClass generateDeserializer(JClass relatedClass, JType prop
}
public static JDefinedClass generateSerializer(
- JClass relatedClass, String keyMethod, String valueMethod)
+ JPackage jPackage, JClass relatedClass, String keyMethod, String valueMethod)
throws JClassAlreadyExistsException {
- JDefinedClass definedClass = GeneratorUtils.serializerClass(relatedClass);
+ JDefinedClass definedClass = GeneratorUtils.serializerClass(jPackage, relatedClass);
GeneratorUtils.fillSerializer(
definedClass,
relatedClass,
diff --git a/generators/jackson/src/main/java/io/serverlessworkflow/generator/jackson/JacksonMixInPojo.java b/generators/jackson/src/main/java/io/serverlessworkflow/generator/jackson/JacksonMixInPojo.java
index b80238ed..2e7b9107 100644
--- a/generators/jackson/src/main/java/io/serverlessworkflow/generator/jackson/JacksonMixInPojo.java
+++ b/generators/jackson/src/main/java/io/serverlessworkflow/generator/jackson/JacksonMixInPojo.java
@@ -75,14 +75,11 @@ public class JacksonMixInPojo extends AbstractMojo {
defaultValue = "${project.build.directory}/generated-sources/jacksonmixinpojo")
private File outputDirectory;
- /**
- * Package name used for generated Java classes (for types where a fully qualified name has not
- * been supplied in the schema using the 'javaType' property).
- *
- * @since 0.1.0
- */
+ @Parameter(property = "jsonschema2pojo.srcPackage")
+ private String srcPackage;
+
@Parameter(property = "jsonschema2pojo.targetPackage")
- private String targetPackage = "";
+ private String targetPackage;
private static final String MIXIN_METHOD = "setMixInAnnotation";
private static final String ADD_PROPERTIES_METHOD = "getAdditionalProperties";
@@ -104,7 +101,7 @@ public void execute() throws MojoExecutionException, MojoFailureException {
new ClassGraph()
.enableAnnotationInfo()
.enableMethodInfo()
- .acceptPackages(targetPackage)
+ .acceptPackages(srcPackage)
.scan()) {
codeModel = new JCodeModel();
rootPackage = codeModel._package(targetPackage);
@@ -183,10 +180,12 @@ private void buildItemMixIn(ClassInfo classInfo, JDefinedClass mixClass)
.param(
"using",
GeneratorUtils.generateSerializer(
- relClass, keyMethod.getName(), valueMethod.getName()));
+ rootPackage, relClass, keyMethod.getName(), valueMethod.getName()));
mixClass
.annotate(JsonDeserialize.class)
- .param("using", GeneratorUtils.generateDeserializer(relClass, getReturnType(valueMethod)));
+ .param(
+ "using",
+ GeneratorUtils.generateDeserializer(rootPackage, relClass, getReturnType(valueMethod)));
}
private void buildUnionMixIn(ClassInfo unionClassInfo, JDefinedClass unionMixClass)
@@ -194,12 +193,13 @@ private void buildUnionMixIn(ClassInfo unionClassInfo, JDefinedClass unionMixCla
JClass unionClass = codeModel.ref(unionClassInfo.getName());
unionMixClass
.annotate(JsonSerialize.class)
- .param("using", GeneratorUtils.generateSerializer(unionClass));
+ .param("using", GeneratorUtils.generateSerializer(rootPackage, unionClass));
unionMixClass
.annotate(JsonDeserialize.class)
.param(
"using",
- GeneratorUtils.generateDeserializer(unionClass, getUnionClasses(unionClassInfo)));
+ GeneratorUtils.generateDeserializer(
+ rootPackage, unionClass, getUnionClasses(unionClassInfo)));
}
private void buildEnumMixIn(ClassInfo classInfo, JDefinedClass mixClass)
diff --git a/impl/core/.checkstyle b/impl/core/.checkstyle
deleted file mode 100644
index cdd4188c..00000000
--- a/impl/core/.checkstyle
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/impl/http/.checkstyle b/impl/http/.checkstyle
deleted file mode 100644
index a33f7d91..00000000
--- a/impl/http/.checkstyle
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/impl/http/src/main/java/io/serverlessworkflow/impl/executors/HttpExecutor.java b/impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/HttpExecutor.java
similarity index 98%
rename from impl/http/src/main/java/io/serverlessworkflow/impl/executors/HttpExecutor.java
rename to impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/HttpExecutor.java
index cede1880..fe2fe971 100644
--- a/impl/http/src/main/java/io/serverlessworkflow/impl/executors/HttpExecutor.java
+++ b/impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/HttpExecutor.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.executors;
+package io.serverlessworkflow.impl.executors.http;
import io.serverlessworkflow.api.types.CallHTTP;
import io.serverlessworkflow.api.types.Endpoint;
@@ -29,6 +29,7 @@
import io.serverlessworkflow.impl.WorkflowFilter;
import io.serverlessworkflow.impl.WorkflowModel;
import io.serverlessworkflow.impl.WorkflowUtils;
+import io.serverlessworkflow.impl.executors.CallableTask;
import io.serverlessworkflow.impl.expressions.Expression;
import io.serverlessworkflow.impl.expressions.ExpressionFactory;
import io.serverlessworkflow.impl.resources.ResourceLoader;
diff --git a/impl/http/src/main/java/io/serverlessworkflow/impl/executors/HttpModelConverter.java b/impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/HttpModelConverter.java
similarity index 95%
rename from impl/http/src/main/java/io/serverlessworkflow/impl/executors/HttpModelConverter.java
rename to impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/HttpModelConverter.java
index a8c264dd..161db2ec 100644
--- a/impl/http/src/main/java/io/serverlessworkflow/impl/executors/HttpModelConverter.java
+++ b/impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/HttpModelConverter.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.executors;
+package io.serverlessworkflow.impl.executors.http;
import io.serverlessworkflow.impl.WorkflowModel;
import io.serverlessworkflow.impl.WorkflowModelFactory;
diff --git a/impl/http/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.CallableTask b/impl/http/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.CallableTask
index 7d5e6bf9..2a9aac2d 100644
--- a/impl/http/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.CallableTask
+++ b/impl/http/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.CallableTask
@@ -1 +1 @@
-io.serverlessworkflow.impl.executors.HttpExecutor
\ No newline at end of file
+io.serverlessworkflow.impl.executors.http.HttpExecutor
\ No newline at end of file
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/events/JacksonCloudEventUtils.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/events/json/JacksonCloudEventUtils.java
similarity index 96%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/events/JacksonCloudEventUtils.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/events/json/JacksonCloudEventUtils.java
index f51f4547..10ea02be 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/events/JacksonCloudEventUtils.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/events/json/JacksonCloudEventUtils.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.events;
+package io.serverlessworkflow.impl.events.json;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.NullNode;
@@ -21,7 +21,7 @@
import io.cloudevents.CloudEvent;
import io.cloudevents.CloudEventData;
import io.cloudevents.jackson.JsonCloudEventData;
-import io.serverlessworkflow.impl.json.JsonUtils;
+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/expressions/JQExpression.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JQExpression.java
similarity index 91%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JQExpression.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JQExpression.java
index e55f9877..f7fd2504 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JQExpression.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JQExpression.java
@@ -13,9 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.jq;
-import static io.serverlessworkflow.impl.json.JsonUtils.modelToJson;
+import static io.serverlessworkflow.impl.jackson.JsonUtils.modelToJson;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -23,7 +23,10 @@
import io.serverlessworkflow.impl.WorkflowContext;
import io.serverlessworkflow.impl.WorkflowModel;
import io.serverlessworkflow.impl.WorkflowModelFactory;
-import io.serverlessworkflow.impl.json.JsonUtils;
+import io.serverlessworkflow.impl.expressions.Expression;
+import io.serverlessworkflow.impl.expressions.TaskDescriptor;
+import io.serverlessworkflow.impl.expressions.WorkflowDescriptor;
+import io.serverlessworkflow.impl.jackson.JsonUtils;
import java.util.function.Supplier;
import net.thisptr.jackson.jq.Output;
import net.thisptr.jackson.jq.Scope;
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JQExpressionFactory.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JQExpressionFactory.java
similarity index 88%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JQExpressionFactory.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JQExpressionFactory.java
index e5e9c481..2909eb7b 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JQExpressionFactory.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JQExpressionFactory.java
@@ -13,9 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.jq;
import io.serverlessworkflow.impl.WorkflowModelFactory;
+import io.serverlessworkflow.impl.expressions.Expression;
+import io.serverlessworkflow.impl.expressions.ExpressionUtils;
+import io.serverlessworkflow.impl.expressions.ObjectExpressionFactory;
import java.util.function.Supplier;
import net.thisptr.jackson.jq.BuiltinFunctionLoader;
import net.thisptr.jackson.jq.Scope;
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModel.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModel.java
similarity index 97%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModel.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModel.java
index 1deb520e..dc71fcb2 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModel.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModel.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.jq;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@@ -23,7 +23,7 @@
import io.cloudevents.CloudEventData;
import io.cloudevents.jackson.JsonCloudEventData;
import io.serverlessworkflow.impl.WorkflowModel;
-import io.serverlessworkflow.impl.json.JsonUtils;
+import io.serverlessworkflow.impl.jackson.JsonUtils;
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModelCollection.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModelCollection.java
similarity index 97%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModelCollection.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModelCollection.java
index 43da790a..70dee439 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModelCollection.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModelCollection.java
@@ -13,13 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.jq;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import io.serverlessworkflow.impl.WorkflowModel;
import io.serverlessworkflow.impl.WorkflowModelCollection;
-import io.serverlessworkflow.impl.json.JsonUtils;
+import io.serverlessworkflow.impl.jackson.JsonUtils;
import java.util.Collection;
import java.util.Iterator;
import java.util.Optional;
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModelFactory.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModelFactory.java
similarity index 95%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModelFactory.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModelFactory.java
index 00906165..866c3264 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModelFactory.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModelFactory.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.jq;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.DoubleNode;
@@ -27,8 +27,8 @@
import io.serverlessworkflow.impl.WorkflowModel;
import io.serverlessworkflow.impl.WorkflowModelCollection;
import io.serverlessworkflow.impl.WorkflowModelFactory;
-import io.serverlessworkflow.impl.events.JacksonCloudEventUtils;
-import io.serverlessworkflow.impl.json.JsonUtils;
+import io.serverlessworkflow.impl.events.json.JacksonCloudEventUtils;
+import io.serverlessworkflow.impl.jackson.JsonUtils;
import java.math.BigDecimal;
import java.time.OffsetDateTime;
import java.util.Map;
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModelSerializer.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModelSerializer.java
similarity index 95%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModelSerializer.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModelSerializer.java
index 874bd674..7d4b07c9 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/JacksonModelSerializer.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/expressions/jq/JacksonModelSerializer.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.expressions;
+package io.serverlessworkflow.impl.expressions.jq;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/json/JsonUtils.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/JsonUtils.java
similarity index 99%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/json/JsonUtils.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/JsonUtils.java
index 42a32b7d..04822457 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/json/JsonUtils.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/JsonUtils.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.json;
+package io.serverlessworkflow.impl.jackson;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/json/MergeUtils.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/MergeUtils.java
similarity index 98%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/json/MergeUtils.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/MergeUtils.java
index a3615d35..aca5d63d 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/json/MergeUtils.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/jackson/MergeUtils.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.json;
+package io.serverlessworkflow.impl.jackson;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/JsonSchemaValidator.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/json/JsonSchemaValidator.java
similarity index 94%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/JsonSchemaValidator.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/json/JsonSchemaValidator.java
index 142faf73..c4859ba9 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/JsonSchemaValidator.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/json/JsonSchemaValidator.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.schema;
+package io.serverlessworkflow.impl.schema.json;
import com.fasterxml.jackson.databind.JsonNode;
import com.networknt.schema.JsonSchema;
@@ -21,6 +21,7 @@
import com.networknt.schema.SpecVersion.VersionFlag;
import com.networknt.schema.ValidationMessage;
import io.serverlessworkflow.impl.WorkflowModel;
+import io.serverlessworkflow.impl.schema.SchemaValidator;
import java.util.Set;
public class JsonSchemaValidator implements SchemaValidator {
diff --git a/impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/JsonSchemaValidatorFactory.java b/impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/json/JsonSchemaValidatorFactory.java
similarity index 87%
rename from impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/JsonSchemaValidatorFactory.java
rename to impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/json/JsonSchemaValidatorFactory.java
index 269bebb4..9b89e46c 100644
--- a/impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/JsonSchemaValidatorFactory.java
+++ b/impl/jackson/src/main/java/io/serverlessworkflow/impl/schema/json/JsonSchemaValidatorFactory.java
@@ -13,13 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.serverlessworkflow.impl.schema;
+package io.serverlessworkflow.impl.schema.json;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.serverlessworkflow.api.WorkflowFormat;
import io.serverlessworkflow.api.types.SchemaInline;
-import io.serverlessworkflow.impl.json.JsonUtils;
+import io.serverlessworkflow.impl.jackson.JsonUtils;
import io.serverlessworkflow.impl.resources.StaticResource;
+import io.serverlessworkflow.impl.schema.SchemaValidator;
+import io.serverlessworkflow.impl.schema.SchemaValidatorFactory;
import java.io.IOException;
import java.io.InputStream;
import java.io.UncheckedIOException;
diff --git a/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.expressions.ExpressionFactory b/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.expressions.ExpressionFactory
index 1853d536..420f62ad 100644
--- a/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.expressions.ExpressionFactory
+++ b/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.expressions.ExpressionFactory
@@ -1 +1 @@
-io.serverlessworkflow.impl.expressions.JQExpressionFactory
\ No newline at end of file
+io.serverlessworkflow.impl.expressions.jq.JQExpressionFactory
\ No newline at end of file
diff --git a/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.schema.SchemaValidatorFactory b/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.schema.SchemaValidatorFactory
index b4bc2dd0..3100f8fa 100644
--- a/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.schema.SchemaValidatorFactory
+++ b/impl/jackson/src/main/resources/META-INF/services/io.serverlessworkflow.impl.schema.SchemaValidatorFactory
@@ -1 +1 @@
-io.serverlessworkflow.impl.schema.JsonSchemaValidatorFactory
\ No newline at end of file
+io.serverlessworkflow.impl.schema.json.JsonSchemaValidatorFactory
\ No newline at end of file
diff --git a/impl/jackson/src/test/java/io/serverlessworkflow/impl/DateTimeDescriptorTest.java b/impl/jackson/src/test/java/io/serverlessworkflow/impl/DateTimeDescriptorTest.java
index 46937cbc..add57b92 100644
--- a/impl/jackson/src/test/java/io/serverlessworkflow/impl/DateTimeDescriptorTest.java
+++ b/impl/jackson/src/test/java/io/serverlessworkflow/impl/DateTimeDescriptorTest.java
@@ -19,7 +19,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import io.serverlessworkflow.impl.expressions.DateTimeDescriptor;
-import io.serverlessworkflow.impl.json.JsonUtils;
+import io.serverlessworkflow.impl.jackson.JsonUtils;
import java.time.Instant;
import org.junit.jupiter.api.Test;
diff --git a/impl/jackson/src/test/java/io/serverlessworkflow/impl/EventDefinitionTest.java b/impl/jackson/src/test/java/io/serverlessworkflow/impl/EventDefinitionTest.java
index f76dfd30..353b777b 100644
--- a/impl/jackson/src/test/java/io/serverlessworkflow/impl/EventDefinitionTest.java
+++ b/impl/jackson/src/test/java/io/serverlessworkflow/impl/EventDefinitionTest.java
@@ -22,7 +22,7 @@
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.serverlessworkflow.api.WorkflowReader;
-import io.serverlessworkflow.impl.json.JsonUtils;
+import io.serverlessworkflow.impl.jackson.JsonUtils;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
diff --git a/impl/jackson/src/test/java/io/serverlessworkflow/impl/WorkflowDefinitionTest.java b/impl/jackson/src/test/java/io/serverlessworkflow/impl/WorkflowDefinitionTest.java
index bb600990..1a338248 100644
--- a/impl/jackson/src/test/java/io/serverlessworkflow/impl/WorkflowDefinitionTest.java
+++ b/impl/jackson/src/test/java/io/serverlessworkflow/impl/WorkflowDefinitionTest.java
@@ -22,7 +22,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
-import io.serverlessworkflow.impl.json.JsonUtils;
+import io.serverlessworkflow.impl.jackson.JsonUtils;
import java.io.IOException;
import java.time.Instant;
import java.util.Arrays;