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();
