From e4e93e4b7d678a60e9ffd37188bb514237d54138 Mon Sep 17 00:00:00 2001 From: Bassel Rachid Date: Fri, 7 Nov 2025 08:24:59 -0500 Subject: [PATCH] Support POOLED server mode for DRCP --- .../src/main/java/io/vertx/oracleclient/ServerMode.java | 4 ++-- .../io/vertx/oracleclient/impl/OracleDatabaseHelper.java | 2 ++ .../impl/ValidOracleConnectionUriParsingTest.java | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/ServerMode.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/ServerMode.java index d0de913e01..a299fca6aa 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/ServerMode.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/ServerMode.java @@ -19,7 +19,7 @@ @VertxGen public enum ServerMode { - DEDICATED("dedicated"), SHARED("shared"); + DEDICATED("dedicated"), SHARED("shared"), POOLED("pooled"); private final String mode; @@ -28,7 +28,7 @@ public enum ServerMode { } public static ServerMode of(String mode) { - return DEDICATED.mode.equalsIgnoreCase(mode) ? DEDICATED : SHARED.mode.equalsIgnoreCase(mode) ? SHARED : null; + return DEDICATED.mode.equalsIgnoreCase(mode) ? DEDICATED : SHARED.mode.equalsIgnoreCase(mode) ? SHARED : POOLED.mode.equalsIgnoreCase(mode) ? POOLED : null; } @Override diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleDatabaseHelper.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleDatabaseHelper.java index 516f0d7d2a..9ed12cb3ce 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleDatabaseHelper.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleDatabaseHelper.java @@ -76,6 +76,8 @@ private static String composeJdbcUrl(OracleConnectOptions options) { url.append("/").append(encodeUrl(database)); if (options.getServerMode() == ServerMode.SHARED) { url.append(":").append(ServerMode.SHARED); + } else if (options.getServerMode() == ServerMode.POOLED) { + url.append(":").append(ServerMode.POOLED); } } } diff --git a/vertx-oracle-client/src/test/java/tests/oracleclient/impl/ValidOracleConnectionUriParsingTest.java b/vertx-oracle-client/src/test/java/tests/oracleclient/impl/ValidOracleConnectionUriParsingTest.java index b93330424c..32f81e6bec 100644 --- a/vertx-oracle-client/src/test/java/tests/oracleclient/impl/ValidOracleConnectionUriParsingTest.java +++ b/vertx-oracle-client/src/test/java/tests/oracleclient/impl/ValidOracleConnectionUriParsingTest.java @@ -90,6 +90,11 @@ public static Object[][] data() { .put("serviceName", "orcl") .put("host", "::1") .put("serverMode", "dedicated")}, + {"uri with service name and server mode pooled", "oracle:thin:@[::1]/orcl:pooled", + new JsonObject() + .put("serviceName", "orcl") + .put("host", "::1") + .put("serverMode", "pooled")}, {"uri with service name with prop", "oracle:thin:@[::1]:1521/orcl?key=val", new JsonObject() .put("properties", new JsonObject().put("key", "val"))