This is an automated email from the ASF dual-hosted git repository.
lujiajing pushed a commit to branch expose-methods
in repository
https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
The following commit(s) were added to refs/heads/expose-methods by this push:
new e8f9391 remove duration over days
e8f9391 is described below
commit e8f93919204e721162cd3478cb275bb8c9bff730
Author: Megrez Lu <[email protected]>
AuthorDate: Wed Apr 27 09:36:09 2022 +0800
remove duration over days
---
.../banyandb/v1/client/BanyanDBClient.java | 52 +++++++++++++++++++++-
.../banyandb/v1/client/metadata/Duration.java | 30 +------------
.../banyandb/v1/client/metadata/Measure.java | 9 +++-
.../banyandb/v1/client/metadata/Property.java | 2 +-
.../banyandb/v1/client/metadata/Stream.java | 9 +++-
.../banyandb/v1/client/metadata/TagFamilySpec.java | 9 +++-
6 files changed, 75 insertions(+), 36 deletions(-)
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 98501c9..c9e924d 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
@@ -328,6 +328,7 @@ public class BanyanDBClient implements Closeable {
store.get(property.group(), property.name(), property.id());
store.update(property);
} catch (BanyanDBException ex) {
+ // multiple entity can share a single index rule
if (ex.getStatus().equals(Status.Code.NOT_FOUND)) {
store.create(property);
return;
@@ -349,6 +350,18 @@ public class BanyanDBClient implements Closeable {
return store.get(group, name, id);
}
+ /**
+ * 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 {
+ PropertyStore store = new PropertyStore(checkNotNull(this.channel));
+ return store.list(group, name);
+ }
+
/**
* Delete property
*
@@ -373,7 +386,14 @@ public class BanyanDBClient implements Closeable {
IndexRuleMetadataRegistry irRegistry = new
IndexRuleMetadataRegistry(checkNotNull(this.channel));
for (final IndexRule ir : indexRules) {
- irRegistry.create(ir);
+ try {
+ irRegistry.create(ir);
+ } catch (BanyanDBException ex) {
+ if (ex.getStatus().equals(Status.Code.ALREADY_EXISTS)) {
+ continue;
+ }
+ throw ex;
+ }
}
List<String> indexRuleNames =
indexRules.stream().map(IndexRule::name).collect(Collectors.toList());
@@ -398,7 +418,15 @@ public class BanyanDBClient implements Closeable {
IndexRuleMetadataRegistry irRegistry = new
IndexRuleMetadataRegistry(checkNotNull(this.channel));
for (final IndexRule ir : indexRules) {
- irRegistry.create(ir);
+ try {
+ irRegistry.create(ir);
+ } catch (BanyanDBException ex) {
+ // multiple entity can share a single index rule
+ if (ex.getStatus().equals(Status.Code.ALREADY_EXISTS)) {
+ continue;
+ }
+ throw ex;
+ }
}
List<String> indexRuleNames =
indexRules.stream().map(IndexRule::name).collect(Collectors.toList());
@@ -411,6 +439,26 @@ public class BanyanDBClient implements Closeable {
irbRegistry.create(binding);
}
+ /**
+ * Try to find the group defined
+ *
+ * @param name name of the group
+ * @return the group found in BanyanDB
+ */
+ public Group findGroup(String name) throws BanyanDBException {
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(name));
+
+ try {
+ return new
GroupMetadataRegistry(checkNotNull(this.channel)).get(name, name);
+ } catch (BanyanDBException ex) {
+ if (ex.getStatus().equals(Status.Code.NOT_FOUND)) {
+ return null;
+ }
+
+ throw ex;
+ }
+ }
+
/**
* Try to find the stream from the BanyanDB with given group and name.
*
diff --git
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Duration.java
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Duration.java
index 060cd76..ad5530e 100644
---
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Duration.java
+++
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Duration.java
@@ -27,11 +27,9 @@ import java.util.regex.Pattern;
@EqualsAndHashCode
public class Duration {
private static final Pattern DURATION_PATTERN =
-
Pattern.compile("(((?<year>[0-9]+)y)?((?<week>[0-9]+)w)?((?<day>[0-9]+)d)?((?<hour>[0-9]+)h)?((?<minute>[0-9]+)m)?|0)");
+
Pattern.compile("(((?<day>\\d+)d)?((?<hour>\\d+)h)?((?<minute>\\d+)m)?|0)");
private static final long MINUTES_PER_HOUR = 60;
private static final long MINUTES_PER_DAY = MINUTES_PER_HOUR * 24;
- private static final long MINUTES_PER_WEEK = MINUTES_PER_DAY * 7;
- private static final long MINUTES_PER_YEAR = MINUTES_PER_DAY * 365;
@EqualsAndHashCode.Exclude
private volatile String text;
@@ -48,16 +46,6 @@ public class Duration {
final StringBuilder builder = new StringBuilder();
long minutes = this.minutes;
- if (minutes >= MINUTES_PER_YEAR) {
- long years = minutes / MINUTES_PER_YEAR;
- builder.append(years).append("y");
- minutes = minutes % MINUTES_PER_YEAR;
- }
- if (minutes >= MINUTES_PER_WEEK) {
- long weeks = minutes / MINUTES_PER_WEEK;
- builder.append(weeks).append("w");
- minutes = minutes % MINUTES_PER_WEEK;
- }
if (minutes >= MINUTES_PER_DAY) {
long weeks = minutes / MINUTES_PER_DAY;
builder.append(weeks).append("d");
@@ -88,14 +76,6 @@ public class Duration {
return new Duration(0);
}
long total = 0;
- final String years = matcher.group("year");
- if (!Strings.isNullOrEmpty(years)) {
- total += Long.parseLong(years) * MINUTES_PER_YEAR;
- }
- final String weeks = matcher.group("week");
- if (!Strings.isNullOrEmpty(weeks)) {
- total += Long.parseLong(weeks) * MINUTES_PER_WEEK;
- }
final String days = matcher.group("day");
if (!Strings.isNullOrEmpty(days)) {
total += Long.parseLong(days) * MINUTES_PER_DAY;
@@ -122,12 +102,4 @@ public class Duration {
public static Duration ofDays(long days) {
return ofHours(days * MINUTES_PER_DAY);
}
-
- public static Duration ofWeeks(long weeks) {
- return ofHours(weeks * MINUTES_PER_WEEK);
- }
-
- public static Duration ofYears(long years) {
- return ofHours(years * MINUTES_PER_YEAR);
- }
}
diff --git
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
index 80b021d..3e586c4 100644
---
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
+++
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
@@ -85,6 +85,11 @@ public abstract class Measure extends
NamedSchema<BanyandbDatabase.Measure> {
return this;
}
+ public final Measure.Builder addTagFamilies(Iterable<TagFamilySpec>
tagFamilySpecs) {
+ tagFamiliesBuilder().addAll(tagFamilySpecs);
+ return this;
+ }
+
abstract ImmutableList.Builder<FieldSpec> fieldsBuilder();
public final Measure.Builder addField(FieldSpec fieldSpec) {
@@ -95,7 +100,9 @@ public abstract class Measure extends
NamedSchema<BanyandbDatabase.Measure> {
abstract ImmutableList.Builder<IndexRule> indexRulesBuilder();
public final Measure.Builder addIndexes(Iterable<IndexRule>
indexRules) {
- indexRulesBuilder().addAll(indexRules);
+ for (final IndexRule ir : indexRules) {
+ this.addIndex(ir);
+ }
return this;
}
diff --git
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Property.java
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Property.java
index 785389b..72771e5 100644
---
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Property.java
+++
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Property.java
@@ -33,7 +33,7 @@ import java.util.List;
public abstract class Property extends NamedSchema<BanyandbProperty.Property> {
public abstract String id();
- abstract ImmutableList<TagAndValue<?>> tags();
+ public abstract ImmutableList<TagAndValue<?>> tags();
@Override
public BanyandbProperty.Property serialize() {
diff --git
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Stream.java
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Stream.java
index 9bf62c1..88864fb 100644
---
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Stream.java
+++
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Stream.java
@@ -71,10 +71,17 @@ public abstract class Stream extends
NamedSchema<BanyandbDatabase.Stream> {
return this;
}
+ public final Builder addTagFamilies(Iterable<TagFamilySpec>
tagFamilySpecs) {
+ tagFamiliesBuilder().addAll(tagFamilySpecs);
+ return this;
+ }
+
abstract ImmutableList.Builder<IndexRule> indexRulesBuilder();
public final Builder addIndexes(Iterable<IndexRule> indexRules) {
- indexRulesBuilder().addAll(indexRules);
+ for (final IndexRule ir : indexRules) {
+ this.addIndex(ir);
+ }
return this;
}
diff --git
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
index ff14425..a09f048 100644
---
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
+++
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
@@ -36,12 +36,12 @@ public abstract class TagFamilySpec implements
Serializable<BanyandbDatabase.Tag
/**
* name of the tag family
*/
- abstract String tagFamilyName();
+ public abstract String tagFamilyName();
/**
* TagSpec(s) contained in this family
*/
- abstract ImmutableList<TagSpec> tagSpecs();
+ public abstract ImmutableList<TagSpec> tagSpecs();
public static TagFamilySpec.Builder create(String tagFamilyName) {
return new
AutoValue_TagFamilySpec.Builder().setTagFamilyName(tagFamilyName);
@@ -58,6 +58,11 @@ public abstract class TagFamilySpec implements
Serializable<BanyandbDatabase.Tag
return this;
}
+ public final Builder addTagSpecs(Iterable<TagSpec> tagSpecs) {
+ tagSpecsBuilder().addAll(tagSpecs);
+ return this;
+ }
+
public abstract TagFamilySpec build();
}