This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch use-new-file
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit e46eaabbb6925e4e8cc2f0fc872b2b857e24796a
Author: Wu Sheng <[email protected]>
AuthorDate: Mon Jan 13 16:16:24 2025 +0800

    Make bydb depdendencies file checked and consistent.
---
 docs/en/setup/backend/storages/banyandb.md               |  1 +
 .../src/main/resources/bydb.dependencies.properties      |  3 ++-
 .../storage/plugin/banyandb/BanyanDBStorageClient.java   | 16 ++++++++++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/docs/en/setup/backend/storages/banyandb.md 
b/docs/en/setup/backend/storages/banyandb.md
index 5019604dc0..ec5f89e744 100644
--- a/docs/en/setup/backend/storages/banyandb.md
+++ b/docs/en/setup/backend/storages/banyandb.md
@@ -10,6 +10,7 @@ bydb.version=x.y
 # BanyanDB API version is the version number of the BanyanDB query APIs
 # OAP server has bundled implementation of BanyanDB Java client.
 # Please check BanyanDB documentation for the API version compatibility.
+# 
https://skywalking.apache.org/docs/skywalking-banyandb/next/installation/versions
 # Each `bydb.api.version` could have multiple compatible release 
version(`bydb.version`).
 bydb.api.version=x.y
 ```
diff --git 
a/oap-server/server-starter/src/main/resources/bydb.dependencies.properties 
b/oap-server/server-starter/src/main/resources/bydb.dependencies.properties
index 78b00cd001..0dace5815f 100644
--- a/oap-server/server-starter/src/main/resources/bydb.dependencies.properties
+++ b/oap-server/server-starter/src/main/resources/bydb.dependencies.properties
@@ -19,5 +19,6 @@ bydb.version=0.8
 # BanyanDB API version is the version number of the BanyanDB query APIs
 # OAP server has bundled implementation of BanyanDB Java client.
 # Please check BanyanDB documentation for the API version compatibility.
+# 
https://skywalking.apache.org/docs/skywalking-banyandb/next/installation/versions
 # Each `bydb.api.version` could have multiple compatible release 
version(`bydb.version`).
-bydb.api.version=0.8
\ No newline at end of file
+bydb.api.version=0.7
\ No newline at end of file
diff --git 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
index e324a5e231..9b15707ea5 100644
--- 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
+++ 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
@@ -21,9 +21,11 @@ package 
org.apache.skywalking.oap.server.storage.plugin.banyandb;
 import io.grpc.Status;
 import io.grpc.StatusRuntimeException;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Properties;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.skywalking.banyandb.common.v1.BanyandbCommon;
 import org.apache.skywalking.banyandb.common.v1.BanyandbCommon.Group;
@@ -75,6 +77,20 @@ public class BanyanDBStorageClient implements Client, 
HealthCheckable {
     @Override
     public void connect() throws Exception {
         this.client.connect();
+        final Properties properties = new Properties();
+        final InputStream resourceAsStream = 
BanyanDBStorageClient.class.getClassLoader()
+                                                                        
.getResourceAsStream(
+                                                                            
"bydb.dependencies.properties");
+        if (resourceAsStream == null) {
+            throw new IllegalStateException("bydb.dependencies.properties not 
found");
+        }
+        properties.load(resourceAsStream);
+        final String expectedApiVersion = 
properties.getProperty("bydb.api.version");
+        if (!Arrays.stream(COMPATIBLE_SERVER_API_VERSIONS).anyMatch(v -> 
v.equals(expectedApiVersion))) {
+            throw new IllegalStateException("Inconsistent versions between 
bydb.dependencies.properties and codes(" +
+                                                String.join(", ", 
COMPATIBLE_SERVER_API_VERSIONS) + ").");
+        }
+
         BanyandbCommon.APIVersion apiVersion;
         try {
             apiVersion = this.client.getAPIVersion();

Reply via email to