From a4f20fa8a0150a5c984c745ba89d70202b6142f8 Mon Sep 17 00:00:00 2001 From: castlighting Date: Sat, 1 Mar 2025 21:19:50 +0800 Subject: [PATCH 1/2] feat: define writeByGrpc interface --- .../client/api/OpenGeminiAsyncClient.java | 8 ++++++++ .../client/common/BaseAsyncClient.java | 16 ++++++++++++++++ .../opengemini/client/impl/OpenGeminiClient.java | 13 +++++++++++++ 3 files changed, 37 insertions(+) diff --git a/opengemini-client-api/src/main/java/io/opengemini/client/api/OpenGeminiAsyncClient.java b/opengemini-client-api/src/main/java/io/opengemini/client/api/OpenGeminiAsyncClient.java index cd87ecff..b1723698 100644 --- a/opengemini-client-api/src/main/java/io/opengemini/client/api/OpenGeminiAsyncClient.java +++ b/opengemini-client-api/src/main/java/io/opengemini/client/api/OpenGeminiAsyncClient.java @@ -108,6 +108,14 @@ public interface OpenGeminiAsyncClient extends AutoCloseable { */ CompletableFuture write(String database, String retentionPolicy, List points); + /** + * Writing via GRPC points to the database. + * + * @param database the name of the database. + * @param points the points to write. + */ + CompletableFuture writeByGrpc(String database, List points); + /** * Ping the OpenGemini server */ diff --git a/opengemini-client-common/src/main/java/io/opengemini/client/common/BaseAsyncClient.java b/opengemini-client-common/src/main/java/io/opengemini/client/common/BaseAsyncClient.java index 60cf32a4..c7759fec 100644 --- a/opengemini-client-common/src/main/java/io/opengemini/client/common/BaseAsyncClient.java +++ b/opengemini-client-common/src/main/java/io/opengemini/client/common/BaseAsyncClient.java @@ -154,6 +154,14 @@ public CompletableFuture write(String database, String retentionPolicy, Li return executeWrite(database, retentionPolicy, body); } + @Override + public CompletableFuture writeByGrpc(String database, List points) { + if (points.isEmpty()) { + return CompletableFuture.completedFuture(null); + } + return executeWriteByGrpc(database, points); + } + /** * {@inheritDoc} */ @@ -187,6 +195,14 @@ protected abstract CompletableFuture executeWrite(String database, String retentionPolicy, String lineProtocol); + /** + * The implementation class needs to implement this method to execute a write operation via an RPC call. + * + * @param database the name of the database. + * @param points the points to write. + */ + protected abstract CompletableFuture executeWriteByGrpc(String database, + List points); /** * The implementation class needs to implement this method to execute a ping call. */ diff --git a/opengemini-client/src/main/java/io/opengemini/client/impl/OpenGeminiClient.java b/opengemini-client/src/main/java/io/opengemini/client/impl/OpenGeminiClient.java index 1957257c..f72b1292 100644 --- a/opengemini-client/src/main/java/io/opengemini/client/impl/OpenGeminiClient.java +++ b/opengemini-client/src/main/java/io/opengemini/client/impl/OpenGeminiClient.java @@ -26,6 +26,7 @@ import io.opengemini.client.api.Configuration; import io.opengemini.client.api.OpenGeminiException; import io.opengemini.client.api.Pong; +import io.opengemini.client.api.Point; import io.opengemini.client.api.Query; import io.opengemini.client.api.QueryResult; import io.opengemini.client.common.BaseAsyncClient; @@ -35,6 +36,7 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -130,6 +132,17 @@ public CompletableFuture post(String url, String body) { headers); } + /** + * Execute a write call with java GRPC Client. + * + * @param database the name of the database. + * @param points the points to write. + */ + @Override + protected CompletableFuture executeWriteByGrpc(String database, List points) { + return null; + } + @Override public void close() throws IOException { this.client.close(); From 21b58986be4c7752e475154506ab3a3851309a2c Mon Sep 17 00:00:00 2001 From: castlighting Date: Sat, 1 Mar 2025 21:19:50 +0800 Subject: [PATCH 2/2] feat: define writeByGrpc interface Signed-off-by: castlighting --- .../client/api/OpenGeminiAsyncClient.java | 8 ++++++++ .../client/common/BaseAsyncClient.java | 16 ++++++++++++++++ .../opengemini/client/impl/OpenGeminiClient.java | 13 +++++++++++++ 3 files changed, 37 insertions(+) diff --git a/opengemini-client-api/src/main/java/io/opengemini/client/api/OpenGeminiAsyncClient.java b/opengemini-client-api/src/main/java/io/opengemini/client/api/OpenGeminiAsyncClient.java index cd87ecff..b1723698 100644 --- a/opengemini-client-api/src/main/java/io/opengemini/client/api/OpenGeminiAsyncClient.java +++ b/opengemini-client-api/src/main/java/io/opengemini/client/api/OpenGeminiAsyncClient.java @@ -108,6 +108,14 @@ public interface OpenGeminiAsyncClient extends AutoCloseable { */ CompletableFuture write(String database, String retentionPolicy, List points); + /** + * Writing via GRPC points to the database. + * + * @param database the name of the database. + * @param points the points to write. + */ + CompletableFuture writeByGrpc(String database, List points); + /** * Ping the OpenGemini server */ diff --git a/opengemini-client-common/src/main/java/io/opengemini/client/common/BaseAsyncClient.java b/opengemini-client-common/src/main/java/io/opengemini/client/common/BaseAsyncClient.java index 60cf32a4..c7759fec 100644 --- a/opengemini-client-common/src/main/java/io/opengemini/client/common/BaseAsyncClient.java +++ b/opengemini-client-common/src/main/java/io/opengemini/client/common/BaseAsyncClient.java @@ -154,6 +154,14 @@ public CompletableFuture write(String database, String retentionPolicy, Li return executeWrite(database, retentionPolicy, body); } + @Override + public CompletableFuture writeByGrpc(String database, List points) { + if (points.isEmpty()) { + return CompletableFuture.completedFuture(null); + } + return executeWriteByGrpc(database, points); + } + /** * {@inheritDoc} */ @@ -187,6 +195,14 @@ protected abstract CompletableFuture executeWrite(String database, String retentionPolicy, String lineProtocol); + /** + * The implementation class needs to implement this method to execute a write operation via an RPC call. + * + * @param database the name of the database. + * @param points the points to write. + */ + protected abstract CompletableFuture executeWriteByGrpc(String database, + List points); /** * The implementation class needs to implement this method to execute a ping call. */ diff --git a/opengemini-client/src/main/java/io/opengemini/client/impl/OpenGeminiClient.java b/opengemini-client/src/main/java/io/opengemini/client/impl/OpenGeminiClient.java index 1957257c..f72b1292 100644 --- a/opengemini-client/src/main/java/io/opengemini/client/impl/OpenGeminiClient.java +++ b/opengemini-client/src/main/java/io/opengemini/client/impl/OpenGeminiClient.java @@ -26,6 +26,7 @@ import io.opengemini.client.api.Configuration; import io.opengemini.client.api.OpenGeminiException; import io.opengemini.client.api.Pong; +import io.opengemini.client.api.Point; import io.opengemini.client.api.Query; import io.opengemini.client.api.QueryResult; import io.opengemini.client.common.BaseAsyncClient; @@ -35,6 +36,7 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -130,6 +132,17 @@ public CompletableFuture post(String url, String body) { headers); } + /** + * Execute a write call with java GRPC Client. + * + * @param database the name of the database. + * @param points the points to write. + */ + @Override + protected CompletableFuture executeWriteByGrpc(String database, List points) { + return null; + } + @Override public void close() throws IOException { this.client.close();