diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7ff2c7f..48c3659 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,7 +28,7 @@ jobs: - name: push tag uses: ad-m/github-push-action@master with: - branch: master + branch: ${{ github.ref_head }} tags: true github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} - name: Create a Release diff --git a/build.gradle b/build.gradle index dfd1bca..5c1ae9a 100644 --- a/build.gradle +++ b/build.gradle @@ -26,11 +26,11 @@ subprojects { } } ext { - jacksonVersion = "2.18.4" - vavrVersion = "0.10.6" - _jooqVersion = "3.20.4" + jacksonVersion = "3.1.1" + vavrVersion = "1.0.1" + _jooqVersion = "3.21.1" scalaVersion = "2.13" - reactorVersion = "3.7.7" + reactorVersion = "3.8.4" testContainers = "1.21.1" } test { diff --git a/gradle.properties b/gradle.properties index 4cca1c2..cd92d6b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=2.4.0-SNAPSHOT +version=3.0.0-SNAPSHOT diff --git a/jooq-async-api-tck/build.gradle b/jooq-async-api-tck/build.gradle index 7594bf6..d929616 100644 --- a/jooq-async-api-tck/build.gradle +++ b/jooq-async-api-tck/build.gradle @@ -12,11 +12,11 @@ dependencies { implementation("io.vavr:vavr:$vavrVersion") implementation("org.jooq:jooq:$_jooqVersion") implementation("io.projectreactor:reactor-core:$reactorVersion") - implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") - implementation("io.vavr:vavr-jackson:0.10.3") + implementation("tools.jackson.core:jackson-databind:$jacksonVersion") + implementation("io.vavr:vavr-jackson:1.0.0") implementation("com.novocode:junit-interface:0.11") - implementation("org.assertj:assertj-core:3.10.0") - implementation("org.postgresql:postgresql:42.2.5") + implementation('org.assertj:assertj-core:3.27.7') + implementation('org.postgresql:postgresql:42.7.7') implementation("org.mockito:mockito-core:2.22.0") implementation("org.testcontainers:postgresql:${testContainers}") } \ No newline at end of file diff --git a/jooq-async-api-tck/src/main/java/fr/maif/jooq/AbstractPgAsyncPoolTest.java b/jooq-async-api-tck/src/main/java/fr/maif/jooq/AbstractPgAsyncPoolTest.java index 29e8fa5..5c8dacc 100644 --- a/jooq-async-api-tck/src/main/java/fr/maif/jooq/AbstractPgAsyncPoolTest.java +++ b/jooq-async-api-tck/src/main/java/fr/maif/jooq/AbstractPgAsyncPoolTest.java @@ -1,8 +1,9 @@ package fr.maif.jooq; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; +import tools.jackson.databind.node.ObjectNode; import io.vavr.collection.HashMap; import io.vavr.collection.List; import io.vavr.collection.Map; @@ -46,12 +47,11 @@ public abstract class AbstractPgAsyncPoolTest { .withTag("14")) .waitingFor(Wait.forListeningPort()); - private final static ObjectMapper mapper = new ObjectMapper(); - private PgAsyncPool pgAsyncPool; + private final static ObjectMapper mapper = JsonMapper.builder() + .addModule(new VavrModule()) + .build(); - { - mapper.registerModule(new VavrModule()); - } + private PgAsyncPool pgAsyncPool; protected PGSimpleDataSource dataSource; protected DSLContext dslContext; diff --git a/jooq-async-api-tck/src/main/java/fr/maif/jooq/JsonConverter.java b/jooq-async-api-tck/src/main/java/fr/maif/jooq/JsonConverter.java index 6b40f0c..13bfeb1 100644 --- a/jooq-async-api-tck/src/main/java/fr/maif/jooq/JsonConverter.java +++ b/jooq-async-api-tck/src/main/java/fr/maif/jooq/JsonConverter.java @@ -1,28 +1,22 @@ package fr.maif.jooq; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; -import com.fasterxml.jackson.databind.node.NullNode; import org.jooq.Converter; import org.jooq.JSONB; - -import java.io.IOException; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectWriter; +import tools.jackson.databind.node.NullNode; public class JsonConverter implements Converter { private final static ObjectMapper mapper = new ObjectMapper(); private final static ObjectWriter writer = mapper.writerFor(JsonNode.class); + @Override public JsonNode from(JSONB databaseObject) { if (databaseObject != null && databaseObject.data() != null) { - try { - return mapper.readTree(databaseObject.data()); - } catch (IOException e) { - throw new RuntimeException("Error reading json"+databaseObject.data(), e); - } + return mapper.readTree(databaseObject.data()); } else { return NullNode.getInstance(); } @@ -30,11 +24,7 @@ public JsonNode from(JSONB databaseObject) { @Override public JSONB to(JsonNode userObject) { - try { - return JSONB.valueOf(writer.writeValueAsString(userObject)); - } catch (JsonProcessingException e) { - throw new RuntimeException("Error writing json"+userObject, e); - } + return JSONB.valueOf(writer.writeValueAsString(userObject)); } @Override diff --git a/jooq-async-jdbc/build.gradle b/jooq-async-jdbc/build.gradle index c41e2b4..c24eb91 100644 --- a/jooq-async-jdbc/build.gradle +++ b/jooq-async-jdbc/build.gradle @@ -18,8 +18,8 @@ dependencies { testImplementation("com.novocode:junit-interface:0.11") testImplementation("org.junit.jupiter:junit-jupiter-engine:5.9.0") testImplementation("org.junit.vintage:junit-vintage-engine:5.9.0") - testImplementation("org.assertj:assertj-core:3.10.0") - testImplementation("org.postgresql:postgresql:42.2.5") + testImplementation('org.assertj:assertj-core:3.27.7') + testImplementation('org.postgresql:postgresql:42.7.7') testImplementation("org.mockito:mockito-core:2.22.0") testImplementation("org.testcontainers:testcontainers:${testContainers}") testImplementation("org.testcontainers:postgresql:${testContainers}") diff --git a/jooq-async-reactive/build.gradle b/jooq-async-reactive/build.gradle index 2117d73..a1d7e36 100644 --- a/jooq-async-reactive/build.gradle +++ b/jooq-async-reactive/build.gradle @@ -11,10 +11,10 @@ dependencies { implementation("io.vavr:vavr:$vavrVersion") implementation("org.jooq:jooq:$_jooqVersion") - implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") + implementation("tools.jackson.core:jackson-databind:$jacksonVersion") implementation("io.projectreactor:reactor-core:$reactorVersion") implementation("org.slf4j:slf4j-api:1.7.26") - implementation("io.vertx:vertx-pg-client:5.0.0") + implementation("io.vertx:vertx-pg-client:5.0.10") testImplementation project(':jooq-async-api-tck') testImplementation("com.novocode:junit-interface:0.11") diff --git a/jooq-async-reactive/src/main/java/fr/maif/jooq/reactive/AbstractReactivePgAsyncClient.java b/jooq-async-reactive/src/main/java/fr/maif/jooq/reactive/AbstractReactivePgAsyncClient.java index 09a5bdb..f9c4914 100644 --- a/jooq-async-reactive/src/main/java/fr/maif/jooq/reactive/AbstractReactivePgAsyncClient.java +++ b/jooq-async-reactive/src/main/java/fr/maif/jooq/reactive/AbstractReactivePgAsyncClient.java @@ -1,9 +1,5 @@ package fr.maif.jooq.reactive; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.*; import fr.maif.jooq.PgAsyncClient; import fr.maif.jooq.QueryResult; import io.vavr.collection.List; @@ -26,6 +22,10 @@ import org.jooq.impl.SQLDataType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.node.*; import java.io.IOException; import java.sql.Timestamp; @@ -247,7 +247,7 @@ private Object jacksonToVertx(JsonNode json) { } case NullNode nullNode -> Tuple.JSON_NULL; case BooleanNode booleanNode -> booleanNode.booleanValue(); - case TextNode textNode -> textNode.textValue(); + case StringNode textNode -> textNode.stringValue(); case NumericNode numericNode -> numericNode.numberValue(); default -> json; }; @@ -265,11 +265,7 @@ protected void log(Query query) { } JsonNode readJson(String json) { - try { - return mapper.readTree(json); - } catch (IOException e) { - throw new RuntimeException("Error parsing json "+json, e); - } + return mapper.readTree(json); } static CompletionStage completedStage(T value) {