Skip to content

Commit 225b29b

Browse files
committed
[Fix #636] Relocating dependencies
Signed-off-by: fjtirado <[email protected]>
1 parent 6a56b89 commit 225b29b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+235
-120
lines changed

examples/events/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<dependencies>
1212
<dependency>
1313
<groupId>io.serverlessworkflow</groupId>
14-
<artifactId>serverlessworkflow-impl-core</artifactId>
14+
<artifactId>serverlessworkflow-impl-jackson</artifactId>
1515
</dependency>
1616
<dependency>
1717
<groupId>org.slf4j</groupId>

examples/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@
2121
<artifactId>serverlessworkflow-impl-http</artifactId>
2222
<version>${project.version}</version>
2323
</dependency>
24+
<dependency>
25+
<groupId>io.serverlessworkflow</groupId>
26+
<artifactId>serverlessworkflow-impl-jackson</artifactId>
27+
<version>${project.version}</version>
28+
</dependency>
2429
<dependency>
2530
<groupId>org.slf4j</groupId>
2631
<artifactId>slf4j-simple</artifactId>

examples/simpleGet/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<dependencies>
1212
<dependency>
1313
<groupId>io.serverlessworkflow</groupId>
14-
<artifactId>serverlessworkflow-impl-core</artifactId>
14+
<artifactId>serverlessworkflow-impl-jackson</artifactId>
1515
</dependency>
1616
<dependency>
1717
<groupId>io.serverlessworkflow</groupId>

impl/core/pom.xml

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,23 @@
88
<artifactId>serverlessworkflow-impl-core</artifactId>
99
<name>Serverless Workflow :: Impl :: Core</name>
1010
<dependencies>
11-
<dependency>
12-
<groupId>io.serverlessworkflow</groupId>
13-
<artifactId>serverlessworkflow-types</artifactId>
14-
<version>${project.version}</version>
11+
<dependency>
12+
<groupId>io.serverlessworkflow</groupId>
13+
<artifactId>serverlessworkflow-types</artifactId>
14+
<version>${project.version}</version>
1515
</dependency>
1616
<dependency>
1717
<groupId>io.cloudevents</groupId>
18-
<artifactId>cloudevents-api</artifactId>
18+
<artifactId>cloudevents-core</artifactId>
1919
</dependency>
2020
<dependency>
21-
<groupId>io.cloudevents</groupId>
22-
<artifactId>cloudevents-json-jackson</artifactId>
21+
<groupId>org.slf4j</groupId>
22+
<artifactId>slf4j-api</artifactId>
2323
</dependency>
2424
<dependency>
2525
<groupId>com.github.f4b6a3</groupId>
2626
<artifactId>ulid-creator</artifactId>
2727
</dependency>
28-
<dependency>
29-
<groupId>com.networknt</groupId>
30-
<artifactId>json-schema-validator</artifactId>
31-
</dependency>
32-
<dependency>
33-
<groupId>net.thisptr</groupId>
34-
<artifactId>jackson-jq</artifactId>
35-
</dependency>
3628
<dependency>
3729
<groupId>org.junit.jupiter</groupId>
3830
<artifactId>junit-jupiter-api</artifactId>
@@ -58,11 +50,5 @@
5850
<artifactId>logback-classic</artifactId>
5951
<scope>test</scope>
6052
</dependency>
61-
<dependency>
62-
<groupId>io.serverlessworkflow</groupId>
63-
<artifactId>serverlessworkflow-api</artifactId>
64-
<version>${project.version}</version>
65-
</dependency>
66-
6753
</dependencies>
6854
</project>

impl/core/src/main/java/io/serverlessworkflow/impl/WorkflowApplication.java

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,25 @@
1717

1818
import com.github.f4b6a3.ulid.UlidCreator;
1919
import io.serverlessworkflow.api.types.Document;
20+
import io.serverlessworkflow.api.types.SchemaInline;
2021
import io.serverlessworkflow.api.types.Workflow;
2122
import io.serverlessworkflow.impl.events.EventConsumer;
2223
import io.serverlessworkflow.impl.events.EventPublisher;
2324
import io.serverlessworkflow.impl.events.InMemoryEvents;
2425
import io.serverlessworkflow.impl.executors.DefaultTaskExecutorFactory;
2526
import io.serverlessworkflow.impl.executors.TaskExecutorFactory;
2627
import io.serverlessworkflow.impl.expressions.ExpressionFactory;
27-
import io.serverlessworkflow.impl.expressions.JQExpressionFactory;
2828
import io.serverlessworkflow.impl.expressions.RuntimeDescriptor;
29-
import io.serverlessworkflow.impl.jsonschema.DefaultSchemaValidatorFactory;
30-
import io.serverlessworkflow.impl.jsonschema.SchemaValidatorFactory;
3129
import io.serverlessworkflow.impl.resources.DefaultResourceLoaderFactory;
3230
import io.serverlessworkflow.impl.resources.ResourceLoaderFactory;
31+
import io.serverlessworkflow.impl.resources.StaticResource;
32+
import io.serverlessworkflow.impl.schema.SchemaValidator;
33+
import io.serverlessworkflow.impl.schema.SchemaValidatorFactory;
3334
import java.util.Collection;
3435
import java.util.Collections;
3536
import java.util.HashSet;
3637
import java.util.Map;
38+
import java.util.ServiceLoader;
3739
import java.util.concurrent.ConcurrentHashMap;
3840
import java.util.concurrent.ExecutorService;
3941
import java.util.concurrent.Executors;
@@ -101,11 +103,31 @@ public WorkflowIdFactory idFactory() {
101103
}
102104

103105
public static class Builder {
106+
private static final SchemaValidatorFactory EMPTY_SCHEMA_VALIDATOR =
107+
new SchemaValidatorFactory() {
108+
109+
private final SchemaValidator NoValidation =
110+
new SchemaValidator() {
111+
@Override
112+
public void validate(WorkflowModel node) {}
113+
};
114+
115+
@Override
116+
public SchemaValidator getValidator(StaticResource resource) {
117+
118+
return NoValidation;
119+
}
120+
121+
@Override
122+
public SchemaValidator getValidator(SchemaInline inline) {
123+
return NoValidation;
124+
}
125+
};
104126
private TaskExecutorFactory taskFactory = DefaultTaskExecutorFactory.get();
105-
private ExpressionFactory exprFactory = JQExpressionFactory.get();
127+
private ExpressionFactory exprFactory;
106128
private Collection<WorkflowExecutionListener> listeners;
107129
private ResourceLoaderFactory resourceLoaderFactory = DefaultResourceLoaderFactory.get();
108-
private SchemaValidatorFactory schemaValidatorFactory = DefaultSchemaValidatorFactory.get();
130+
private SchemaValidatorFactory schemaValidatorFactory;
109131
private WorkflowPositionFactory positionFactory = () -> new QueueWorkflowPosition();
110132
private WorkflowIdFactory idFactory = () -> UlidCreator.getMonotonicUlid().toString();
111133
private ExecutorServiceFactory executorFactory = () -> Executors.newCachedThreadPool();
@@ -175,6 +197,18 @@ public Builder withEventPublisher(EventPublisher eventPublisher) {
175197
}
176198

177199
public WorkflowApplication build() {
200+
if (exprFactory == null) {
201+
exprFactory =
202+
ServiceLoader.load(ExpressionFactory.class)
203+
.findFirst()
204+
.orElseThrow(() -> new IllegalStateException("Expression factory is required"));
205+
}
206+
if (schemaValidatorFactory == null) {
207+
schemaValidatorFactory =
208+
ServiceLoader.load(SchemaValidatorFactory.class)
209+
.findFirst()
210+
.orElse(EMPTY_SCHEMA_VALIDATOR);
211+
}
178212
return new WorkflowApplication(this);
179213
}
180214
}

impl/core/src/main/java/io/serverlessworkflow/impl/WorkflowDefinition.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
import io.serverlessworkflow.api.types.Workflow;
2323
import io.serverlessworkflow.impl.executors.TaskExecutor;
2424
import io.serverlessworkflow.impl.executors.TaskExecutorHelper;
25-
import io.serverlessworkflow.impl.jsonschema.SchemaValidator;
2625
import io.serverlessworkflow.impl.resources.ResourceLoader;
26+
import io.serverlessworkflow.impl.schema.SchemaValidator;
2727
import java.nio.file.Path;
2828
import java.util.Collection;
2929
import java.util.Optional;

impl/core/src/main/java/io/serverlessworkflow/impl/WorkflowUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
import io.serverlessworkflow.api.types.SchemaUnion;
2222
import io.serverlessworkflow.api.types.UriTemplate;
2323
import io.serverlessworkflow.impl.expressions.ExpressionUtils;
24-
import io.serverlessworkflow.impl.jsonschema.SchemaValidator;
25-
import io.serverlessworkflow.impl.jsonschema.SchemaValidatorFactory;
2624
import io.serverlessworkflow.impl.resources.ResourceLoader;
25+
import io.serverlessworkflow.impl.schema.SchemaValidator;
26+
import io.serverlessworkflow.impl.schema.SchemaValidatorFactory;
2727
import java.net.URI;
2828
import java.util.Optional;
2929
import java.util.function.Function;

impl/core/src/main/java/io/serverlessworkflow/impl/events/CloudEventUtils.java

Lines changed: 1 addition & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,7 @@
1515
*/
1616
package io.serverlessworkflow.impl.events;
1717

18-
import com.fasterxml.jackson.databind.JsonNode;
19-
import com.fasterxml.jackson.databind.node.NullNode;
20-
import com.fasterxml.jackson.databind.node.ObjectNode;
2118
import io.cloudevents.CloudEvent;
22-
import io.cloudevents.CloudEventData;
23-
import io.cloudevents.jackson.JsonCloudEventData;
24-
import io.serverlessworkflow.impl.json.JsonUtils;
25-
import java.io.IOException;
26-
import java.io.UncheckedIOException;
2719
import java.time.OffsetDateTime;
2820
import java.time.ZoneOffset;
2921
import java.util.Date;
@@ -32,57 +24,17 @@
3224

3325
public class CloudEventUtils {
3426

35-
public static JsonNode toJsonNode(CloudEvent event) {
36-
ObjectNode result = JsonUtils.mapper().createObjectNode();
37-
if (event.getData() != null) {
38-
result.set("data", toJsonNode(event.getData()));
39-
}
40-
if (event.getSubject() != null) {
41-
result.put("subject", event.getSubject());
42-
}
43-
if (event.getDataContentType() != null) {
44-
result.put("datacontenttype", event.getDataContentType());
45-
}
46-
result.put("id", event.getId());
47-
result.put("source", event.getSource().toString());
48-
result.put("type", event.getType());
49-
result.put("specversion", event.getSpecVersion().toString());
50-
if (event.getDataSchema() != null) {
51-
result.put("dataschema", event.getDataSchema().toString());
52-
}
53-
if (event.getTime() != null) {
54-
result.put("time", event.getTime().toString());
55-
}
56-
event
57-
.getExtensionNames()
58-
.forEach(n -> result.set(n, JsonUtils.fromValue(event.getExtension(n))));
59-
return result;
60-
}
27+
private CloudEventUtils() {}
6128

6229
public static OffsetDateTime toOffset(Date date) {
6330
return date.toInstant().atOffset(ZoneOffset.UTC);
6431
}
6532

66-
public static JsonNode toJsonNode(CloudEventData data) {
67-
if (data == null) {
68-
return NullNode.instance;
69-
}
70-
try {
71-
return data instanceof JsonCloudEventData
72-
? ((JsonCloudEventData) data).getNode()
73-
: JsonUtils.mapper().readTree(data.toBytes());
74-
} catch (IOException io) {
75-
throw new UncheckedIOException(io);
76-
}
77-
}
78-
7933
public static Map<String, Object> extensions(CloudEvent event) {
8034
Map<String, Object> result = new LinkedHashMap<>();
8135
for (String name : event.getExtensionNames()) {
8236
result.put(name, event.getExtension(name));
8337
}
8438
return result;
8539
}
86-
87-
private CloudEventUtils() {}
8840
}

impl/core/src/main/java/io/serverlessworkflow/impl/executors/AbstractTaskExecutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
import io.serverlessworkflow.impl.WorkflowModel;
3131
import io.serverlessworkflow.impl.WorkflowPosition;
3232
import io.serverlessworkflow.impl.WorkflowStatus;
33-
import io.serverlessworkflow.impl.jsonschema.SchemaValidator;
3433
import io.serverlessworkflow.impl.resources.ResourceLoader;
34+
import io.serverlessworkflow.impl.schema.SchemaValidator;
3535
import java.time.Instant;
3636
import java.util.Iterator;
3737
import java.util.Map;

impl/core/src/main/java/io/serverlessworkflow/impl/expressions/DateTimeDescriptor.java

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

18-
import com.fasterxml.jackson.annotation.JsonProperty;
1918
import java.time.Instant;
2019

2120
public class DateTimeDescriptor {
@@ -30,13 +29,11 @@ private DateTimeDescriptor(Instant instant) {
3029
this.instant = instant;
3130
}
3231

33-
@JsonProperty("iso8601")
34-
public String iso8601() {
32+
public String getIso8601() {
3533
return instant.toString();
3634
}
3735

38-
@JsonProperty("epoch")
39-
public Epoch epoch() {
36+
public Epoch getEpoch() {
4037
return Epoch.of(instant);
4138
}
4239

0 commit comments

Comments
 (0)