From bc4b8d5aecb27bfaeba3832bd5c3849864e1fd9a Mon Sep 17 00:00:00 2001 From: Dai MIKURUBE Date: Wed, 25 Oct 2023 14:30:20 +0900 Subject: [PATCH 1/3] Bump the depended Jackson version to 2.15.3 --- .github/workflows/check.yml | 4 ++-- .github/workflows/main.yml | 4 ++-- .github/workflows/publish.yml | 2 +- build.gradle | 6 +++--- gradle.lockfile | 10 +++++----- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 5e3ab3a..909569b 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -9,9 +9,9 @@ jobs: strategy: fail-fast: false matrix: - jacksonVersion: [ "2.6.7.5", "2.7.9", "2.8.11", "2.9.10", "2.10.5", "2.11.4", "2.12.7", "2.13.5", "2.14.3", "2.15.2" ] + jacksonVersion: [ "2.15.3" ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up OpenJDK 8 uses: actions/setup-java@v3 with: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f9917c1..e55c971 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,7 +10,7 @@ jobs: hash-master: ${{ steps.hash-master.outputs.hash-master }} hash-main: ${{ steps.hash-main.outputs.hash-main }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - id: hash-master @@ -30,7 +30,7 @@ jobs: if: needs.diff.outputs.hash-master != needs.diff.outputs.hash-main runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Checkout master diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7c39399..30a6966 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up OpenJDK 8 uses: actions/setup-java@v3 with: diff --git a/build.gradle b/build.gradle index 564002c..1d1302d 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { ext { if (!project.hasProperty("jacksonVersionForJacksonTest")) { - jacksonVersionForJacksonTest = "2.6.7.5" + jacksonVersionForJacksonTest = "2.15.3" } } @@ -62,7 +62,7 @@ dependencies { // Dependencies should be "api" so that their scope would be "compile" in "pom.xml". api "javax.validation:validation-api:1.1.0.Final" - api platform("com.fasterxml.jackson:jackson-bom:2.6.7.5") + api platform("com.fasterxml.jackson:jackson-bom:2.15.3") api "com.fasterxml.jackson.core:jackson-annotations" api "com.fasterxml.jackson.core:jackson-core" api "com.fasterxml.jackson.core:jackson-databind" @@ -186,7 +186,7 @@ publishing { developers { developer { name = "Dai MIKURUBE" - email = "dmikurube@treasure-data.com" + email = "dmikurube@acm.org" } } diff --git a/gradle.lockfile b/gradle.lockfile index e77f123..a8b5a79 100644 --- a/gradle.lockfile +++ b/gradle.lockfile @@ -1,11 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.fasterxml.jackson.core:jackson-annotations:2.6.7=compileClasspath,runtimeClasspath -com.fasterxml.jackson.core:jackson-core:2.6.7=compileClasspath,runtimeClasspath -com.fasterxml.jackson.core:jackson-databind:2.6.7.5=compileClasspath,runtimeClasspath -com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.6.7=compileClasspath,runtimeClasspath -com.fasterxml.jackson:jackson-bom:2.6.7.5=compileClasspath,runtimeClasspath +com.fasterxml.jackson.core:jackson-annotations:2.15.3=compileClasspath,runtimeClasspath +com.fasterxml.jackson.core:jackson-core:2.15.3=compileClasspath,runtimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.15.3=compileClasspath,runtimeClasspath +com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.15.3=compileClasspath,runtimeClasspath +com.fasterxml.jackson:jackson-bom:2.15.3=compileClasspath,runtimeClasspath javax.validation:validation-api:1.1.0.Final=compileClasspath,runtimeClasspath org.embulk:embulk-spi:0.11=compileClasspath org.msgpack:msgpack-core:0.8.24=compileClasspath From 82a4db43e018d2e52fa314e5dbb86ad85afd37d2 Mon Sep 17 00:00:00 2001 From: Dai MIKURUBE Date: Wed, 25 Oct 2023 14:37:28 +0900 Subject: [PATCH 2/3] Assert when used with an unsupported Jackson version --- .../util/config/ConfigMapperFactory.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/main/java/org/embulk/util/config/ConfigMapperFactory.java b/src/main/java/org/embulk/util/config/ConfigMapperFactory.java index a22dac1..d91cfb5 100644 --- a/src/main/java/org/embulk/util/config/ConfigMapperFactory.java +++ b/src/main/java/org/embulk/util/config/ConfigMapperFactory.java @@ -137,6 +137,9 @@ public Builder withValidator(final Validator validator) { * Creates a {@link Builder} to build {@link ConfigMapperFactory}. */ public static Builder builder() { + assertJacksonCoreVersion(); + assertJacksonDataBindVersion(); + assertJacksonDataTypeJdk8Version(); return new Builder(); } @@ -320,6 +323,39 @@ private ObjectMapper mapperForOthers() { return objectMapper; } + private static void assertJacksonCoreVersion() { + if (com.fasterxml.jackson.core.json.PackageVersion.VERSION.getMajorVersion() != 2) { + throw new UnsupportedOperationException("embulk-util-config is not used with Jackson 2."); + } + + final int minor = com.fasterxml.jackson.core.json.PackageVersion.VERSION.getMinorVersion(); + if (minor < 14 || (minor == 15 && com.fasterxml.jackson.core.json.PackageVersion.VERSION.getPatchLevel() <= 2)) { + throw new UnsupportedOperationException("embulk-util-config is not used with Jackson 2.15.3 or later."); + } + } + + private static void assertJacksonDataBindVersion() { + if (com.fasterxml.jackson.databind.cfg.PackageVersion.VERSION.getMajorVersion() != 2) { + throw new UnsupportedOperationException("embulk-util-config is not used with Jackson 2."); + } + + final int minor = com.fasterxml.jackson.databind.cfg.PackageVersion.VERSION.getMinorVersion(); + if (minor < 14 || (minor == 15 && com.fasterxml.jackson.databind.cfg.PackageVersion.VERSION.getPatchLevel() <= 2)) { + throw new UnsupportedOperationException("embulk-util-config is not used with Jackson 2.15.3 or later."); + } + } + + private static void assertJacksonDataTypeJdk8Version() { + if (com.fasterxml.jackson.datatype.jdk8.PackageVersion.VERSION.getMajorVersion() != 2) { + throw new UnsupportedOperationException("embulk-util-config is not used with Jackson 2."); + } + + final int minor = com.fasterxml.jackson.datatype.jdk8.PackageVersion.VERSION.getMinorVersion(); + if (minor < 14 || (minor == 15 && com.fasterxml.jackson.datatype.jdk8.PackageVersion.VERSION.getPatchLevel() <= 2)) { + throw new UnsupportedOperationException("embulk-util-config is not used with Jackson 2.15.3 or later."); + } + } + private static final Logger logger = LoggerFactory.getLogger(ConfigMapperFactory.class); private final List additionalModules; From 697fe59ef5231fdb5d0341526d301a047f32cda6 Mon Sep 17 00:00:00 2001 From: Dai MIKURUBE Date: Thu, 26 Oct 2023 15:47:26 +0900 Subject: [PATCH 3/3] Add each Jackson library name in exceptions --- .../java/org/embulk/util/config/ConfigMapperFactory.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/embulk/util/config/ConfigMapperFactory.java b/src/main/java/org/embulk/util/config/ConfigMapperFactory.java index d91cfb5..1eac9b6 100644 --- a/src/main/java/org/embulk/util/config/ConfigMapperFactory.java +++ b/src/main/java/org/embulk/util/config/ConfigMapperFactory.java @@ -330,7 +330,7 @@ private static void assertJacksonCoreVersion() { final int minor = com.fasterxml.jackson.core.json.PackageVersion.VERSION.getMinorVersion(); if (minor < 14 || (minor == 15 && com.fasterxml.jackson.core.json.PackageVersion.VERSION.getPatchLevel() <= 2)) { - throw new UnsupportedOperationException("embulk-util-config is not used with Jackson 2.15.3 or later."); + throw new UnsupportedOperationException("embulk-util-config is not used with Jackson (jackson-core) 2.15.3 or later."); } } @@ -341,7 +341,7 @@ private static void assertJacksonDataBindVersion() { final int minor = com.fasterxml.jackson.databind.cfg.PackageVersion.VERSION.getMinorVersion(); if (minor < 14 || (minor == 15 && com.fasterxml.jackson.databind.cfg.PackageVersion.VERSION.getPatchLevel() <= 2)) { - throw new UnsupportedOperationException("embulk-util-config is not used with Jackson 2.15.3 or later."); + throw new UnsupportedOperationException("embulk-util-config is not used with Jackson (jackson-databind) 2.15.3 or later."); } } @@ -352,7 +352,7 @@ private static void assertJacksonDataTypeJdk8Version() { final int minor = com.fasterxml.jackson.datatype.jdk8.PackageVersion.VERSION.getMinorVersion(); if (minor < 14 || (minor == 15 && com.fasterxml.jackson.datatype.jdk8.PackageVersion.VERSION.getPatchLevel() <= 2)) { - throw new UnsupportedOperationException("embulk-util-config is not used with Jackson 2.15.3 or later."); + throw new UnsupportedOperationException("embulk-util-config is not used with Jackson (jackson-datatype-jdk8) 2.15.3 or later."); } }