You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2022/11/23 07:46:30 UTC

[skywalking-banyandb-java-client] branch lazy-ts-set created (now 31eecbd)

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

wusheng pushed a change to branch lazy-ts-set
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git


      at 31eecbd  Support timestamp lazy initialization for StreamWrite.

This branch includes the following new commits:

     new 31eecbd  Support timestamp lazy initialization for StreamWrite.

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: Support timestamp lazy initialization for StreamWrite.

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

wusheng pushed a commit to branch lazy-ts-set
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git

commit 31eecbd1fd728cfafe3682d2243902b96eb8049e
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Wed Nov 23 15:46:24 2022 +0800

    Support timestamp lazy initialization for StreamWrite.
---
 .../skywalking/banyandb/v1/client/AbstractWrite.java      | 15 ++++++++++++++-
 .../apache/skywalking/banyandb/v1/client/StreamWrite.java |  8 ++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractWrite.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractWrite.java
index 7e10132..e81ec02 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractWrite.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractWrite.java
@@ -20,6 +20,7 @@ package org.apache.skywalking.banyandb.v1.client;
 
 import com.google.protobuf.Timestamp;
 import lombok.Getter;
+import lombok.Setter;
 import org.apache.skywalking.banyandb.common.v1.BanyandbCommon;
 import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
 import org.apache.skywalking.banyandb.v1.client.grpc.exception.BanyanDBException;
@@ -44,8 +45,9 @@ public abstract class AbstractWrite<P extends com.google.protobuf.GeneratedMessa
      * Timestamp represents the time of current stream
      * in the timeunit of milliseconds.
      */
+    @Setter
     @Getter
-    protected final long timestamp;
+    protected long timestamp;
 
     protected final Object[] tags;
 
@@ -62,6 +64,13 @@ public abstract class AbstractWrite<P extends com.google.protobuf.GeneratedMessa
         this.tags = new Object[this.entityMetadata.getTotalTags()];
     }
 
+    /**
+     * Build a write without initial timestamp.
+     */
+    public AbstractWrite(String group, String name) {
+        this(group, name, 0);
+    }
+
     public AbstractWrite<P> tag(String tagName, Serializable<BanyandbModel.TagValue> tagValue) throws BanyanDBException {
         final Optional<MetadataCache.TagInfo> tagInfo = this.entityMetadata.findTagInfo(tagName);
         if (!tagInfo.isPresent()) {
@@ -72,6 +81,10 @@ public abstract class AbstractWrite<P extends com.google.protobuf.GeneratedMessa
     }
 
     P build() {
+        if (timestamp <= 0) {
+            throw new IllegalArgumentException("timestamp is invalid.");
+        }
+
         BanyandbCommon.Metadata metadata = BanyandbCommon.Metadata.newBuilder()
                 .setGroup(this.group).setName(this.name).build();
         Timestamp ts = Timestamp.newBuilder()
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
index b2f85c2..be297d2 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
@@ -46,6 +46,14 @@ public class StreamWrite extends AbstractWrite<BanyandbStream.WriteRequest> {
         this.elementId = elementId;
     }
 
+    /**
+     * Create a StreamWrite without initial timestamp.
+     */
+    public StreamWrite(final String group, final String name, final String elementId) {
+        super(group, name);
+        this.elementId = elementId;
+    }
+
     @Override
     public StreamWrite tag(String tagName, Serializable<BanyandbModel.TagValue> tagValue) throws BanyanDBException {
         return (StreamWrite) super.tag(tagName, tagValue);