浏览代码

Refactored depricated PgPool to Pool

Lukas Cerny 1 年之前
父节点
当前提交
606f0e3488

+ 16 - 12
src/main/java/cz/senslog/telemetry/database/ConnectionPool.java

@@ -2,24 +2,28 @@ package cz.senslog.telemetry.database;
 
 import io.vertx.core.Vertx;
 import io.vertx.core.json.JsonObject;
+import io.vertx.pgclient.PgBuilder;
 import io.vertx.pgclient.PgConnectOptions;
 import io.vertx.pgclient.PgPool;
+import io.vertx.sqlclient.Pool;
 import io.vertx.sqlclient.PoolOptions;
+import io.vertx.sqlclient.SqlConnectOptions;
 
 public final class ConnectionPool {
 
-    public static PgPool createWithVertx(Vertx vertx, JsonObject config) {
+    public static Pool createWithVertx(Vertx vertx, JsonObject config) {
         JsonObject dbConfig = config.getJsonObject("db");
-        return PgPool.pool(vertx,
-                new PgConnectOptions()
-                        .setPort(dbConfig.getInteger("port"))
-                        .setHost(dbConfig.getString("host"))
-                        .setDatabase(dbConfig.getString("database"))
-                        .setUser(dbConfig.getString("user"))
-                        .setPassword(dbConfig.getString("password"))
-                ,new PoolOptions()
-                        .setMaxSize(dbConfig.getInteger("pool.size"))
-                        .setShared(true)
-        );
+
+        return PgBuilder.pool().with(new PoolOptions()
+                    .setMaxSize(dbConfig.getInteger("pool.size"))
+                    .setShared(true)
+                    .setName("maplog-db-pool"))
+                .connectingTo(new SqlConnectOptions()
+                    .setPort(dbConfig.getInteger("port"))
+                    .setHost(dbConfig.getString("host"))
+                    .setDatabase(dbConfig.getString("database"))
+                    .setUser(dbConfig.getString("user"))
+                    .setPassword(dbConfig.getString("password")))
+                .using(vertx).build();
     }
 }

+ 4 - 9
src/main/java/cz/senslog/telemetry/database/repository/MapLogRepository.java

@@ -7,10 +7,7 @@ import cz.senslog.telemetry.database.domain.*;
 import cz.senslog.telemetry.database.domain.Filter;
 import io.vertx.core.Future;
 import io.vertx.pgclient.PgPool;
-import io.vertx.sqlclient.Row;
-import io.vertx.sqlclient.RowSet;
-import io.vertx.sqlclient.SqlResult;
-import io.vertx.sqlclient.Tuple;
+import io.vertx.sqlclient.*;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -27,15 +24,13 @@ import static java.util.stream.Collectors.*;
 
 public class MapLogRepository implements SensLogRepository {
 
-    private static final Logger logger = LogManager.getLogger(MapLogRepository.class);
+    private final Pool client;
 
-    private final PgPool client;
-
-    protected MapLogRepository(PgPool client) {
+    protected MapLogRepository(Pool client) {
         this.client = client;
     }
 
-    public static MapLogRepository create(PgPool client) {
+    public static MapLogRepository create(Pool client) {
         return new MapLogRepository(client);
     }
 

+ 4 - 7
src/main/java/cz/senslog/telemetry/server/HttpVertxServer.java

@@ -9,17 +9,14 @@ import cz.senslog.telemetry.utils.ResourcesUtils;
 import io.vertx.core.AbstractVerticle;
 import io.vertx.core.Promise;
 import io.vertx.core.http.HttpMethod;
-import io.vertx.core.json.JsonArray;
 import io.vertx.core.json.JsonObject;
-import io.vertx.ext.auth.JWTOptions;
 import io.vertx.ext.auth.KeyStoreOptions;
-import io.vertx.ext.auth.PubSecKeyOptions;
 import io.vertx.ext.auth.jwt.JWTAuth;
 import io.vertx.ext.auth.jwt.JWTAuthOptions;
 import io.vertx.ext.web.Router;
 import io.vertx.ext.web.handler.*;
 import io.vertx.ext.web.openapi.RouterBuilder;
-import io.vertx.pgclient.PgPool;
+import io.vertx.sqlclient.Pool;
 import io.vertx.sqlclient.RowSet;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -36,12 +33,12 @@ public final class HttpVertxServer extends AbstractVerticle {
         Path openApiUrl = ResourcesUtils.getPath("openAPISpec.yaml");
         logger.info("Loading the OpenAPI spec from '{}'", openApiUrl);
 
-        PgPool pgPool = ConnectionPool.createWithVertx(vertx, config());
-        pgPool.query("SELECT version()").execute().map(RowSet::iterator)
+        Pool dbPool = ConnectionPool.createWithVertx(vertx, config());
+        dbPool.query("SELECT version()").execute().map(RowSet::iterator)
                 .map(it -> it.hasNext() ? it.next().getString(0) : null)
                 .onSuccess(version -> logger.info("Successful database connection to {}.", version))
                 .onFailure(startPromise::fail);
-        SensLogRepository repo = MapLogRepository.create(pgPool);
+        SensLogRepository repo = MapLogRepository.create(dbPool);
 
         RouterBuilder.create(vertx, requireNonNull(openApiUrl, "Open API Specification was not found as a resource.").toString())
                 .onSuccess(openAPIRouterBuilder -> {

+ 14 - 14
src/main/java/cz/senslog/telemetry/server/TCPVertxServer.java

@@ -8,7 +8,7 @@ import io.vertx.core.Promise;
 import io.vertx.core.json.JsonObject;
 import io.vertx.core.net.NetServer;
 import io.vertx.core.net.NetServerOptions;
-import io.vertx.pgclient.PgPool;
+import io.vertx.sqlclient.Pool;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -22,21 +22,21 @@ public final class TCPVertxServer extends AbstractVerticle {
         NetServerOptions serverOpt = new NetServerOptions().setRegisterWriteHandler(true);
         NetServer server = vertx.createNetServer(serverOpt);
 
-        PgPool pgPool = ConnectionPool.createWithVertx(vertx, config());
-        SensLogRepository repo = CachedMapLogRepository.create(pgPool);
+        Pool dbPool = ConnectionPool.createWithVertx(vertx, config());
+        SensLogRepository repo = CachedMapLogRepository.create(dbPool);
         Fm4exSocketHandler socHandler = Fm4exSocketHandler.create(repo);
         server.connectHandler(socket -> socket.handler(
-                            buffer -> socHandler.process(socket.writeHandlerID(), buffer)
-                                    .onSuccess(socket::write)
-                                    .onFailure(th -> {
-                                        logger.error(String.format("[%s] %s", socket.writeHandlerID(), th.getMessage()));
-                                        socHandler.destroySocket(socket.writeHandlerID())
-                                                .onComplete(res -> socket.close());
-                                    }))
-                    .exceptionHandler(logger::error)
-                    .closeHandler(v -> socHandler.destroySocket(socket.writeHandlerID())
-                            .onSuccess(id -> logger.info(String.format("[%s] The socket has been closed", id)))
-                            .onFailure(th -> logger.error(String.format("[%s] %s", socket.writeHandlerID(), th.getMessage()))))
+                        buffer -> socHandler.process(socket.writeHandlerID(), buffer)
+                                .onSuccess(socket::write)
+                                .onFailure(th -> {
+                                    logger.error(String.format("[%s] %s", socket.writeHandlerID(), th.getMessage()));
+                                    socHandler.destroySocket(socket.writeHandlerID())
+                                            .onComplete(res -> socket.close());
+                                }))
+                .exceptionHandler(logger::error)
+                .closeHandler(v -> socHandler.destroySocket(socket.writeHandlerID())
+                        .onSuccess(id -> logger.info(String.format("[%s] The socket has been closed", id)))
+                        .onFailure(th -> logger.error(String.format("[%s] %s", socket.writeHandlerID(), th.getMessage()))))
         );
 
         JsonObject serverConfig = config().getJsonObject("server");

+ 4 - 4
src/test/java/cz/senslog/telemetry/database/repository/MapLogRepositoryTest.java

@@ -10,7 +10,7 @@ import io.vertx.core.Vertx;
 import io.vertx.core.json.JsonObject;
 import io.vertx.junit5.VertxExtension;
 import io.vertx.junit5.VertxTestContext;
-import io.vertx.pgclient.PgPool;
+import io.vertx.sqlclient.Pool;
 import org.junit.jupiter.api.*;
 import org.junit.jupiter.api.extension.ExtendWith;
 import uk.org.webcompere.systemstubs.environment.EnvironmentVariables;
@@ -36,7 +36,7 @@ class MapLogRepositoryTest {
     @SystemStub
     private EnvironmentVariables envVariable;
 
-    private PgPool pgPool;
+    private Pool dbPool;
 
     private MapLogRepository repo;
 
@@ -47,8 +47,8 @@ class MapLogRepositoryTest {
             envVariable.set(propEntry.getKey(), propEntry.getValue());
         }
 
-        pgPool = createWithVertx(vertx, JsonObject.of("db", PropertyConfig.getInstance().db()));
-        repo = MapLogRepository.create(pgPool);
+        dbPool = createWithVertx(vertx, JsonObject.of("db", PropertyConfig.getInstance().db()));
+        repo = MapLogRepository.create(dbPool);
 
         testContext.completeNow();