sequence, JsonGenerator jsonGenerator,
- SerializationContext serializerProvider) throws JacksonException {
+ SerializerProvider serializerProvider) throws java.io.IOException {
jsonGenerator.writePOJO(
new SerializableSequence<>(
SerializableBreak.of(sequence.getPreviousBreak()),
diff --git a/persistence/jackson/src/main/java/ai/timefold/solver/jackson/api/score/stream/common/package-info.java b/persistence/jackson/src/main/java/ai/timefold/solver/jackson/api/score/stream/common/package-info.java
index a81b86aeef5..a40e556aed8 100644
--- a/persistence/jackson/src/main/java/ai/timefold/solver/jackson/api/score/stream/common/package-info.java
+++ b/persistence/jackson/src/main/java/ai/timefold/solver/jackson/api/score/stream/common/package-info.java
@@ -8,7 +8,7 @@
* through user-specified {@link ai.timefold.solver.core.api.score.stream.ConstraintJustification}.
* The serialization and deserialization of these types happens automatically,
* if the user has registered {@link ai.timefold.solver.jackson.api.TimefoldJacksonModule}
- * with their {@link tools.jackson.databind.ObjectMapper}.
+ * with their {@link com.fasterxml.jackson.databind.ObjectMapper}.
*
*
* Sequences carry user-specified types of values and for this to work,
diff --git a/persistence/jackson/src/main/java/ai/timefold/solver/jackson/impl/domain/solution/JacksonSolutionFileIO.java b/persistence/jackson/src/main/java/ai/timefold/solver/jackson/impl/domain/solution/JacksonSolutionFileIO.java
index 126b1aeff39..d7f0e6ab8f8 100644
--- a/persistence/jackson/src/main/java/ai/timefold/solver/jackson/impl/domain/solution/JacksonSolutionFileIO.java
+++ b/persistence/jackson/src/main/java/ai/timefold/solver/jackson/impl/domain/solution/JacksonSolutionFileIO.java
@@ -6,9 +6,9 @@
import ai.timefold.solver.core.api.domain.solution.PlanningSolution;
import ai.timefold.solver.core.api.domain.solution.SolutionFileIO;
-import tools.jackson.core.JacksonException;
-import tools.jackson.databind.ObjectMapper;
-import tools.jackson.databind.json.JsonMapper;
+import com.fasterxml.jackson.core.JacksonException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.json.JsonMapper;
/**
*
@@ -43,7 +43,7 @@ public String getOutputFileExtension() {
public Solution_ read(File inputSolutionFile) {
try {
return mapper.readValue(inputSolutionFile, clazz);
- } catch (JacksonException e) {
+ } catch (java.io.IOException e) {
throw new IllegalArgumentException("Failed reading inputSolutionFile (" + inputSolutionFile + ").", e);
}
}
@@ -51,7 +51,7 @@ public Solution_ read(File inputSolutionFile) {
public Solution_ read(InputStream inputSolutionStream) {
try {
return mapper.readValue(inputSolutionStream, clazz);
- } catch (JacksonException e) {
+ } catch (java.io.IOException e) {
throw new IllegalArgumentException("Failed reading inputSolutionStream.", e);
}
}
@@ -60,7 +60,7 @@ public Solution_ read(InputStream inputSolutionStream) {
public void write(Solution_ solution, File file) {
try {
mapper.writerWithDefaultPrettyPrinter().writeValue(file, solution);
- } catch (JacksonException e) {
+ } catch (java.io.IOException e) {
throw new IllegalArgumentException("Failed write", e);
}
}
diff --git a/persistence/jackson/src/main/java/module-info.java b/persistence/jackson/src/main/java/module-info.java
index 2477ae95dca..018767413e8 100644
--- a/persistence/jackson/src/main/java/module-info.java
+++ b/persistence/jackson/src/main/java/module-info.java
@@ -2,13 +2,13 @@
exports ai.timefold.solver.jackson.api;
- provides tools.jackson.databind.JacksonModule with
+ provides com.fasterxml.jackson.databind.Module with
ai.timefold.solver.jackson.api.TimefoldJacksonModule;
requires transitive ai.timefold.solver.core;
requires org.jspecify;
- requires tools.jackson.databind;
+ requires com.fasterxml.jackson.databind;
- uses tools.jackson.databind.JacksonModule;
+ uses com.fasterxml.jackson.databind.Module;
}
\ No newline at end of file
diff --git a/persistence/jackson/src/main/resources/META-INF/services/tools.jackson.databind.JacksonModule b/persistence/jackson/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
similarity index 100%
rename from persistence/jackson/src/main/resources/META-INF/services/tools.jackson.databind.JacksonModule
rename to persistence/jackson/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/AbstractJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/AbstractJacksonRoundTripTest.java
index e21627ac203..2019afd1ac3 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/AbstractJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/AbstractJacksonRoundTripTest.java
@@ -1,7 +1,7 @@
package ai.timefold.solver.jackson.api;
-import tools.jackson.core.JacksonException;
-import tools.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.core.JacksonException;
+import com.fasterxml.jackson.databind.ObjectMapper;
public abstract class AbstractJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/TimefoldJacksonModuleTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/TimefoldJacksonModuleTest.java
index 8b04136a695..4d8dc2f764c 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/TimefoldJacksonModuleTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/TimefoldJacksonModuleTest.java
@@ -15,12 +15,12 @@
import com.fasterxml.jackson.annotation.JsonInclude;
-import tools.jackson.core.JacksonException;
-import tools.jackson.databind.DeserializationFeature;
-import tools.jackson.databind.JacksonModule;
-import tools.jackson.databind.MapperFeature;
-import tools.jackson.databind.json.JsonMapper;
-import tools.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.core.JacksonException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.Module;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.json.JsonMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
class TimefoldJacksonModuleTest extends AbstractJacksonRoundTripTest {
@@ -58,7 +58,7 @@ void constraintWeightOverrides() throws JacksonException {
var objectMapper = JsonMapper.builder()
.addModule(TimefoldJacksonModule.createModule())
.addModule(new CustomJacksonModule())
- .changeDefaultPropertyInclusion(incl -> incl.withValueInclusion(JsonInclude.Include.NON_DEFAULT))
+ .serializationInclusion(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_DEFAULT)
.build();
var constraintWeightOverrides = ConstraintWeightOverrides.of(
@@ -80,7 +80,7 @@ void constraintWeightOverrides() throws JacksonException {
@Test
void testServiceProvider() {
- ServiceLoader loader = ServiceLoader.load(JacksonModule.class);
+ ServiceLoader loader = ServiceLoader.load(Module.class);
assertThat(loader).hasSizeGreaterThan(0);
}
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/AbstractScoreJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/AbstractScoreJacksonRoundTripTest.java
index 43dbcf486a6..fe5cbd2ee83 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/AbstractScoreJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/AbstractScoreJacksonRoundTripTest.java
@@ -6,8 +6,8 @@
import ai.timefold.solver.core.api.score.Score;
import ai.timefold.solver.jackson.api.AbstractJacksonRoundTripTest;
-import tools.jackson.core.JacksonException;
-import tools.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.core.JacksonException;
+import com.fasterxml.jackson.databind.ObjectMapper;
public abstract class AbstractScoreJacksonRoundTripTest extends AbstractJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/BendableBigDecimalScoreJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/BendableBigDecimalScoreJacksonRoundTripTest.java
index 0dc9431ac6a..0d27e1d56e8 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/BendableBigDecimalScoreJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/BendableBigDecimalScoreJacksonRoundTripTest.java
@@ -6,8 +6,8 @@
import org.junit.jupiter.api.Test;
-import tools.jackson.databind.annotation.JsonDeserialize;
-import tools.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
class BendableBigDecimalScoreJacksonRoundTripTest extends AbstractScoreJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/BendableScoreJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/BendableScoreJacksonRoundTripTest.java
index 5c1c4041236..bda00a69458 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/BendableScoreJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/BendableScoreJacksonRoundTripTest.java
@@ -4,8 +4,8 @@
import org.junit.jupiter.api.Test;
-import tools.jackson.databind.annotation.JsonDeserialize;
-import tools.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
class BendableScoreJacksonRoundTripTest extends AbstractScoreJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardMediumSoftBigDecimalScoreJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardMediumSoftBigDecimalScoreJacksonRoundTripTest.java
index 7e5f0a3c631..2c45286fc3f 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardMediumSoftBigDecimalScoreJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardMediumSoftBigDecimalScoreJacksonRoundTripTest.java
@@ -6,8 +6,8 @@
import org.junit.jupiter.api.Test;
-import tools.jackson.databind.annotation.JsonDeserialize;
-import tools.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
class HardMediumSoftBigDecimalScoreJacksonRoundTripTest extends AbstractScoreJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardMediumSoftScoreJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardMediumSoftScoreJacksonRoundTripTest.java
index c7207c5dc24..ab8fa10839f 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardMediumSoftScoreJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardMediumSoftScoreJacksonRoundTripTest.java
@@ -4,8 +4,8 @@
import org.junit.jupiter.api.Test;
-import tools.jackson.databind.annotation.JsonDeserialize;
-import tools.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
class HardMediumSoftScoreJacksonRoundTripTest extends AbstractScoreJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardSoftBigDecimalScoreJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardSoftBigDecimalScoreJacksonRoundTripTest.java
index f9a5c75ef39..796eef04d0e 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardSoftBigDecimalScoreJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardSoftBigDecimalScoreJacksonRoundTripTest.java
@@ -6,8 +6,8 @@
import org.junit.jupiter.api.Test;
-import tools.jackson.databind.annotation.JsonDeserialize;
-import tools.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
class HardSoftBigDecimalScoreJacksonRoundTripTest extends AbstractScoreJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardSoftScoreJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardSoftScoreJacksonRoundTripTest.java
index 1da9c8af98e..5a48334d8b3 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardSoftScoreJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/HardSoftScoreJacksonRoundTripTest.java
@@ -4,8 +4,8 @@
import org.junit.jupiter.api.Test;
-import tools.jackson.databind.annotation.JsonDeserialize;
-import tools.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
class HardSoftScoreJacksonRoundTripTest extends AbstractScoreJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/SimpleBigDecimalScoreJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/SimpleBigDecimalScoreJacksonRoundTripTest.java
index 24613512ae5..ecac66e6ff6 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/SimpleBigDecimalScoreJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/SimpleBigDecimalScoreJacksonRoundTripTest.java
@@ -6,8 +6,8 @@
import org.junit.jupiter.api.Test;
-import tools.jackson.databind.annotation.JsonDeserialize;
-import tools.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
class SimpleBigDecimalScoreJacksonRoundTripTest extends AbstractScoreJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/SimpleScoreJacksonRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/SimpleScoreJacksonRoundTripTest.java
index 433d32faaa6..21caf07bfee 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/SimpleScoreJacksonRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/SimpleScoreJacksonRoundTripTest.java
@@ -4,8 +4,8 @@
import org.junit.jupiter.api.Test;
-import tools.jackson.databind.annotation.JsonDeserialize;
-import tools.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
class SimpleScoreJacksonRoundTripTest extends AbstractScoreJacksonRoundTripTest {
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/stream/common/LoadBalanceRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/stream/common/LoadBalanceRoundTripTest.java
index 9f99acdf0d6..fd04eac7782 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/stream/common/LoadBalanceRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/stream/common/LoadBalanceRoundTripTest.java
@@ -18,9 +18,9 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
-import tools.jackson.core.JacksonException;
-import tools.jackson.databind.ObjectMapper;
-import tools.jackson.databind.json.JsonMapper;
+import com.fasterxml.jackson.core.JacksonException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.json.JsonMapper;
class LoadBalanceRoundTripTest {
@@ -46,8 +46,7 @@ void roundTrip() throws JacksonException {
var loadBalance = (LoadBalance- ) collector.finisher().apply(context);
ObjectMapper objectMapper = JsonMapper.builder()
- .changeDefaultPropertyInclusion(incl -> incl.withContentInclusion(JsonInclude.Include.NON_NULL)
- .withValueInclusion(JsonInclude.Include.NON_NULL))
+ .serializationInclusion(JsonInclude.Include.NON_NULL)
.addModule(TimefoldJacksonModule.createModule())
.build();
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/stream/common/SequenceRoundTripTest.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/stream/common/SequenceRoundTripTest.java
index 17ed4d33bf6..67984af3f42 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/stream/common/SequenceRoundTripTest.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/api/score/stream/common/SequenceRoundTripTest.java
@@ -19,10 +19,10 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
-import tools.jackson.core.JacksonException;
-import tools.jackson.databind.MapperFeature;
-import tools.jackson.databind.ObjectMapper;
-import tools.jackson.databind.json.JsonMapper;
+import com.fasterxml.jackson.core.JacksonException;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.json.JsonMapper;
class SequenceRoundTripTest {
@@ -55,8 +55,7 @@ void roundTrip() throws JacksonException {
var breaks = sequenceChain.getBreaks().toArray(new Break[0]);
ObjectMapper objectMapper = JsonMapper.builder()
- .changeDefaultPropertyInclusion(incl -> incl.withContentInclusion(JsonInclude.Include.NON_NULL)
- .withValueInclusion(JsonInclude.Include.NON_NULL))
+ .serializationInclusion(JsonInclude.Include.NON_NULL)
.addModule(TimefoldJacksonModule.createModule())
.disable(MapperFeature.SORT_CREATOR_PROPERTIES_FIRST)
.build();
diff --git a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/testdomain/JacksonTestdataSolution.java b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/testdomain/JacksonTestdataSolution.java
index 970514d3f7f..19bde3d55fc 100644
--- a/persistence/jackson/src/test/java/ai/timefold/solver/jackson/testdomain/JacksonTestdataSolution.java
+++ b/persistence/jackson/src/test/java/ai/timefold/solver/jackson/testdomain/JacksonTestdataSolution.java
@@ -12,8 +12,8 @@
import ai.timefold.solver.jackson.api.score.SimpleScoreJacksonDeserializer;
import ai.timefold.solver.jackson.api.score.SimpleScoreJacksonSerializer;
-import tools.jackson.databind.annotation.JsonDeserialize;
-import tools.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@PlanningSolution
public class JacksonTestdataSolution extends JacksonTestdataObject {
diff --git a/spring-integration/pom.xml b/spring-integration/pom.xml
index a026b31aa2c..6dd37339314 100644
--- a/spring-integration/pom.xml
+++ b/spring-integration/pom.xml
@@ -37,9 +37,9 @@
Therefore we need to bring them in sync here.
This needs to be imported before the Spring Boot dependency management to be effective.
-->
- tools.jackson
+ com.fasterxml.jackson
jackson-bom
- ${version.tools.jackson}
+ ${version.com.fasterxml.jackson.core}
pom
import
@@ -54,6 +54,22 @@
pom
import
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ 4.0.2
+
+
+ org.glassfish.jaxb
+ jaxb-runtime
+ 4.0.5
+
+
+ jakarta.activation
+ jakarta.activation-api
+ 2.1.3
+