Skip to content

Commit 368db33

Browse files
committed
[Fix #634] Refactoring modules
1 parent 9ac84ca commit 368db33

File tree

13 files changed

+116
-86
lines changed

13 files changed

+116
-86
lines changed

api/pom.xml

Lines changed: 7 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,23 @@
1414

1515
<dependencies>
1616
<dependency>
17-
<groupId>org.slf4j</groupId>
18-
<artifactId>slf4j-api</artifactId>
17+
<groupId>io.serverlessworkflow</groupId>
18+
<artifactId>serverlessworkflow-types</artifactId>
19+
<version>${project.version}</version>
1920
</dependency>
2021
<dependency>
21-
<groupId>com.fasterxml.jackson.core</groupId>
22-
<artifactId>jackson-core</artifactId>
22+
<groupId>org.slf4j</groupId>
23+
<artifactId>slf4j-api</artifactId>
2324
</dependency>
2425
<dependency>
2526
<groupId>com.networknt</groupId>
2627
<artifactId>json-schema-validator</artifactId>
2728
</dependency>
28-
<dependency>
29-
<groupId>com.fasterxml.jackson.core</groupId>
30-
<artifactId>jackson-databind</artifactId>
31-
</dependency>
3229
<dependency>
3330
<groupId>com.fasterxml.jackson.dataformat</groupId>
3431
<artifactId>jackson-dataformat-yaml</artifactId>
3532
</dependency>
36-
<dependency>
37-
<groupId>jakarta.validation</groupId>
38-
<artifactId>jakarta.validation-api</artifactId>
39-
</dependency>
33+
4034
<dependency>
4135
<groupId>org.hibernate.validator</groupId>
4236
<artifactId>hibernate-validator</artifactId>
@@ -79,54 +73,4 @@
7973
<scope>test</scope>
8074
</dependency>
8175
</dependencies>
82-
83-
84-
<build>
85-
<plugins>
86-
<plugin>
87-
<groupId>org.jsonschema2pojo</groupId>
88-
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
89-
<configuration>
90-
<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
91-
<!--The comment below is left intentionally in case jsonschema2pojo one day accepts https urls. That day we can remove the file from schema dir and use directly the real schema-->
92-
<!-- <sourcePaths>
93-
<sourcePath>https://raw.githubusercontent.com/serverlessworkflow/specification/main/schema/workflow.yaml</sourcePath>
94-
</sourcePaths> -->
95-
<sourceType>yamlschema</sourceType>
96-
<targetPackage>io.serverlessworkflow.api.types</targetPackage>
97-
<outputDirectory>${project.build.directory}/generated-sources/src/main/java</outputDirectory>
98-
<includeJsr303Annotations>true</includeJsr303Annotations>
99-
<generateBuilders>true</generateBuilders>
100-
<initializeCollections>true</initializeCollections>
101-
<includeAdditionalProperties>true</includeAdditionalProperties>
102-
<includeToString>false</includeToString>
103-
<includeHashcodeAndEquals>false</includeHashcodeAndEquals>
104-
<includeConstructors>true</includeConstructors>
105-
<constructorsRequiredPropertiesOnly>true</constructorsRequiredPropertiesOnly>
106-
<useTitleAsClassname>true</useTitleAsClassname>
107-
<serializable>true</serializable>
108-
<targetVersion>${java.version}</targetVersion>
109-
<usePrimitives>true</usePrimitives>
110-
<useJakartaValidation>true</useJakartaValidation>
111-
<customRuleFactory>io.serverlessworkflow.generator.UnreferencedFactory</customRuleFactory>
112-
<customAnnotator>io.serverlessworkflow.generator.ConstAnnotator</customAnnotator>
113-
</configuration>
114-
<dependencies>
115-
<dependency>
116-
<groupId>io.serverlessworkflow</groupId>
117-
<artifactId>serverless-workflow-custom-generator</artifactId>
118-
<version>${project.version}</version>
119-
</dependency>
120-
</dependencies>
121-
<executions>
122-
<execution>
123-
<goals>
124-
<goal>generate</goal>
125-
</goals>
126-
<phase>generate-sources</phase>
127-
</execution>
128-
</executions>
129-
</plugin>
130-
</plugins>
131-
</build>
132-
</project>
76+
</project>

custom-generator/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212
<groupId>org.jsonschema2pojo</groupId>
1313
<artifactId>jsonschema2pojo-core</artifactId>
1414
</dependency>
15+
<dependency>
16+
<groupId>io.serverlessworkflow</groupId>
17+
<artifactId>serverlessworkflow-annotations</artifactId>
18+
<version>${project.version}</version>
19+
</dependency>
20+
1521
</dependencies>
1622
<build>
1723
<plugins>

custom-generator/src/main/java/io/serverlessworkflow/generator/AllAnyOneOfSchemaRule.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@
3333
import com.sun.codemodel.JPackage;
3434
import com.sun.codemodel.JType;
3535
import com.sun.codemodel.JVar;
36+
import io.serverlessworkflow.annotations.OneOfSetter;
37+
import io.serverlessworkflow.annotations.OneOfValueProvider;
38+
import io.serverlessworkflow.serialization.DeserializeHelper;
39+
import io.serverlessworkflow.serialization.SerializeHelper;
3640
import jakarta.validation.ConstraintViolationException;
3741
import java.io.UnsupportedEncodingException;
3842
import java.net.URI;
@@ -318,10 +322,7 @@ private JDefinedClass populateOneOf(
318322
null);
319323

320324
definedClass._implements(
321-
definedClass
322-
.owner()
323-
.ref(GeneratorUtils.ONE_OF_VALUE_PROVIDER_INTERFACE_NAME)
324-
.narrow(valueField.type()));
325+
definedClass.owner().ref(OneOfValueProvider.class).narrow(valueField.type()));
325326
GeneratorUtils.implementInterface(definedClass, valueField);
326327
try {
327328
JDefinedClass serializer = generateSerializer(definedClass);
@@ -397,9 +398,7 @@ private JDefinedClass generateSerializer(JDefinedClass relatedClass)
397398
(method, valueParam, genParam) ->
398399
method
399400
.body()
400-
.staticInvoke(
401-
definedClass.owner().ref(GeneratorUtils.SERIALIZE_HELPER_NAME),
402-
"serializeOneOf")
401+
.staticInvoke(definedClass.owner().ref(SerializeHelper.class), "serializeOneOf")
403402
.arg(genParam)
404403
.arg(valueParam));
405404
return definedClass;
@@ -418,7 +417,7 @@ private JDefinedClass generateDeserializer(
418417
body._return(
419418
definedClass
420419
.owner()
421-
.ref(GeneratorUtils.DESERIALIZE_HELPER_NAME)
420+
.ref(DeserializeHelper.class)
422421
.staticInvoke(methodName)
423422
.arg(parserParam)
424423
.arg(relatedClass.dotclass())
@@ -460,7 +459,7 @@ private JVar setupMethod(
460459
v -> {
461460
method.body().assign(JExpr._this().ref(v), methodParam);
462461
method
463-
.annotate(definedClass.owner().ref(GeneratorUtils.SETTER_ANNOTATION_NAME))
462+
.annotate(definedClass.owner().ref(OneOfSetter.class))
464463
.param("value", instanceField.type());
465464
});
466465
return methodParam;

custom-generator/src/main/java/io/serverlessworkflow/generator/GeneratorUtils.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,6 @@
3232

3333
public class GeneratorUtils {
3434

35-
public static final String SERIALIZE_HELPER_NAME =
36-
"io.serverlessworkflow.serialization.SerializeHelper";
37-
public static final String DESERIALIZE_HELPER_NAME =
38-
"io.serverlessworkflow.serialization.DeserializeHelper";
39-
public static final String ONE_OF_VALUE_PROVIDER_INTERFACE_NAME =
40-
"io.serverlessworkflow.api.OneOfValueProvider";
41-
public static final String SETTER_ANNOTATION_NAME =
42-
"io.serverlessworkflow.serialization.OneOfSetter";
43-
4435
@FunctionalInterface
4536
public interface SerializerFiller {
4637
void accept(JMethod method, JVar valueParam, JVar genParam);

custom-generator/src/main/java/io/serverlessworkflow/generator/UnevaluatedPropertiesRule.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.sun.codemodel.JMethod;
2828
import com.sun.codemodel.JMod;
2929
import com.sun.codemodel.JType;
30+
import io.serverlessworkflow.serialization.DeserializeHelper;
3031
import org.jsonschema2pojo.Schema;
3132
import org.jsonschema2pojo.rules.AdditionalPropertiesRule;
3233
import org.jsonschema2pojo.rules.Rule;
@@ -125,7 +126,7 @@ private JDefinedClass generateDeserializer(JDefinedClass relatedClass, JType pro
125126
._return(
126127
definedClass
127128
.owner()
128-
.ref(GeneratorUtils.DESERIALIZE_HELPER_NAME)
129+
.ref(DeserializeHelper.class)
129130
.staticInvoke("deserializeItem")
130131
.arg(parserParam)
131132
.arg(relatedClass.dotclass())

pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
<module>api</module>
4141
<module>custom-generator</module>
4242
<module>impl</module>
43+
<module>serverlessworkflow-types</module>
44+
<module>serverlessworkflow-annotations</module>
4345
</modules>
4446

4547
<properties>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
2+
<modelVersion>4.0.0</modelVersion>
3+
<parent>
4+
<groupId>io.serverlessworkflow</groupId>
5+
<artifactId>serverlessworkflow-parent</artifactId>
6+
<version>8.0.0-SNAPSHOT</version>
7+
</parent>
8+
<name>Serverless Workflow :: Annotations</name>
9+
<artifactId>serverlessworkflow-annotations</artifactId>
10+
<dependencies>
11+
<dependency>
12+
<groupId>com.fasterxml.jackson.core</groupId>
13+
<artifactId>jackson-databind</artifactId>
14+
</dependency>
15+
<dependency>
16+
<groupId>jakarta.validation</groupId>
17+
<artifactId>jakarta.validation-api</artifactId>
18+
</dependency>
19+
</dependencies>
20+
</project>

api/src/main/java/io/serverlessworkflow/serialization/OneOfSetter.java renamed to serverlessworkflow-annotations/src/main/java/io/serverlessworkflow/annotations/OneOfSetter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package io.serverlessworkflow.serialization;
16+
package io.serverlessworkflow.annotations;
1717

1818
import static java.lang.annotation.ElementType.METHOD;
1919
import static java.lang.annotation.RetentionPolicy.RUNTIME;

api/src/main/java/io/serverlessworkflow/api/OneOfValueProvider.java renamed to serverlessworkflow-annotations/src/main/java/io/serverlessworkflow/annotations/OneOfValueProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package io.serverlessworkflow.api;
16+
package io.serverlessworkflow.annotations;
1717

1818
public interface OneOfValueProvider<T> {
1919
T get();

api/src/main/java/io/serverlessworkflow/serialization/DeserializeHelper.java renamed to serverlessworkflow-annotations/src/main/java/io/serverlessworkflow/serialization/DeserializeHelper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.fasterxml.jackson.core.JsonProcessingException;
2020
import com.fasterxml.jackson.core.TreeNode;
2121
import com.fasterxml.jackson.databind.JsonMappingException;
22+
import io.serverlessworkflow.annotations.OneOfSetter;
2223
import jakarta.validation.ConstraintViolationException;
2324
import java.io.IOException;
2425
import java.lang.reflect.InvocationTargetException;

0 commit comments

Comments
 (0)