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 2023/02/23 15:12:46 UTC

[skywalking-banyandb-java-client] branch group created (now 7f2d742)

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

hanahmily pushed a change to branch group
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git


      at 7f2d742  Tweak Group builders for property operations

This branch includes the following new commits:

     new 7f2d742  Tweak Group builders for property operations

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[skywalking-banyandb-java-client] 01/01: Tweak Group builders for property operations

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch group
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git

commit 7f2d7424a67f75d8c1747ac57ed815ecf8259201
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Thu Feb 23 23:11:54 2023 +0800

    Tweak Group builders for property operations
    
    Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
 .../banyandb/v1/client/metadata/Group.java         | 45 ++++++++++++++++------
 .../banyandb/v1/client/BanyanDBClientTestCI.java   |  2 +-
 .../v1/client/ITBanyanDBPropertyTests.java         |  8 +---
 3 files changed, 36 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Group.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Group.java
index a306ba8..4fcca7d 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Group.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Group.java
@@ -19,9 +19,11 @@
 package org.apache.skywalking.banyandb.v1.client.metadata;
 
 import com.google.auto.value.AutoValue;
+import com.google.common.base.Preconditions;
 import org.apache.skywalking.banyandb.common.v1.BanyandbCommon;
 import org.apache.skywalking.banyandb.v1.client.util.TimeUtils;
 
+import javax.annotation.Nullable;
 import java.time.ZonedDateTime;
 
 @AutoValue
@@ -36,33 +38,54 @@ public abstract class Group extends NamedSchema<BanyandbCommon.Group> {
      */
     abstract int shardNum();
 
+    @Nullable
     abstract IntervalRule blockInterval();
 
+    @Nullable
     abstract IntervalRule segmentInterval();
 
+    @Nullable
     abstract IntervalRule ttl();
 
     public static Group create(String name, Catalog catalog, int shardNum, IntervalRule blockInterval, IntervalRule segmentInterval, IntervalRule ttl) {
+        Preconditions.checkArgument(shardNum > 0, "shardNum should more than 0");
+        Preconditions.checkNotNull(blockInterval, "blockInterval is null");
+        Preconditions.checkNotNull(segmentInterval, "segmentInterval is null");
+        Preconditions.checkNotNull(ttl, "ttl is null");
         return new AutoValue_Group(null, name, null, catalog, shardNum, blockInterval, segmentInterval, ttl);
     }
 
     public static Group create(String name, Catalog catalog, int shardNum, IntervalRule blockInterval, IntervalRule segmentInterval, IntervalRule ttl, ZonedDateTime updatedAt) {
+        Preconditions.checkArgument(shardNum > 0, "shardNum should more than 0");
+        Preconditions.checkNotNull(blockInterval, "blockInterval is null");
+        Preconditions.checkNotNull(segmentInterval, "segmentInterval is null");
+        Preconditions.checkNotNull(ttl, "ttl is null");
         return new AutoValue_Group(null, name, updatedAt, catalog, shardNum, blockInterval, segmentInterval, ttl);
     }
 
-    @Override
+    public static Group create(String name) {
+        return new AutoValue_Group(null, name, null, Catalog.UNSPECIFIED, 0, null, null, null);
+    }
+
+    public static Group create(String name, ZonedDateTime updatedAt) {
+        return new AutoValue_Group(null, name, updatedAt, Catalog.UNSPECIFIED, 0, null, null, null);
+    }
+
+        @Override
     public BanyandbCommon.Group serialize() {
-        return BanyandbCommon.Group.newBuilder()
+            BanyandbCommon.Group.Builder builder = BanyandbCommon.Group.newBuilder()
                 // use name as the group
                 .setMetadata(this.buildMetadata().toBuilder())
-                .setCatalog(catalog().getCatalog())
-                .setResourceOpts(BanyandbCommon.ResourceOpts.newBuilder()
+                .setCatalog(catalog().getCatalog());
+            if (shardNum() > 0) {
+                builder.setResourceOpts(BanyandbCommon.ResourceOpts.newBuilder()
                         .setShardNum(shardNum())
                         .setBlockInterval(blockInterval().serialize())
                         .setSegmentInterval(segmentInterval().serialize())
                         .setTtl(ttl().serialize())
-                        .build())
-                .build();
+                        .build());
+            }
+            return builder.build();
     }
 
     public static Group fromProtobuf(BanyandbCommon.Group group) {
@@ -75,14 +98,14 @@ public abstract class Group extends NamedSchema<BanyandbCommon.Group> {
                 catalog = Catalog.MEASURE;
                 break;
         }
-
+        BanyandbCommon.ResourceOpts opts = group.getResourceOpts();
         return new AutoValue_Group(null,
                 group.getMetadata().getName(),
                 TimeUtils.parseTimestamp(group.getUpdatedAt()),
                 catalog,
-                group.getResourceOpts().getShardNum(),
-                IntervalRule.fromProtobuf(group.getResourceOpts().getBlockInterval()),
-                IntervalRule.fromProtobuf(group.getResourceOpts().getSegmentInterval()),
-                IntervalRule.fromProtobuf(group.getResourceOpts().getTtl()));
+                opts == null ? 0 : opts.getShardNum(),
+                opts == null ? null : IntervalRule.fromProtobuf(opts.getBlockInterval()),
+                opts == null ? null : IntervalRule.fromProtobuf(opts.getSegmentInterval()),
+                opts == null ? null : IntervalRule.fromProtobuf(opts.getTtl()));
     }
 }
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 0bcaa5b..d91f987 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
@@ -30,7 +30,7 @@ import java.io.IOException;
 public class BanyanDBClientTestCI {
     private static final String REGISTRY = "ghcr.io";
     private static final String IMAGE_NAME = "apache/skywalking-banyandb";
-    private static final String TAG = "1c19243df23f8350ea5c1542fd914c49e8698960";
+    private static final String TAG = "adbd3e87df7f84e5d1904fcf40476d2e81842058";
 
     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 1d7303d..b2eaf03 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
@@ -20,9 +20,7 @@ package org.apache.skywalking.banyandb.v1.client;
 
 import io.grpc.Status;
 import org.apache.skywalking.banyandb.v1.client.grpc.exception.BanyanDBException;
-import org.apache.skywalking.banyandb.v1.client.metadata.Catalog;
 import org.apache.skywalking.banyandb.v1.client.metadata.Group;
-import org.apache.skywalking.banyandb.v1.client.metadata.IntervalRule;
 import org.apache.skywalking.banyandb.v1.client.metadata.Property;
 import org.junit.After;
 import org.junit.Assert;
@@ -38,11 +36,7 @@ public class ITBanyanDBPropertyTests extends BanyanDBClientTestCI {
     @Before
     public void setUp() throws IOException, BanyanDBException, InterruptedException {
         super.setUpConnection();
-        Group expectedGroup = this.client.define(
-                Group.create("default", Catalog.STREAM, 2, IntervalRule.create(IntervalRule.Unit.HOUR, 4),
-                        IntervalRule.create(IntervalRule.Unit.DAY, 1),
-                        IntervalRule.create(IntervalRule.Unit.DAY, 7))
-        );
+        Group expectedGroup = this.client.define(Group.create("default"));
         Assert.assertNotNull(expectedGroup);
     }