From b5dd421142dcce40b28b5d4cd9636334fcd65694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sky/=E6=95=96=E5=B0=8F=E5=89=91?= Date: Wed, 30 Dec 2020 06:03:41 +0800 Subject: [PATCH] add metadata in get bulk state request (#401) * add metadata in get bulk state request * rollback DaprClientGrpcTest which should be comitted in another PR * fix compile error after merge * update unit test for metadata in getBulkState() * re-trigger build again * add test for withMetadata() Co-authored-by: Mukundan Sundararajan --- .../java/io/dapr/client/DaprClientGrpc.java | 3 +++ .../client/domain/GetBulkStateRequest.java | 11 +++++++++++ .../domain/GetBulkStateRequestBuilder.java | 9 +++++++++ .../io/dapr/client/DaprClientGrpcTest.java | 18 ++++++++++++++++++ 4 files changed, 41 insertions(+) diff --git a/sdk/src/main/java/io/dapr/client/DaprClientGrpc.java b/sdk/src/main/java/io/dapr/client/DaprClientGrpc.java index 5e0ab7d28..79d455d7b 100644 --- a/sdk/src/main/java/io/dapr/client/DaprClientGrpc.java +++ b/sdk/src/main/java/io/dapr/client/DaprClientGrpc.java @@ -283,6 +283,9 @@ public class DaprClientGrpc extends AbstractDaprClient { .setStoreName(stateStoreName) .addAllKeys(keys) .setParallelism(parallelism); + if (request.getMetadata() != null) { + builder.putAllMetadata(request.getMetadata()); + } DaprProtos.GetBulkStateRequest envelope = builder.build(); return Mono.fromCallable(wrap(context, () -> { diff --git a/sdk/src/main/java/io/dapr/client/domain/GetBulkStateRequest.java b/sdk/src/main/java/io/dapr/client/domain/GetBulkStateRequest.java index 402eee773..e7acefd1a 100644 --- a/sdk/src/main/java/io/dapr/client/domain/GetBulkStateRequest.java +++ b/sdk/src/main/java/io/dapr/client/domain/GetBulkStateRequest.java @@ -8,6 +8,7 @@ package io.dapr.client.domain; import io.opentelemetry.context.Context; import java.util.List; +import java.util.Map; /** * A request to get bulk state by keys. @@ -18,6 +19,8 @@ public class GetBulkStateRequest { private List keys; + private Map metadata; + private int parallelism; private Context context; @@ -53,4 +56,12 @@ public class GetBulkStateRequest { void setContext(Context context) { this.context = context; } + + public Map getMetadata() { + return metadata; + } + + void setMetadata(Map metadata) { + this.metadata = metadata; + } } diff --git a/sdk/src/main/java/io/dapr/client/domain/GetBulkStateRequestBuilder.java b/sdk/src/main/java/io/dapr/client/domain/GetBulkStateRequestBuilder.java index 0a4ae9426..28b5100d7 100644 --- a/sdk/src/main/java/io/dapr/client/domain/GetBulkStateRequestBuilder.java +++ b/sdk/src/main/java/io/dapr/client/domain/GetBulkStateRequestBuilder.java @@ -10,6 +10,7 @@ import io.opentelemetry.context.Context; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Map; /** * Builds a request to request states. @@ -20,6 +21,8 @@ public class GetBulkStateRequestBuilder { private final List keys; + private Map metadata; + private int parallelism = 1; private Context context; @@ -34,6 +37,11 @@ public class GetBulkStateRequestBuilder { this.keys = keys == null ? null : Collections.unmodifiableList(Arrays.asList(keys)); } + public GetBulkStateRequestBuilder withMetadata(Map metadata) { + this.metadata = metadata == null ? null : Collections.unmodifiableMap(metadata); + return this; + } + public GetBulkStateRequestBuilder withParallelism(int parallelism) { this.parallelism = parallelism; return this; @@ -52,6 +60,7 @@ public class GetBulkStateRequestBuilder { GetBulkStateRequest request = new GetBulkStateRequest(); request.setStoreName(this.storeName); request.setKeys(this.keys); + request.setMetadata(this.metadata); request.setParallelism(this.parallelism); request.setContext(this.context); return request; diff --git a/sdk/src/test/java/io/dapr/client/DaprClientGrpcTest.java b/sdk/src/test/java/io/dapr/client/DaprClientGrpcTest.java index e1ed48e9c..0a341480d 100644 --- a/sdk/src/test/java/io/dapr/client/DaprClientGrpcTest.java +++ b/sdk/src/test/java/io/dapr/client/DaprClientGrpcTest.java @@ -951,6 +951,7 @@ public class DaprClientGrpcTest { }); // negative parallelism GetBulkStateRequest req = new GetBulkStateRequestBuilder(STATE_STORE_NAME, Collections.singletonList("100")) + .withMetadata(new HashMap<>()) .withParallelism(-1) .build(); assertThrows(IllegalArgumentException.class, () -> adapter.getBulkState(req, TypeRef.BOOLEAN).block()); @@ -958,10 +959,14 @@ public class DaprClientGrpcTest { @Test public void getStatesString() throws IOException { + Map metadata = new HashMap<>(); + metadata.put("meta1", "value1"); + metadata.put("meta2", "value2"); DaprProtos.GetBulkStateResponse responseEnvelope = DaprProtos.GetBulkStateResponse.newBuilder() .addItems(DaprProtos.BulkStateItem.newBuilder() .setData(serialize("hello world")) .setKey("100") + .putAllMetadata(metadata) .setEtag("1") .build()) .addItems(DaprProtos.BulkStateItem.newBuilder() @@ -983,6 +988,7 @@ public class DaprClientGrpcTest { assertEquals(2, result.size()); assertEquals("100", result.stream().findFirst().get().getKey()); assertEquals("hello world", result.stream().findFirst().get().getValue()); + assertEquals(metadata, result.stream().findFirst().get().getMetadata()); assertEquals("1", result.stream().findFirst().get().getEtag()); assertNull(result.stream().findFirst().get().getError()); assertEquals("200", result.stream().skip(1).findFirst().get().getKey()); @@ -993,10 +999,13 @@ public class DaprClientGrpcTest { @Test public void getStatesInteger() throws IOException { + Map metadata = new HashMap<>(); + metadata.put("meta1", "value1"); DaprProtos.GetBulkStateResponse responseEnvelope = DaprProtos.GetBulkStateResponse.newBuilder() .addItems(DaprProtos.BulkStateItem.newBuilder() .setData(serialize(1234)) .setKey("100") + .putAllMetadata(metadata) .setEtag("1") .build()) .addItems(DaprProtos.BulkStateItem.newBuilder() @@ -1018,6 +1027,7 @@ public class DaprClientGrpcTest { assertEquals(2, result.size()); assertEquals("100", result.stream().findFirst().get().getKey()); assertEquals(1234, (int)result.stream().findFirst().get().getValue()); + assertEquals(metadata, result.stream().findFirst().get().getMetadata()); assertEquals("1", result.stream().findFirst().get().getEtag()); assertNull(result.stream().findFirst().get().getError()); assertEquals("200", result.stream().skip(1).findFirst().get().getKey()); @@ -1028,10 +1038,13 @@ public class DaprClientGrpcTest { @Test public void getStatesBoolean() throws IOException { + Map metadata = new HashMap<>(); + metadata.put("meta1", "value1"); DaprProtos.GetBulkStateResponse responseEnvelope = DaprProtos.GetBulkStateResponse.newBuilder() .addItems(DaprProtos.BulkStateItem.newBuilder() .setData(serialize(true)) .setKey("100") + .putAllMetadata(metadata) .setEtag("1") .build()) .addItems(DaprProtos.BulkStateItem.newBuilder() @@ -1053,6 +1066,7 @@ public class DaprClientGrpcTest { assertEquals(2, result.size()); assertEquals("100", result.stream().findFirst().get().getKey()); assertEquals(true, result.stream().findFirst().get().getValue()); + assertEquals(metadata, result.stream().findFirst().get().getMetadata()); assertEquals("1", result.stream().findFirst().get().getEtag()); assertNull(result.stream().findFirst().get().getError()); assertEquals("200", result.stream().skip(1).findFirst().get().getKey()); @@ -1063,10 +1077,12 @@ public class DaprClientGrpcTest { @Test public void getStatesByteArray() throws IOException { + Map metadata = new HashMap<>(); DaprProtos.GetBulkStateResponse responseEnvelope = DaprProtos.GetBulkStateResponse.newBuilder() .addItems(DaprProtos.BulkStateItem.newBuilder() .setData(serialize(new byte[]{1, 2, 3})) .setKey("100") + .putAllMetadata(metadata) .setEtag("1") .build()) .addItems(DaprProtos.BulkStateItem.newBuilder() @@ -1088,6 +1104,7 @@ public class DaprClientGrpcTest { assertEquals(2, result.size()); assertEquals("100", result.stream().findFirst().get().getKey()); assertArrayEquals(new byte[]{1, 2, 3}, result.stream().findFirst().get().getValue()); + assertEquals(0, result.stream().findFirst().get().getMetadata().size()); assertEquals("1", result.stream().findFirst().get().getEtag()); assertNull(result.stream().findFirst().get().getError()); assertEquals("200", result.stream().skip(1).findFirst().get().getKey()); @@ -1124,6 +1141,7 @@ public class DaprClientGrpcTest { assertEquals(2, result.size()); assertEquals("100", result.stream().findFirst().get().getKey()); assertEquals(object, result.stream().findFirst().get().getValue()); + assertEquals(0, result.stream().findFirst().get().getMetadata().size()); assertEquals("1", result.stream().findFirst().get().getEtag()); assertNull(result.stream().findFirst().get().getError()); assertEquals("200", result.stream().skip(1).findFirst().get().getKey());