diff --git a/.circleci/config.yml b/.circleci/config.yml index a3d0c0fd6..e079c8908 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -118,9 +118,6 @@ commands: MAVEN_OPTS: "--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED" executors: - j11: - docker: - - image: 'cimg/openjdk:11.0' j17: docker: - image: 'cimg/openjdk:17.0' @@ -419,7 +416,7 @@ jobs: - store_cache deploy: - executor: 'j11' + executor: 'j17' steps: - timeout: duration: '30m' @@ -430,7 +427,7 @@ jobs: - store_cache release: - executor: 'j11' + executor: 'j17' steps: - timeout: duration: '30m' @@ -509,7 +506,6 @@ workflows: matrix: parameters: jdk: - - 'j11' - 'j17' - 'j21' filters: diff --git a/core/src/main/java/com/arangodb/PackageVersion.java.in b/core/src/main/java/com/arangodb/PackageVersion.java.in index e801e4d89..47991a195 100644 --- a/core/src/main/java/com/arangodb/PackageVersion.java.in +++ b/core/src/main/java/com/arangodb/PackageVersion.java.in @@ -4,5 +4,15 @@ package com.arangodb; * Automatically generated from PackageVersion.java.in by replacer plugin. */ public final class PackageVersion { - public final static String VERSION = "@project.version@"; + public final static boolean SHADED = isShaded(); + public final static String VERSION = "@project.version@" + (isShaded() ? "-shaded" : ""); + + private static boolean isShaded() { + try { + Class.forName("com.arangodb.shaded.fasterxml.jackson.core.JsonFactory"); + return true; + } catch (ClassNotFoundException e) { + return false; + } + } } diff --git a/http-protocol/src/main/java/com/arangodb/http/HttpConnectionFactory.java b/http-protocol/src/main/java/com/arangodb/http/HttpConnectionFactory.java index 03719882a..edde3da19 100644 --- a/http-protocol/src/main/java/com/arangodb/http/HttpConnectionFactory.java +++ b/http-protocol/src/main/java/com/arangodb/http/HttpConnectionFactory.java @@ -20,6 +20,7 @@ package com.arangodb.http; +import com.arangodb.PackageVersion; import com.arangodb.arch.UnstableApi; import com.arangodb.config.HostDescription; import com.arangodb.internal.config.ArangoConfig; @@ -38,7 +39,7 @@ public class HttpConnectionFactory implements ConnectionFactory { public HttpConnectionFactory(@UnstableApi final HttpProtocolConfig config) { HttpProtocolConfig cfg = config != null ? config : HttpProtocolConfig.builder().build(); vertx = cfg.getVertx(); - if (vertx == null && Vertx.currentContext() != null) { + if (vertx == null && !PackageVersion.SHADED && Vertx.currentContext() != null) { LOGGER.warn("Found an existing Vert.x instance, you can reuse it by setting:\n" + "new ArangoDB.Builder()\n" + " // ...\n" + diff --git a/test-functional/src/test/java/com/arangodb/ArangoCollectionAsyncTest.java b/test-functional/src/test/java/com/arangodb/ArangoCollectionAsyncTest.java index 6ac2e6409..866dfe5e4 100644 --- a/test-functional/src/test/java/com/arangodb/ArangoCollectionAsyncTest.java +++ b/test-functional/src/test/java/com/arangodb/ArangoCollectionAsyncTest.java @@ -3202,7 +3202,7 @@ void updateDocumentsJson(ArangoCollectionAsync collection) throws ExecutionExcep @MethodSource("asyncCols") void updateDocumentsRawData(ArangoCollectionAsync collection) throws ExecutionException, InterruptedException { final RawData values = RawJson.of("[{\"_key\":\"1\"}, {\"_key\":\"2\"}]"); - collection.insertDocuments(values); + collection.insertDocuments(values).get(); final RawData updatedValues = RawJson.of("[{\"_key\":\"1\", \"foo\":\"bar\"}, {\"_key\":\"2\", " + "\"foo\":\"bar\"}]"); diff --git a/test-functional/src/test/java/com/arangodb/UserAgentAsyncTest.java b/test-functional/src/test/java/com/arangodb/UserAgentAsyncTest.java index 57e10ebe4..a1059b86c 100644 --- a/test-functional/src/test/java/com/arangodb/UserAgentAsyncTest.java +++ b/test-functional/src/test/java/com/arangodb/UserAgentAsyncTest.java @@ -11,14 +11,6 @@ import static org.junit.jupiter.api.Assumptions.assumeTrue; class UserAgentAsyncTest extends BaseJunit5 { - - private static final String EXPECTED_VERSION = "7.9.0-SNAPSHOT"; - - @Test - void packageVersion() { - assertThat(PackageVersion.VERSION).isEqualTo(EXPECTED_VERSION); - } - @ParameterizedTest @EnumSource(Protocol.class) void userAgentHeader(Protocol protocol) throws ExecutionException, InterruptedException { diff --git a/test-functional/src/test/java/com/arangodb/UserAgentTest.java b/test-functional/src/test/java/com/arangodb/UserAgentTest.java index 48bcdbfd5..3c1848a3a 100644 --- a/test-functional/src/test/java/com/arangodb/UserAgentTest.java +++ b/test-functional/src/test/java/com/arangodb/UserAgentTest.java @@ -12,9 +12,16 @@ class UserAgentTest extends BaseJunit5 { private static final String EXPECTED_VERSION = "7.9.0-SNAPSHOT"; + private static final boolean SHADED = Boolean.parseBoolean(System.getProperty("shaded")); + @Test void packageVersion() { - assertThat(PackageVersion.VERSION).isEqualTo(EXPECTED_VERSION); + assertThat(PackageVersion.VERSION).isEqualTo(EXPECTED_VERSION + (SHADED ? "-shaded" : "")); + } + + @Test + void packageVersionIsShaded() { + assertThat(PackageVersion.SHADED).isEqualTo(SHADED); } @ParameterizedTest diff --git a/test-parent/pom.xml b/test-parent/pom.xml index d267d4357..1ffb7e910 100644 --- a/test-parent/pom.xml +++ b/test-parent/pom.xml @@ -18,9 +18,17 @@ 2.17.2 true true + 17 + 17 + + + com.arangodb + jackson-serde-vpack + compile + org.slf4j slf4j-simple @@ -103,6 +111,7 @@ true + ${shaded} **/*Test.java @@ -132,6 +141,7 @@ src/test/java + false @@ -139,11 +149,6 @@ arangodb-java-driver compile - - com.arangodb - jackson-serde-vpack - compile - com.arangodb vst-protocol @@ -162,6 +167,7 @@ ${project.build.directory}/generated-test-sources/replacer + true @@ -174,11 +180,6 @@ jackson-serde-json compile - - com.arangodb - jackson-serde-vpack - compile - diff --git a/test-resilience/src/test/java/resilience/vertx/VertxTest.java b/test-resilience/src/test/java/resilience/vertx/VertxTest.java index 7ffce384e..5e3342b09 100644 --- a/test-resilience/src/test/java/resilience/vertx/VertxTest.java +++ b/test-resilience/src/test/java/resilience/vertx/VertxTest.java @@ -3,6 +3,7 @@ import ch.qos.logback.classic.Level; import ch.qos.logback.classic.spi.ILoggingEvent; import com.arangodb.ArangoDB; +import com.arangodb.PackageVersion; import com.arangodb.http.HttpConnection; import com.arangodb.http.HttpProtocolConfig; import io.vertx.core.Vertx; @@ -93,14 +94,16 @@ void existingVertxNotUsed() throws ExecutionException, InterruptedException { }).toCompletionStage().toCompletableFuture().get(); vertx.close(); - assertThat(logs.getLogs()) - .filteredOn(it -> it.getLoggerName().equals("com.arangodb.http.HttpConnectionFactory")) - .filteredOn(it -> it.getLevel().equals(Level.WARN)) - .map(ILoggingEvent::getFormattedMessage) - .anySatisfy(it -> assertThat(it) - .contains("Found an existing Vert.x instance, you can reuse it by setting:") - .contains(".protocolConfig(HttpProtocolConfig.builder().vertx(Vertx.currentContext().owner()).build())") - ); + if (!PackageVersion.SHADED) { + assertThat(logs.getLogs()) + .filteredOn(it -> it.getLoggerName().equals("com.arangodb.http.HttpConnectionFactory")) + .filteredOn(it -> it.getLevel().equals(Level.WARN)) + .map(ILoggingEvent::getFormattedMessage) + .anySatisfy(it -> assertThat(it) + .contains("Found an existing Vert.x instance, you can reuse it by setting:") + .contains(".protocolConfig(HttpProtocolConfig.builder().vertx(Vertx.currentContext().owner()).build())") + ); + } assertThat(logs.getLogs()) .filteredOn(it -> it.getLoggerName().equals("com.arangodb.http.HttpConnection")) .filteredOn(it -> it.getLevel().equals(Level.DEBUG))