Repository navigation
Conversation
974a9d2 to
1cbb926
Compare
There was a problem hiding this comment.
🟡 Changes recommended
Compilation compatibility and runtime dependency and module-discovery regressions remain unresolved.
3 open findings
What changed in this PR
Migrates the SDK from Jackson 2 to Jackson 3 for #1763, updating serialization, runtime integrations, and generated code.
Changes:
- Updates Jackson dependencies and compatible integration libraries.
- Migrates serializers, deserializers, mapper configuration, and code generators.
- Adapts tests and examples to Jackson 3 APIs.
| File | Description |
|---|---|
| serialization/src/main/java/org/openworkflow/sdk/serialization/SerializeHelper.java | Updates one-of serialization. |
| serialization/src/main/java/org/openworkflow/sdk/serialization/DeserializeHelper.java | Uses Jackson 3 deserialization context. |
| serialization/pom.xml | Switches databind coordinates. |
| pom.xml | Updates Jackson and validator dependencies. |
| impl/validation/src/main/java/org/openworkflow/sdk/impl/jackson/schema/JsonSchemaValidatorFactory.java | Migrates mapper import. |
| impl/validation/src/main/java/org/openworkflow/sdk/impl/jackson/schema/JsonSchemaValidator.java | Migrates node import. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/WorkflowDefinitionTest.java | Migrates test node imports. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/ScheduleEventConsumerTest.java | Uses Jackson 3 CloudEvents data. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/RetryTimeoutTest.java | Migrates test node import. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/OpenIDCHTTPWorkflowDefinitionTest.java | Migrates test mapper import. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/OAuthHTTPWorkflowDefinitionTest.java | Migrates test mapper import. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/EventDefinitionTest.java | Migrates test Jackson imports. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/DateTimeDescriptorTest.java | Migrates test node import. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/CorrelationTest.java | Uses Jackson 3 CloudEvents data. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/CoreTaskTypesTest.java | Migrates test node imports. |
| impl/test/src/test/java/org/openworkflow/sdk/impl/test/AccessTokenProvider.java | Migrates token helper mapper. |
| impl/test/pom.xml | Switches Jersey JSON provider. |
| impl/pom.xml | Updates integrations and Docker exclusions. |
| impl/persistence/tests/src/main/java/org/openworkflow/sdk/impl/persistence/test/AbstractCorrelationPersistenceTest.java | Migrates CloudEvents test data. |
| impl/openapi-jackson/src/main/resources/META-INF/services/tools.jackson.databind.JacksonModule | Registers Jackson 3 OpenAPI module. |
| impl/openapi-jackson/src/main/java/org/openworkflow/sdk/impl/executors/openapi/jackson/JacksonUnifiedOpenAPIReader.java | Migrates reader mapper import. |
| impl/openapi-jackson/src/main/java/org/openworkflow/sdk/impl/executors/openapi/jackson/JacksonUnifiedOpenAPIMixInModule.java | Migrates module base class. |
| impl/model/src/test/java/org/openworkflow/sdk/impl/model/jackson/JacksonModelTest.java | Migrates test node import. |
| impl/model/src/main/java/org/openworkflow/sdk/impl/model/jackson/JacksonModelSerializer.java | Updates serializer signature. |
| impl/model/src/main/java/org/openworkflow/sdk/impl/model/jackson/JacksonModelFactory.java | Updates string nodes and exceptions. |
| impl/model/src/main/java/org/openworkflow/sdk/impl/model/jackson/JacksonModelDeserializer.java | Updates deserializer signature. |
| impl/model/src/main/java/org/openworkflow/sdk/impl/model/jackson/JacksonModelCollectionSerializer.java | Updates collection serializer. |
| impl/model/src/main/java/org/openworkflow/sdk/impl/model/jackson/JacksonModelCollectionDeserializer.java | Updates collection deserializer. |
| impl/model/src/main/java/org/openworkflow/sdk/impl/model/jackson/JacksonModelCollection.java | Migrates nodes and annotations. |
| impl/model/src/main/java/org/openworkflow/sdk/impl/model/jackson/JacksonModel.java | Migrates nodes and string access. |
| impl/model/src/main/java/org/openworkflow/sdk/impl/model/jackson/AbstractJacksonMarshaller.java | Removes checked-exception wrappers. |
| impl/model/pom.xml | Adds Jackson 3 databind dependency. |
| impl/lifecycleevent/src/main/java/org/openworkflow/sdk/impl/jackson/events/JacksonLifeCyclePublisher.java | Simplifies serialization exception handling. |
| impl/jwt-impl/src/main/java/org/openworkflow/sdk/impl/executors/http/oauth/jackson/JacksonJWTConverter.java | Migrates JWT parsing APIs. |
| impl/jwt-impl/src/main/java/org/openworkflow/sdk/impl/executors/http/jackson/JacksonModelConverterFactory.java | Migrates node import. |
| impl/json-utils/src/test/java/org/openworkflow/sdk/impl/jackson/JsonUtilsStaticInitTest.java | Migrates test mapper import. |
| impl/json-utils/src/test/java/org/openworkflow/sdk/impl/jackson/JacksonCloudEventUtilsTest.java | Updates CloudEvents imports and assertions. |
| impl/json-utils/src/main/java/org/openworkflow/sdk/impl/jackson/ObjectMapperFactoryProvider.java | Builds default Jackson 3 mapper. |
| impl/json-utils/src/main/java/org/openworkflow/sdk/impl/jackson/ObjectMapperFactory.java | Migrates mapper interface type. |
| impl/json-utils/src/main/java/org/openworkflow/sdk/impl/jackson/MergeUtils.java | Migrates merge node imports. |
| impl/json-utils/src/main/java/org/openworkflow/sdk/impl/jackson/JsonUtils.java | Updates node APIs and exceptions. |
| impl/json-utils/src/main/java/org/openworkflow/sdk/impl/jackson/JacksonCloudEventUtils.java | Migrates CloudEvents conversion. |
| impl/json-utils/src/main/java/org/openworkflow/sdk/impl/jackson/FunctionJsonNode.java | Migrates node import. |
| impl/json-utils/src/main/java/org/openworkflow/sdk/impl/jackson/FunctionBaseJsonNode.java | Updates custom node overrides. |
| impl/json-utils/pom.xml | Updates databind and CloudEvents dependencies. |
| impl/jq/src/main/java/org/openworkflow/sdk/impl/expressions/jq/JQExpressionFactory.java | Migrates CloudEvents data import. |
| impl/jq/src/main/java/org/openworkflow/sdk/impl/expressions/jq/JQExpression.java | Migrates expression node imports. |
| impl/http/pom.xml | Switches Jersey test provider. |
| impl/container/pom.xml | Excludes Docker's Jackson 2 dependencies. |
| generators/types/pom.xml | Pins generator Jackson 2 dependencies. |
| generators/jackson/src/main/java/org/openworkflow/sdk/generator/jackson/JacksonMixInPojo.java | Generates Jackson 3 mix-ins. |
| generators/jackson/src/main/java/org/openworkflow/sdk/generator/jackson/GeneratorUtils.java | Updates generated serialization APIs. |
| generators/jackson/src/main/java/org/openworkflow/sdk/generator/graalvm/ReflectNativeFileHandler.java | Migrates metadata mapper imports. |
| examples/simpleGet/pom.xml | Switches example Jersey provider. |
| examples/pom.xml | Manages Jackson 3 Jersey provider. |
| api/src/main/java/org/openworkflow/sdk/serialization/URISerializer.java | Migrates URI serializer. |
| api/src/main/java/org/openworkflow/sdk/serialization/URIDeserializer.java | Updates URI deserializer and errors. |
| api/src/main/java/org/openworkflow/sdk/serialization/BeanDeserializerWithValidation.java | Uses delegating validation deserializer. |
| api/src/main/java/org/openworkflow/sdk/serialization/BeanDeserializerModifierWithValidation.java | Updates validation modifier API. |
| api/src/main/java/org/openworkflow/sdk/api/WorkflowFormat.java | Migrates mapper import. |
| api/src/main/java/org/openworkflow/sdk/api/ValidationReader.java | Migrates validation Jackson imports. |
| api/src/main/java/org/openworkflow/sdk/api/ObjectMapperFactory.java | Rebuilds JSON/YAML mapper configuration. |
| api/pom.xml | Switches YAML dependency coordinates. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
2f97b39 to
d9610cc
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
The port-binding fixture exits before inspection, making the relocated integration test unreliable.
0 open findings
Previously missed (1)
In code that hasn't changed since last review

Keep the test container running for port binding checks

impl/container/src/test/resources/workflows-samples/container-ports.yaml:11
echo exits immediately, but testPortBindings() polls at one-second intervals before inspecting NetworkSettings.Ports. Docker clears active port bindings when the container stops, so the retained container can be found while the binding assertions fail. Restore a long-running command so the container stays running until the test's finally block removes it.
🧠 Review effort: Balanced
Container test has been moved to container module (so jackson is not included) Signed-off-by: Francisco Javier Tirado Sarti <ftirados@ibm.com> [Fix open-workflow-specification#1763] Replacing deprecated asText by asString Signed-off-by: Francisco Javier Tirado Sarti <ftirados@ibm.com>
Signed-off-by: Francisco Javier Tirado Sarti <ftirados@ibm.com>

Fix #1763
As part of the PR, I was forced to review the container test (because java docker library is not compatbile with jackson 3). I moved the container test to the container module and fixed both the test and the implementation (making copilot divert, as usual)