You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ha...@apache.org on 2025/01/03 23:31:21 UTC
(skywalking-banyandb-java-client) 01/01: Bump up the API to support the new property
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch property
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
commit 9b4074009eb7bc2781746583c7efc0ce2a02dbbe
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Sat Jan 4 07:29:50 2025 +0800
Bump up the API to support the new property
Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
CHANGES.md | 1 +
README.md | 17 ---
.../banyandb/v1/client/BanyanDBClient.java | 62 ++-------
.../banyandb/v1/client/PropertyStore.java | 66 ++++++++++
.../banyandb/v1/client/metadata/PropertyStore.java | 139 ---------------------
src/main/proto/banyandb/v1/banyandb-common.proto | 5 +-
src/main/proto/banyandb/v1/banyandb-property.proto | 80 ++++++------
.../banyandb/v1/client/BanyanDBClientTestCI.java | 6 +-
.../v1/client/ITBanyanDBPropertyTests.java | 76 +++++++----
9 files changed, 168 insertions(+), 284 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index fc5f912..eb27d36 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -7,6 +7,7 @@ Release Notes.
### Features
* Bump up the API to support the index mode of Measure.
+* Bump up the API to support the new property.
0.7.0
------------------
diff --git a/README.md b/README.md
index 0e3aa85..56cdf10 100644
--- a/README.md
+++ b/README.md
@@ -496,23 +496,6 @@ Property property = Property.create("default", "sw", "ui_template")
this.client.apply(property); //created:false tagsNum:1
```
-The property supports setting TTL.
-
-```java
-Property property = Property.create("default", "sw", "temp_date")
- .addTag(TagAndValue.newStringTag("state", "failed"))
- .ttl("30m")
- .build();
-this.client.apply(property); //created:false tagsNum:1 lease_id:1
-```
-The property's TTL can be extended by calling `Client.keepAliveProperty`,
-
-```java
-this.client.keepAliveProperty(1); //lease_id:1
-```
-
-The property's live time is reset to 30 minutes.
-
### Query
Property can be queried via `Client.findProperty`,
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
index 38fd65b..bf52a73 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
@@ -60,7 +60,6 @@ import org.apache.skywalking.banyandb.v1.client.metadata.IndexRuleBindingMetadat
import org.apache.skywalking.banyandb.v1.client.metadata.IndexRuleMetadataRegistry;
import org.apache.skywalking.banyandb.v1.client.metadata.MeasureMetadataRegistry;
import org.apache.skywalking.banyandb.v1.client.metadata.MetadataCache;
-import org.apache.skywalking.banyandb.v1.client.metadata.PropertyStore;
import org.apache.skywalking.banyandb.v1.client.metadata.ResourceExist;
import org.apache.skywalking.banyandb.v1.client.metadata.StreamMetadataRegistry;
import org.apache.skywalking.banyandb.v1.client.metadata.TopNAggregationMetadataRegistry;
@@ -830,50 +829,14 @@ public class BanyanDBClient implements Closeable {
}
/**
- * Find property
+ * Query properties
*
- * @param group group of the metadata
- * @param name name of the metadata
- * @param id identity of the property
- * @param tags tags to be returned
- * @return property if it can be found
- */
- public Property findProperty(String group, String name, String id, String... tags) throws BanyanDBException {
- PropertyStore store = new PropertyStore(checkNotNull(this.channel));
- try {
- return store.get(group, name, id, tags);
- } catch (BanyanDBException ex) {
- if (ex.getStatus().equals(Status.Code.NOT_FOUND)) {
- return null;
- }
- throw ex;
- }
- }
-
- /**
- * List Properties
- *
- * @param group group of the metadata
- * @param name name of the metadata
- * @return all properties belonging to the group and the name
- */
- public List<Property> findProperties(String group, String name) throws BanyanDBException {
- return findProperties(group, name, null, null);
-
- }
-
- /**
- * List Properties
- *
- * @param group group of the metadata
- * @param name name of the metadata
- * @param ids identities of the properties
- * @param tags tags to be returned
- * @return all properties belonging to the group and the name
+ * @param request query request
+ * @return query response
*/
- public List<Property> findProperties(String group, String name, List<String> ids, List<String> tags) throws BanyanDBException {
+ public BanyandbProperty.QueryResponse query(BanyandbProperty.QueryRequest request) throws BanyanDBException {
PropertyStore store = new PropertyStore(checkNotNull(this.channel));
- return store.list(group, name, ids, tags);
+ return store.query(request);
}
/**
@@ -882,23 +845,12 @@ public class BanyanDBClient implements Closeable {
* @param group group of the metadata
* @param name name of the metadata
* @param id identity of the property
- * @param tags tags to be deleted. If null, the property is deleted
* @return if this property has been deleted
*/
- public DeleteResponse deleteProperty(String group, String name, String id, String... tags) throws
+ public DeleteResponse deleteProperty(String group, String name, String id) throws
BanyanDBException {
PropertyStore store = new PropertyStore(checkNotNull(this.channel));
- return store.delete(group, name, id, tags);
- }
-
- /**
- * Keep alive the property
- *
- * @param leaseId lease id of the property
- */
- public void keepAliveProperty(long leaseId) throws BanyanDBException {
- PropertyStore store = new PropertyStore(checkNotNull(this.channel));
- store.keepAlive(leaseId);
+ return store.delete(group, name, id);
}
/**
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/PropertyStore.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/PropertyStore.java
new file mode 100644
index 0000000..8e2fbe3
--- /dev/null
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/PropertyStore.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.banyandb.v1.client;
+
+import io.grpc.Channel;
+import org.apache.skywalking.banyandb.property.v1.BanyandbProperty;
+import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.ApplyRequest;
+import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.ApplyRequest.Strategy;
+import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.ApplyResponse;
+import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.DeleteResponse;
+import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.Property;
+import org.apache.skywalking.banyandb.property.v1.PropertyServiceGrpc;
+import org.apache.skywalking.banyandb.v1.client.grpc.HandleExceptionsWith;
+import org.apache.skywalking.banyandb.v1.client.grpc.exception.BanyanDBException;
+
+public class PropertyStore {
+ private final PropertyServiceGrpc.PropertyServiceBlockingStub stub;
+
+ public PropertyStore(Channel channel) {
+ this.stub = PropertyServiceGrpc.newBlockingStub(channel);
+ }
+
+ public ApplyResponse apply(Property payload) throws BanyanDBException {
+ return apply(payload, Strategy.STRATEGY_MERGE);
+ }
+
+ public ApplyResponse apply(Property payload, Strategy strategy) throws BanyanDBException {
+ BanyandbProperty.ApplyRequest.Strategy s = BanyandbProperty.ApplyRequest.Strategy.STRATEGY_MERGE;
+ ApplyRequest r = BanyandbProperty.ApplyRequest.newBuilder()
+ .setProperty(payload)
+ .setStrategy(strategy)
+ .build();
+ return HandleExceptionsWith.callAndTranslateApiException(() ->
+ this.stub.apply(r));
+ }
+
+ public DeleteResponse delete(String group, String name, String id) throws BanyanDBException {
+ return HandleExceptionsWith.callAndTranslateApiException(() ->
+ this.stub.delete(BanyandbProperty.DeleteRequest.newBuilder()
+ .setGroup(group)
+ .setContainer(name)
+ .setId(id)
+ .build()));
+ }
+
+ public BanyandbProperty.QueryResponse query(BanyandbProperty.QueryRequest req) throws BanyanDBException {
+ return HandleExceptionsWith.callAndTranslateApiException(() ->
+ this.stub.query(req));
+ }
+}
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/PropertyStore.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/PropertyStore.java
deleted file mode 100644
index a5ea6e6..0000000
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/PropertyStore.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.banyandb.v1.client.metadata;
-
-import io.grpc.Channel;
-import org.apache.skywalking.banyandb.common.v1.BanyandbCommon;
-import org.apache.skywalking.banyandb.property.v1.BanyandbProperty;
-import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.Property;
-import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.ApplyRequest;
-import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.ApplyRequest.Strategy;
-import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.ApplyResponse;
-import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.DeleteRequest;
-import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.DeleteResponse;
-import org.apache.skywalking.banyandb.property.v1.PropertyServiceGrpc;
-import org.apache.skywalking.banyandb.v1.client.grpc.HandleExceptionsWith;
-import org.apache.skywalking.banyandb.v1.client.grpc.exception.BanyanDBException;
-
-import java.util.Arrays;
-import java.util.List;
-
-public class PropertyStore {
- private final PropertyServiceGrpc.PropertyServiceBlockingStub stub;
-
- public PropertyStore(Channel channel) {
- this.stub = PropertyServiceGrpc.newBlockingStub(channel);
- }
-
- public ApplyResponse apply(Property payload) throws BanyanDBException {
- return apply(payload, Strategy.STRATEGY_MERGE);
- }
-
- public ApplyResponse apply(Property payload, Strategy strategy) throws BanyanDBException {
- BanyandbProperty.ApplyRequest.Strategy s = BanyandbProperty.ApplyRequest.Strategy.STRATEGY_MERGE;
- ApplyRequest r = BanyandbProperty.ApplyRequest.newBuilder()
- .setProperty(payload)
- .setStrategy(strategy)
- .build();
- return HandleExceptionsWith.callAndTranslateApiException(() ->
- this.stub.apply(r));
- }
-
- public DeleteResponse delete(String group, String name, String id, String... tags) throws BanyanDBException {
- DeleteRequest.Builder b = DeleteRequest.newBuilder();
- if (tags != null && tags.length > 0) {
- b.addAllTags(Arrays.asList(tags));
- }
- return HandleExceptionsWith.callAndTranslateApiException(() ->
- this.stub.delete(b.setMetadata(BanyandbProperty.Metadata
- .newBuilder()
- .setContainer(BanyandbCommon.Metadata.newBuilder()
- .setGroup(group)
- .setName(name)
- .build())
- .setId(id)
- .build())
- .build()));
- }
-
- public Property get(String group, String name, String id, String... tags) throws BanyanDBException {
- BanyandbProperty.GetRequest.Builder b = BanyandbProperty.GetRequest.newBuilder();
- if (tags != null && tags.length > 0) {
- b.addAllTags(Arrays.asList(tags));
- }
- BanyandbProperty.GetResponse resp = HandleExceptionsWith.callAndTranslateApiException(() ->
- this.stub.get(b.setMetadata(BanyandbProperty.Metadata
- .newBuilder()
- .setContainer(BanyandbCommon.Metadata.newBuilder()
- .setGroup(group)
- .setName(name)
- .build())
- .setId(id)
- .build())
- .build()));
-
- return resp.getProperty();
- }
-
- public List<Property> list(String group, String name, List<String> ids, List<String> tags) throws BanyanDBException {
- BanyandbProperty.ListRequest.Builder builder = BanyandbProperty.ListRequest.newBuilder()
- .setContainer(BanyandbCommon.Metadata.newBuilder()
- .setGroup(group)
- .setName(name)
- .build());
- if (ids != null && ids.size() > 0) {
- builder.addAllIds(ids);
- }
- if (tags != null && tags.size() > 0) {
- builder.addAllTags(tags);
- }
- BanyandbProperty.ListResponse resp = HandleExceptionsWith.callAndTranslateApiException(() ->
- this.stub.list(builder.build()));
-
- return resp.getPropertyList();
- }
-
- public void keepAlive(long leaseId) throws BanyanDBException {
- BanyandbProperty.KeepAliveRequest req = BanyandbProperty.KeepAliveRequest.newBuilder()
- .setLeaseId(leaseId)
- .build();
- HandleExceptionsWith.callAndTranslateApiException(() ->
- this.stub.keepAlive(req));
- }
-
-// public enum Strategy {
-// MERGE, REPLACE
-// }
-//
-// @AutoValue
-// public abstract static class ApplyResult {
-// public abstract boolean created();
-//
-// public abstract int tagsNum();
-//
-// public abstract long leaseId();
-// }
-//
-// @AutoValue
-// public abstract static class DeleteResult {
-// public abstract boolean deleted();
-//
-// public abstract int tagsNum();
-// }
-}
diff --git a/src/main/proto/banyandb/v1/banyandb-common.proto b/src/main/proto/banyandb/v1/banyandb-common.proto
index 3e0ac35..67e64ba 100644
--- a/src/main/proto/banyandb/v1/banyandb-common.proto
+++ b/src/main/proto/banyandb/v1/banyandb-common.proto
@@ -28,6 +28,7 @@ enum Catalog {
CATALOG_UNSPECIFIED = 0;
CATALOG_STREAM = 1;
CATALOG_MEASURE = 2;
+ CATALOG_PROPERTY = 3;
}
// Metadata is for multi-tenant, multi-model use
@@ -61,9 +62,9 @@ message ResourceOpts {
// shard_num is the number of shards
uint32 shard_num = 1 [(validate.rules).uint32.gt = 0];
// segment_interval indicates the length of a segment
- IntervalRule segment_interval = 2 [(validate.rules).message.required = true];
+ IntervalRule segment_interval = 2;
// ttl indicates time to live, how long the data will be cached
- IntervalRule ttl = 3 [(validate.rules).message.required = true];
+ IntervalRule ttl = 3;
}
// Group is an internal object for Group management
diff --git a/src/main/proto/banyandb/v1/banyandb-property.proto b/src/main/proto/banyandb/v1/banyandb-property.proto
index 73299a0..357a82c 100644
--- a/src/main/proto/banyandb/v1/banyandb-property.proto
+++ b/src/main/proto/banyandb/v1/banyandb-property.proto
@@ -29,35 +29,27 @@ import "banyandb/v1/banyandb-model.proto";
// Metadata is for multi-tenant use
message Metadata {
// container is created when it receives the first property
- common.v1.Metadata container = 1;
+ common.v1.Metadata container = 1 [(validate.rules).message.required = true];
// id identifies a property
- string id = 2;
+ string id = 2 [(validate.rules).string.min_len = 1];
}
-
// Property stores the user defined data
message Property {
// metadata is the identity of a property
- Metadata metadata = 1;
+ Metadata metadata = 1 [(validate.rules).message.required = true];
// tag stores the content of a property
- repeated model.v1.Tag tags = 2;
+ repeated model.v1.Tag tags = 2 [(validate.rules).repeated.min_items = 1];
// updated_at indicates when the property is updated
google.protobuf.Timestamp updated_at = 3;
- // readonly. lease_id is the ID of the lease that attached to key.
- int64 lease_id = 4;
- // ttl indicates the time to live of the property.
- // It's a string in the format of "1h", "2m", "3s", "1500ms".
- // It defaults to 0s, which means the property never expires.
- // The minimum allowed ttl is 1s.
- string ttl = 5;
}
message ApplyRequest {
banyandb.property.v1.Property property = 1 [(validate.rules).message.required = true];
enum Strategy {
- STRATEGY_UNSPECIFIED=0;
- STRATEGY_MERGE=1;
- STRATEGY_REPLACE=2;
+ STRATEGY_UNSPECIFIED = 0;
+ STRATEGY_MERGE = 1;
+ STRATEGY_REPLACE = 2;
}
// strategy indicates how to update a property. It defaults to STRATEGY_MERGE
Strategy strategy = 2;
@@ -68,49 +60,51 @@ message ApplyResponse {
// True: the property is absent. False: the property existed.
bool created = 1;
uint32 tags_num = 2;
- int64 lease_id = 3;
}
message DeleteRequest {
- banyandb.property.v1.Metadata metadata = 1 [(validate.rules).message.required = true];
- repeated string tags = 2;
+ // groups indicate where the data points are stored.
+ string group = 1 [(validate.rules).string.min_len = 1];
+ // container is created when it receives the first property
+ string container = 2 [(validate.rules).string.min_len = 1];
+ // id is the identity of properties
+ string id = 3;
}
message DeleteResponse {
bool deleted = 1;
- uint32 tags_num = 2;
-}
-
-message GetRequest {
- banyandb.property.v1.Metadata metadata = 1 [(validate.rules).message.required = true];
- repeated string tags = 2;
-}
-
-message GetResponse {
- banyandb.property.v1.Property property = 1;
}
-message ListRequest {
- banyandb.common.v1.Metadata container = 1 [(validate.rules).message.required = true];
- repeated string ids = 2;
- repeated string tags = 3;
-}
-
-message ListResponse {
- repeated banyandb.property.v1.Property property = 1;
+// QueryRequest is the request contract for query.
+message QueryRequest {
+ // groups indicate where the data points are stored.
+ repeated string groups = 1 [(validate.rules).repeated.min_items = 1];
+ // container is created when it receives the first property
+ string container = 2;
+ // ids is the identities of properties
+ repeated string ids = 3;
+ // criteria is used to filter properties based on tags
+ model.v1.Criteria criteria = 4;
+ // tag_projection can be used to select tags of the data points in the response
+ repeated string tag_projection = 5;
+ uint32 limit = 6;
+ // trace is used to enable trace for the query
+ bool trace = 7;
}
-message KeepAliveRequest {
- int64 lease_id = 1;
+// QueryResponse is the response for a query to the Query module.
+message QueryResponse {
+ // properties are the actual data returned
+ repeated banyandb.property.v1.Property properties = 1;
+ // trace contains the trace information of the query when trace is enabled
+ common.v1.Trace trace = 2;
}
-message KeepAliveResponse {}
-
service PropertyService {
// Apply creates a property if it's absent, or update a existed one based on a strategy.
rpc Apply(ApplyRequest) returns (ApplyResponse);
+
rpc Delete(DeleteRequest) returns (DeleteResponse);
- rpc Get(GetRequest) returns (GetResponse);
- rpc List(ListRequest) returns (ListResponse);
- rpc KeepAlive(KeepAliveRequest) returns (KeepAliveResponse);
+
+ rpc Query(QueryRequest) returns (QueryResponse);
}
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
index 6c2d23b..49978ab 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
@@ -29,9 +29,9 @@ import java.io.IOException;
@Slf4j
public class BanyanDBClientTestCI {
- private static final String REGISTRY = "ghcr.io";
- private static final String IMAGE_NAME = "apache/skywalking-banyandb";
- private static final String TAG = "079483262016e8b2ac58c3f115f974d8ad7e9d2e";
+ private static final String REGISTRY = "docker.io";
+ private static final String IMAGE_NAME = "hanahmily/skywalking-banyandb";
+ private static final String TAG = "bc4fcbd";
private static final String IMAGE = REGISTRY + "/" + IMAGE_NAME + ":" + TAG;
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBPropertyTests.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBPropertyTests.java
index 44e4d15..828284a 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBPropertyTests.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBPropertyTests.java
@@ -28,8 +28,6 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.skywalking.banyandb.common.v1.BanyandbCommon;
import org.apache.skywalking.banyandb.common.v1.BanyandbCommon.Group;
@@ -43,7 +41,12 @@ public class ITBanyanDBPropertyTests extends BanyanDBClientTestCI {
public void setUp() throws IOException, BanyanDBException, InterruptedException {
super.setUpConnection();
Group expectedGroup =
- Group.newBuilder().setMetadata(Metadata.newBuilder().setName("default")).setCatalog(BanyandbCommon.Catalog.CATALOG_UNSPECIFIED).build();
+ Group.newBuilder().setMetadata(Metadata.newBuilder()
+ .setName("default"))
+ .setCatalog(BanyandbCommon.Catalog.CATALOG_PROPERTY)
+ .setResourceOpts(BanyandbCommon.ResourceOpts.newBuilder()
+ .setShardNum(2))
+ .build();
client.define(expectedGroup);
Assert.assertNotNull(expectedGroup);
}
@@ -61,7 +64,13 @@ public class ITBanyanDBPropertyTests extends BanyanDBClientTestCI {
Assert.assertTrue(this.client.apply(property).getCreated());
await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
- Property gotProperty = client.findProperty("default", "sw", "ui_template");
+ BanyandbProperty.QueryResponse resp = client.query(BanyandbProperty.QueryRequest.newBuilder()
+ .addGroups("default")
+ .setContainer("sw")
+ .addIds("ui_template")
+ .build());
+ Assert.assertEquals(1, resp.getPropertiesCount());
+ Property gotProperty = resp.getProperties(0);
Assert.assertNotNull(gotProperty);
Assert.assertEquals(property.getTagsList(), gotProperty.getTagsList());
});
@@ -75,13 +84,24 @@ public class ITBanyanDBPropertyTests extends BanyanDBClientTestCI {
Assert.assertTrue(this.client.apply(property).getCreated());
await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
- Property gotProperty = client.findProperty("default", "sw", "ui_template");
+ BanyandbProperty.QueryResponse resp = client.query(BanyandbProperty.QueryRequest.newBuilder()
+ .addGroups("default")
+ .setContainer("sw")
+ .addIds("ui_template")
+ .build());
+ Assert.assertEquals(1, resp.getPropertiesCount());
+ Property gotProperty = resp.getProperties(0);
Assert.assertNotNull(gotProperty);
Assert.assertEquals(property.getTagsList(), gotProperty.getTagsList());
});
Assert.assertTrue(this.client.deleteProperty("default", "sw", "ui_template").getDeleted());
- Assert.assertNull(client.findProperty("default", "sw", "ui_template"));
+ BanyandbProperty.QueryResponse resp = client.query(BanyandbProperty.QueryRequest.newBuilder()
+ .addGroups("default")
+ .setContainer("sw")
+ .addIds("ui_template")
+ .build());
+ Assert.assertEquals(0, resp.getPropertiesCount());
}
@Test
@@ -97,7 +117,13 @@ public class ITBanyanDBPropertyTests extends BanyanDBClientTestCI {
Assert.assertFalse(this.client.apply(property2).getCreated());
await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
- Property gotProperty = client.findProperty("default", "sw", "ui_template");
+ BanyandbProperty.QueryResponse resp = client.query(BanyandbProperty.QueryRequest.newBuilder()
+ .addGroups("default")
+ .setContainer("sw")
+ .addIds("ui_template")
+ .build());
+ Assert.assertEquals(1, resp.getPropertiesCount());
+ Property gotProperty = resp.getProperties(0);
Assert.assertNotNull(gotProperty);
Assert.assertEquals(property2.getTagsList(), gotProperty.getTagsList());
});
@@ -115,31 +141,31 @@ public class ITBanyanDBPropertyTests extends BanyanDBClientTestCI {
Assert.assertTrue(this.client.apply(property).getCreated());
await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
- List<Property> gotProperties = client.findProperties("default", "sw");
- Assert.assertEquals(2, gotProperties.size());
+ BanyandbProperty.QueryResponse resp = client.query(BanyandbProperty.QueryRequest.newBuilder()
+ .addGroups("default")
+ .setContainer("sw")
+ .build());
+ Assert.assertEquals(2, resp.getPropertiesCount());
});
await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
- List<Property> gotProperties = client.findProperties("default", "sw", Arrays.asList("id1", "id2"), null);
- Assert.assertEquals(2, gotProperties.size());
+ BanyandbProperty.QueryResponse resp = client.query(BanyandbProperty.QueryRequest.newBuilder()
+ .addGroups("default")
+ .setContainer("sw")
+ .addIds("id1")
+ .addIds("id2")
+ .build());
+ Assert.assertEquals(2, resp.getPropertiesCount());
});
await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
- List<Property> gotProperties = client.findProperties("default", "sw", Arrays.asList("id2"), null);
- Assert.assertEquals(1, gotProperties.size());
+ BanyandbProperty.QueryResponse resp = client.query(BanyandbProperty.QueryRequest.newBuilder()
+ .addGroups("default")
+ .setContainer("sw")
+ .addIds("id2")
+ .build());
+ Assert.assertEquals(1, resp.getPropertiesCount());
});
}
- @Test
- public void test_PropertyKeepAlive() throws BanyanDBException {
- Property property = buildProperty("default", "sw", "id1")
- .toBuilder().addTags(
- Tag.newBuilder().setKey("name").setValue(
- TagValue.newBuilder().setStr(Str.newBuilder().setValue("bar")))).setTtl("30m").build();
- BanyandbProperty.ApplyResponse resp = this.client.apply(property);
- Assert.assertTrue(resp.getCreated());
- Assert.assertTrue(resp.getLeaseId() > 0);
- this.client.keepAliveProperty(resp.getLeaseId());
- }
-
private BanyandbProperty.Property buildProperty(String group, String name, String id) {
BanyandbProperty.Property.Builder builder = BanyandbProperty.Property.newBuilder()
.setMetadata(