remove io.dapr.client.domain.Response from DaprClient APIs (#476)

* change: remove io.dapr.client.domain.Response from getState API. This is just a showcase of how to use reactor.util.context.Context

* fix: code style

* change: remove io.dapr.client.domain.Response from invokeMethod API

* change: completely remove io.dapr.client.domain.Response and update all APIs
change: remove reactor.util.context.Context from "request" classes.

* removed getStateContext test case
update README.md

* removed default impl from DaprClient

Co-authored-by: Xia Zuojie <zuojie@alibaba-inc.com>
Co-authored-by: Artur Souza <artursouza.ms@outlook.com>
This commit is contained in:
xiazuojie 2021-02-06 15:20:25 +08:00 committed by GitHub
parent a66337aa4b
commit 0cd2f373d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 215 additions and 457 deletions

View File

@ -52,18 +52,18 @@ public class InvokeClient {
InvokeMethodRequest request = builder
.withBody(message)
.withHttpExtension(HttpExtension.POST)
.withContext(getReactorContext()).build();
.build();
client.invokeMethod(request, TypeRef.get(byte[].class))
.map(r -> {
System.out.println(new String(r.getObject()));
System.out.println(new String(r));
return r;
})
.flatMap(r -> {
InvokeMethodRequest sleepRequest = new InvokeMethodRequestBuilder(SERVICE_APP_ID, "proxy_sleep")
.withHttpExtension(HttpExtension.POST)
.withContext(r.getContext()).build();
.build();
return client.invokeMethod(sleepRequest, TypeRef.get(Void.class));
}).block();
}).subscriberContext(getReactorContext()).block();
}
}

View File

@ -147,19 +147,19 @@ public class TracingDemoMiddleServiceController {
@RequestBody(required = false) String body) {
InvokeMethodRequestBuilder builder = new InvokeMethodRequestBuilder(INVOKE_APP_ID, "echo");
InvokeMethodRequest request = builder
.withBody(body)
.withHttpExtension(HttpExtension.POST)
.withContext(getReactorContext(context)).build();
return client.invokeMethod(request, TypeRef.get(byte[].class)).map(r -> r.getObject());
.withBody(body)
.withHttpExtension(HttpExtension.POST)
.build();
return client.invokeMethod(request, TypeRef.get(byte[].class)).subscriberContext(getReactorContext(context));
}
// ...
@PostMapping(path = "/proxy_sleep")
public Mono<Void> sleep(@RequestAttribute(name = "opentelemetry-context") Context context) {
InvokeMethodRequestBuilder builder = new InvokeMethodRequestBuilder(INVOKE_APP_ID, "sleep");
InvokeMethodRequest request = builder
.withHttpExtension(HttpExtension.POST)
.withContext(getReactorContext(context)).build();
return client.invokeMethod(request, TypeRef.get(byte[].class)).then();
.withHttpExtension(HttpExtension.POST)
.build();
return client.invokeMethod(request, TypeRef.get(byte[].class)).subscriberContext(getReactorContext(context)).then();
}
}
```
@ -222,26 +222,29 @@ public class InvokeClient {
private static final String SERVICE_APP_ID = "tracingdemoproxy";
///...
public static void main(String[] args) throws Exception {
Tracer tracer = OpenTelemetryConfig.createTracer(InvokeClient.class.getCanonicalName());
final OpenTelemetry openTelemetry = OpenTelemetryConfig.createOpenTelemetry();
final Tracer tracer = openTelemetry.getTracer(InvokeClient.class.getCanonicalName());
Span span = tracer.spanBuilder("Example's Main").setSpanKind(Span.Kind.CLIENT).startSpan();
try (DaprClient client = (new DaprClientBuilder()).build()) {
for (String message : args) {
try (Scope scope = tracer.withSpan(span)) {
InvokeServiceRequestBuilder builder = new InvokeServiceRequestBuilder(SERVICE_APP_ID, "proxy_echo");
InvokeServiceRequest request
= builder.withBody(message).withHttpExtension(HttpExtension.POST).withContext(Context.current()).build();
client.invokeService(request, TypeRef.get(byte[].class))
.map(r -> {
System.out.println(new String(r.getObject()));
return r;
})
.flatMap(r -> {
InvokeServiceRequest sleepRequest = new InvokeServiceRequestBuilder(SERVICE_APP_ID, "proxy_sleep")
.withHttpExtension(HttpExtension.POST)
.withContext(r.getContext()).build();
return client.invokeMethod(sleepRequest, TypeRef.get(Void.class));
}).block();
try (Scope scope = span.makeCurrent()) {
InvokeMethodRequestBuilder builder = new InvokeMethodRequestBuilder(SERVICE_APP_ID, "proxy_echo");
InvokeMethodRequest request = builder
.withBody(message)
.withHttpExtension(HttpExtension.POST)
.build();
client.invokeMethod(request, TypeRef.get(byte[].class))
.map(r -> {
System.out.println(new String(r));
return r;
})
.flatMap(r -> {
InvokeMethodRequest sleepRequest = new InvokeMethodRequestBuilder(SERVICE_APP_ID, "proxy_sleep")
.withHttpExtension(HttpExtension.POST)
.build();
return client.invokeMethod(sleepRequest, TypeRef.get(Void.class));
}).subscriberContext(getReactorContext()).block();
}
}

View File

@ -52,8 +52,8 @@ public class TracingDemoMiddleServiceController {
InvokeMethodRequest request = builder
.withBody(body)
.withHttpExtension(HttpExtension.POST)
.withContext(getReactorContext(context)).build();
return client.invokeMethod(request, TypeRef.get(byte[].class)).map(r -> r.getObject());
.build();
return client.invokeMethod(request, TypeRef.get(byte[].class)).subscriberContext(getReactorContext(context));
}
/**
@ -67,8 +67,8 @@ public class TracingDemoMiddleServiceController {
InvokeMethodRequestBuilder builder = new InvokeMethodRequestBuilder(INVOKE_APP_ID, "sleep");
InvokeMethodRequest request = builder
.withHttpExtension(HttpExtension.POST)
.withContext(getReactorContext(context)).build();
return client.invokeMethod(request, TypeRef.get(byte[].class)).then();
.build();
return client.invokeMethod(request, TypeRef.get(byte[].class)).subscriberContext(getReactorContext(context)).then();
}
}

View File

@ -105,7 +105,7 @@ abstract class AbstractDaprClient implements DaprClient {
.withContentType(objectSerializer.getContentType())
.build();
return this.invokeMethod(req, type).map(r -> r.getObject());
return this.invokeMethod(req, type);
}
/**
@ -235,7 +235,7 @@ abstract class AbstractDaprClient implements DaprClient {
.withData(data)
.withMetadata(metadata)
.build();
return this.invokeBinding(request, type).map(r -> r.getObject());
return this.invokeBinding(request, type);
}
@ -289,7 +289,7 @@ abstract class AbstractDaprClient implements DaprClient {
GetStateRequest request = new GetStateRequestBuilder(storeName, key)
.withStateOptions(options)
.build();
return this.getState(request, type).map(r -> r.getObject());
return this.getState(request, type);
}
@ -307,7 +307,7 @@ abstract class AbstractDaprClient implements DaprClient {
*/
@Override
public <T> Mono<List<State<T>>> getBulkState(String storeName, List<String> keys, TypeRef<T> type) {
return this.getBulkState(new GetBulkStateRequestBuilder(storeName, keys).build(), type).map(r -> r.getObject());
return this.getBulkState(new GetBulkStateRequestBuilder(storeName, keys).build(), type);
}
/**
@ -386,7 +386,7 @@ abstract class AbstractDaprClient implements DaprClient {
GetSecretRequest request = new GetSecretRequestBuilder(storeName, key)
.withMetadata(metadata)
.build();
return getSecret(request).map(r -> r.getObject() == null ? new HashMap<>() : r.getObject());
return getSecret(request).defaultIfEmpty(Collections.emptyMap());
}
/**
@ -413,7 +413,7 @@ abstract class AbstractDaprClient implements DaprClient {
GetBulkSecretRequest request = new GetBulkSecretRequestBuilder(storeName)
.withMetadata(metadata)
.build();
return this.getBulkSecret(request).map(r -> r.getObject() == null ? Collections.EMPTY_MAP : r.getObject());
return this.getBulkSecret(request).defaultIfEmpty(Collections.emptyMap());
}
}

View File

@ -15,7 +15,6 @@ import io.dapr.client.domain.HttpExtension;
import io.dapr.client.domain.InvokeBindingRequest;
import io.dapr.client.domain.InvokeMethodRequest;
import io.dapr.client.domain.PublishEventRequest;
import io.dapr.client.domain.Response;
import io.dapr.client.domain.SaveStateRequest;
import io.dapr.client.domain.State;
import io.dapr.client.domain.StateOptions;
@ -67,7 +66,7 @@ public interface DaprClient extends AutoCloseable {
* @param request the request for the publish event.
* @return a Mono plan of a Dapr's void response.
*/
Mono<Response<Void>> publishEvent(PublishEventRequest request);
Mono<Void> publishEvent(PublishEventRequest request);
/**
* Invoke a service method, using serialization.
@ -221,7 +220,7 @@ public interface DaprClient extends AutoCloseable {
* @param <T> The Type of the return, use byte[] to skip serialization.
* @return A Mono Plan of type T.
*/
<T> Mono<Response<T>> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type);
<T> Mono<T> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type);
/**
* Invokes a Binding operation.
@ -304,7 +303,7 @@ public interface DaprClient extends AutoCloseable {
* @param <T> The type of the return
* @return a Mono plan of type T.
*/
<T> Mono<Response<T>> invokeBinding(InvokeBindingRequest request, TypeRef<T> type);
<T> Mono<T> invokeBinding(InvokeBindingRequest request, TypeRef<T> type);
/**
* Retrieve a State based on their key.
@ -382,7 +381,7 @@ public interface DaprClient extends AutoCloseable {
* @param <T> The Type of the return.
* @return A Mono Plan for the requested State.
*/
<T> Mono<Response<State<T>>> getState(GetStateRequest request, TypeRef<T> type);
<T> Mono<State<T>> getState(GetStateRequest request, TypeRef<T> type);
/**
* Retrieve bulk States based on their keys.
@ -414,7 +413,7 @@ public interface DaprClient extends AutoCloseable {
* @param <T> The Type of the return.
* @return A Mono Plan for the requested State.
*/
<T> Mono<Response<List<State<T>>>> getBulkState(GetBulkStateRequest request, TypeRef<T> type);
<T> Mono<List<State<T>>> getBulkState(GetBulkStateRequest request, TypeRef<T> type);
/** Execute a transaction.
*
@ -431,7 +430,7 @@ public interface DaprClient extends AutoCloseable {
* @param request Request to execute transaction.
* @return a Mono plan of type Response Void
*/
Mono<Response<Void>> executeStateTransaction(ExecuteStateTransactionRequest request);
Mono<Void> executeStateTransaction(ExecuteStateTransactionRequest request);
/**
* Save/Update a list of states.
@ -448,7 +447,7 @@ public interface DaprClient extends AutoCloseable {
* @param request Request to save states.
* @return a Mono plan of type Void.
*/
Mono<Response<Void>> saveBulkState(SaveStateRequest request);
Mono<Void> saveBulkState(SaveStateRequest request);
/**
* Save/Update a state.
@ -498,7 +497,7 @@ public interface DaprClient extends AutoCloseable {
* @param request Request to delete a state.
* @return a Mono plan of type Void.
*/
Mono<Response<Void>> deleteState(DeleteStateRequest request);
Mono<Void> deleteState(DeleteStateRequest request);
/**
* Fetches a secret from the configured vault.
@ -525,7 +524,7 @@ public interface DaprClient extends AutoCloseable {
* @param request Request to fetch secret.
* @return Key-value pairs for the secret.
*/
Mono<Response<Map<String, String>>> getSecret(GetSecretRequest request);
Mono<Map<String, String>> getSecret(GetSecretRequest request);
/**
* Fetches all secrets from the configured vault.
@ -550,5 +549,5 @@ public interface DaprClient extends AutoCloseable {
* @param request Request to fetch secret.
* @return Key-value pairs for the secret.
*/
Mono<Response<Map<String, Map<String, String>>>> getBulkSecret(GetBulkSecretRequest request);
Mono<Map<String, Map<String, String>>> getBulkSecret(GetBulkSecretRequest request);
}

View File

@ -19,7 +19,6 @@ import io.dapr.client.domain.HttpExtension;
import io.dapr.client.domain.InvokeBindingRequest;
import io.dapr.client.domain.InvokeMethodRequest;
import io.dapr.client.domain.PublishEventRequest;
import io.dapr.client.domain.Response;
import io.dapr.client.domain.SaveStateRequest;
import io.dapr.client.domain.State;
import io.dapr.client.domain.StateOptions;
@ -132,12 +131,11 @@ public class DaprClientGrpc extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> publishEvent(PublishEventRequest request) {
public Mono<Void> publishEvent(PublishEventRequest request) {
try {
String pubsubName = request.getPubsubName();
String topic = request.getTopic();
Object data = request.getData();
Context context = request.getContext();
DaprProtos.PublishEventRequest.Builder envelopeBuilder = DaprProtos.PublishEventRequest.newBuilder()
.setTopic(topic)
.setPubsubName(pubsubName)
@ -148,8 +146,12 @@ public class DaprClientGrpc extends AbstractDaprClient {
envelopeBuilder.putAllMetadata(metadata);
}
return this.<Empty>createMono(it -> intercept(context, asyncStub).publishEvent(envelopeBuilder.build(), it))
.thenReturn(new Response<>(context, null));
return Mono.subscriberContext().flatMap(
context ->
this.<Empty>createMono(
it -> intercept(context, asyncStub).publishEvent(envelopeBuilder.build(), it)
)
).then();
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -159,13 +161,12 @@ public class DaprClientGrpc extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<T>> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type) {
public <T> Mono<T> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type) {
try {
String appId = invokeMethodRequest.getAppId();
String method = invokeMethodRequest.getMethod();
Object body = invokeMethodRequest.getBody();
HttpExtension httpExtension = invokeMethodRequest.getHttpExtension();
Context context = invokeMethodRequest.getContext();
DaprProtos.InvokeServiceRequest envelope = buildInvokeServiceRequest(
httpExtension,
appId,
@ -175,9 +176,11 @@ public class DaprClientGrpc extends AbstractDaprClient {
// gRPC to gRPC does not handle metadata in Dapr runtime proto.
// gRPC to HTTP does not map correctly in Dapr runtime as per https://github.com/dapr/dapr/issues/2342
return this.<CommonProtos
.InvokeResponse>createMono(it -> intercept(context, asyncStub).invokeService(envelope, it))
.flatMap(
return Mono.subscriberContext().flatMap(
context -> this.<CommonProtos.InvokeResponse>createMono(
it -> intercept(context, asyncStub).invokeService(envelope, it)
)
).flatMap(
it -> {
try {
return Mono.justOrEmpty(objectSerializer.deserialize(it.getData().getValue().toByteArray(), type));
@ -185,7 +188,7 @@ public class DaprClientGrpc extends AbstractDaprClient {
throw DaprException.propagate(e);
}
}
).map(r -> new Response<>(context, r));
);
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -195,13 +198,12 @@ public class DaprClientGrpc extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<T>> invokeBinding(InvokeBindingRequest request, TypeRef<T> type) {
public <T> Mono<T> invokeBinding(InvokeBindingRequest request, TypeRef<T> type) {
try {
final String name = request.getName();
final String operation = request.getOperation();
final Object data = request.getData();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if (name == null || name.trim().isEmpty()) {
throw new IllegalArgumentException("Binding name cannot be null or empty.");
}
@ -221,9 +223,11 @@ public class DaprClientGrpc extends AbstractDaprClient {
}
DaprProtos.InvokeBindingRequest envelope = builder.build();
return this.<DaprProtos.InvokeBindingResponse>createMono(it -> intercept(context, asyncStub)
.invokeBinding(envelope, it))
.flatMap(
return Mono.subscriberContext().flatMap(
context -> this.<DaprProtos.InvokeBindingResponse>createMono(
it -> intercept(context, asyncStub).invokeBinding(envelope, it)
)
).flatMap(
it -> {
try {
return Mono.justOrEmpty(objectSerializer.deserialize(it.getData().toByteArray(), type));
@ -231,7 +235,7 @@ public class DaprClientGrpc extends AbstractDaprClient {
throw DaprException.propagate(e);
}
}
).map(r -> new Response<>(context, r));
);
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -241,13 +245,12 @@ public class DaprClientGrpc extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<State<T>>> getState(GetStateRequest request, TypeRef<T> type) {
public <T> Mono<State<T>> getState(GetStateRequest request, TypeRef<T> type) {
try {
final String stateStoreName = request.getStoreName();
final String key = request.getKey();
final StateOptions options = request.getStateOptions();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
@ -267,16 +270,20 @@ public class DaprClientGrpc extends AbstractDaprClient {
DaprProtos.GetStateRequest envelope = builder.build();
return this.<DaprProtos.GetStateResponse>createMono(it -> intercept(context, asyncStub).getState(envelope, it))
.map(
it -> {
try {
return buildStateKeyValue(it, key, options, type);
} catch (IOException ex) {
throw DaprException.propagate(ex);
}
}
).map(s -> new Response<>(context, s));
return Mono.subscriberContext().flatMap(
context ->
this.<DaprProtos.GetStateResponse>createMono(
it -> intercept(context, asyncStub).getState(envelope, it)
)
).map(
it -> {
try {
return buildStateKeyValue(it, key, options, type);
} catch (IOException ex) {
throw DaprException.propagate(ex);
}
}
);
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -286,13 +293,12 @@ public class DaprClientGrpc extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<List<State<T>>>> getBulkState(GetBulkStateRequest request, TypeRef<T> type) {
public <T> Mono<List<State<T>>> getBulkState(GetBulkStateRequest request, TypeRef<T> type) {
try {
final String stateStoreName = request.getStoreName();
final List<String> keys = request.getKeys();
final int parallelism = request.getParallelism();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
}
@ -313,9 +319,11 @@ public class DaprClientGrpc extends AbstractDaprClient {
DaprProtos.GetBulkStateRequest envelope = builder.build();
return this.<DaprProtos.GetBulkStateResponse>createMono(it -> intercept(context, asyncStub)
.getBulkState(envelope, it))
.map(
return Mono.subscriberContext().flatMap(
context -> this.<DaprProtos.GetBulkStateResponse>createMono(it -> intercept(context, asyncStub)
.getBulkState(envelope, it)
)
).map(
it ->
it
.getItemsList()
@ -328,7 +336,7 @@ public class DaprClientGrpc extends AbstractDaprClient {
}
})
.collect(Collectors.toList())
).map(s -> new Response<>(context, s));
);
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -372,12 +380,11 @@ public class DaprClientGrpc extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> executeStateTransaction(ExecuteStateTransactionRequest request) {
public Mono<Void> executeStateTransaction(ExecuteStateTransactionRequest request) {
try {
final String stateStoreName = request.getStateStoreName();
final List<TransactionalStateOperation<?>> operations = request.getOperations();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
}
@ -396,8 +403,9 @@ public class DaprClientGrpc extends AbstractDaprClient {
}
DaprProtos.ExecuteStateTransactionRequest req = builder.build();
return this.<Empty>createMono(it -> intercept(context, asyncStub).executeStateTransaction(req, it))
.thenReturn(new Response<>(context, null));
return Mono.subscriberContext().flatMap(
context -> this.<Empty>createMono(it -> intercept(context, asyncStub).executeStateTransaction(req, it))
).then();
} catch (Exception e) {
return DaprException.wrapMono(e);
}
@ -407,11 +415,10 @@ public class DaprClientGrpc extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> saveBulkState(SaveStateRequest request) {
public Mono<Void> saveBulkState(SaveStateRequest request) {
try {
final String stateStoreName = request.getStoreName();
final List<State<?>> states = request.getStates();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
}
@ -422,8 +429,9 @@ public class DaprClientGrpc extends AbstractDaprClient {
}
DaprProtos.SaveStateRequest req = builder.build();
return this.<Empty>createMono(it -> intercept(context, asyncStub).saveState(req, it))
.thenReturn(new Response<>(context, null));
return Mono.subscriberContext().flatMap(
context -> this.<Empty>createMono(it -> intercept(context, asyncStub).saveState(req, it))
).then();
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -464,14 +472,13 @@ public class DaprClientGrpc extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> deleteState(DeleteStateRequest request) {
public Mono<Void> deleteState(DeleteStateRequest request) {
try {
final String stateStoreName = request.getStateStoreName();
final String key = request.getKey();
final StateOptions options = request.getStateOptions();
final String etag = request.getEtag();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
@ -506,8 +513,9 @@ public class DaprClientGrpc extends AbstractDaprClient {
DaprProtos.DeleteStateRequest req = builder.build();
return this.<Empty>createMono(it -> intercept(context, asyncStub).deleteState(req, it))
.thenReturn(new Response<>(context, null));
return Mono.subscriberContext().flatMap(
context -> this.<Empty>createMono(it -> intercept(context, asyncStub).deleteState(req, it))
).then();
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -558,11 +566,10 @@ public class DaprClientGrpc extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Map<String, String>>> getSecret(GetSecretRequest request) {
public Mono<Map<String, String>> getSecret(GetSecretRequest request) {
String secretStoreName = request.getStoreName();
String key = request.getKey();
Map<String, String> metadata = request.getMetadata();
Context context = request.getContext();
try {
if ((secretStoreName == null) || (secretStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("Secret store name cannot be null or empty.");
@ -583,19 +590,19 @@ public class DaprClientGrpc extends AbstractDaprClient {
}
DaprProtos.GetSecretRequest req = requestBuilder.build();
return this.<DaprProtos.GetSecretResponse>createMono(it -> intercept(context, asyncStub).getSecret(req, it))
.map(it -> new Response<>(context, it.getDataMap()));
return Mono.subscriberContext().flatMap(
context -> this.<DaprProtos.GetSecretResponse>createMono(it -> intercept(context, asyncStub).getSecret(req, it))
).map(DaprProtos.GetSecretResponse::getDataMap);
}
/**
* {@inheritDoc}
*/
@Override
public Mono<Response<Map<String, Map<String, String>>>> getBulkSecret(GetBulkSecretRequest request) {
public Mono<Map<String, Map<String, String>>> getBulkSecret(GetBulkSecretRequest request) {
try {
final String storeName = request.getStoreName();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if ((storeName == null) || (storeName.trim().isEmpty())) {
throw new IllegalArgumentException("Secret store name cannot be null or empty.");
}
@ -608,19 +615,21 @@ public class DaprClientGrpc extends AbstractDaprClient {
DaprProtos.GetBulkSecretRequest envelope = builder.build();
return this.<DaprProtos.GetBulkSecretResponse>createMono(it -> intercept(context, asyncStub)
.getBulkSecret(envelope, it))
.map(it -> {
Map<String, DaprProtos.SecretResponse> secretsMap = it.getDataMap();
if (secretsMap == null) {
return Collections.EMPTY_MAP;
}
return secretsMap
.entrySet()
.stream()
.collect(Collectors.toMap(s -> s.getKey(), s -> s.getValue().getSecretsMap()));
})
.map(s -> new Response<>(context, s));
return Mono.subscriberContext().flatMap(
context ->
this.<DaprProtos.GetBulkSecretResponse>createMono(
it -> intercept(context, asyncStub).getBulkSecret(envelope, it)
)
).map(it -> {
Map<String, DaprProtos.SecretResponse> secretsMap = it.getDataMap();
if (secretsMap == null) {
return Collections.emptyMap();
}
return secretsMap
.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey, s -> s.getValue().getSecretsMap()));
});
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}

View File

@ -17,7 +17,6 @@ import io.dapr.client.domain.HttpExtension;
import io.dapr.client.domain.InvokeBindingRequest;
import io.dapr.client.domain.InvokeMethodRequest;
import io.dapr.client.domain.PublishEventRequest;
import io.dapr.client.domain.Response;
import io.dapr.client.domain.SaveStateRequest;
import io.dapr.client.domain.State;
import io.dapr.client.domain.StateOptions;
@ -127,13 +126,12 @@ public class DaprClientHttp extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> publishEvent(PublishEventRequest request) {
public Mono<Void> publishEvent(PublishEventRequest request) {
try {
String pubsubName = request.getPubsubName();
String topic = request.getTopic();
Object data = request.getData();
Map<String, String> metadata = request.getMetadata();
Context context = request.getContext();
if (topic == null || topic.trim().isEmpty()) {
throw new IllegalArgumentException("Topic name cannot be null or empty.");
@ -145,9 +143,11 @@ public class DaprClientHttp extends AbstractDaprClient {
String[] pathSegments = new String[]{ DaprHttp.API_VERSION, "publish", pubsubName, topic };
Map<String, String> queryArgs = metadataToQueryArgs(metadata);
return this.client.invokeApi(
DaprHttp.HttpMethods.POST.name(), pathSegments, queryArgs, serializedEvent, headers, context)
.thenReturn(new Response<>(context, null));
return Mono.subscriberContext().flatMap(
context -> this.client.invokeApi(
DaprHttp.HttpMethods.POST.name(), pathSegments, queryArgs, serializedEvent, headers, context
)
).then();
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -156,14 +156,13 @@ public class DaprClientHttp extends AbstractDaprClient {
/**
* {@inheritDoc}
*/
public <T> Mono<Response<T>> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type) {
public <T> Mono<T> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type) {
try {
final String appId = invokeMethodRequest.getAppId();
final String method = invokeMethodRequest.getMethod();
final Object request = invokeMethodRequest.getBody();
final HttpExtension httpExtension = invokeMethodRequest.getHttpExtension();
final String contentType = invokeMethodRequest.getContentType();
final Context context = invokeMethodRequest.getContext();
if (httpExtension == null) {
throw new IllegalArgumentException("HttpExtension cannot be null. Use HttpExtension.NONE instead.");
}
@ -184,9 +183,11 @@ public class DaprClientHttp extends AbstractDaprClient {
headers.put("content-type", contentType);
}
headers.putAll(httpExtension.getHeaders());
Mono<DaprHttp.Response> response = this.client.invokeApi(httpMethod, pathSegments,
httpExtension.getQueryString(), serializedRequestBody, headers, context);
return response.flatMap(r -> getMono(type, r)).map(r -> new Response<>(context, r));
Mono<DaprHttp.Response> response = Mono.subscriberContext().flatMap(
context -> this.client.invokeApi(httpMethod, pathSegments,
httpExtension.getQueryString(), serializedRequestBody, headers, context)
);
return response.flatMap(r -> getMono(type, r));
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -209,13 +210,12 @@ public class DaprClientHttp extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<T>> invokeBinding(InvokeBindingRequest request, TypeRef<T> type) {
public <T> Mono<T> invokeBinding(InvokeBindingRequest request, TypeRef<T> type) {
try {
final String name = request.getName();
final String operation = request.getOperation();
final Object data = request.getData();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if (name == null || name.trim().isEmpty()) {
throw new IllegalArgumentException("Binding name cannot be null or empty.");
}
@ -255,9 +255,11 @@ public class DaprClientHttp extends AbstractDaprClient {
String[] pathSegments = new String[]{ DaprHttp.API_VERSION, "bindings", name };
Mono<DaprHttp.Response> response = this.client.invokeApi(
httpMethod, pathSegments, null, payload, null, context);
return response.flatMap(r -> getMono(type, r)).map(r -> new Response<>(context, r));
Mono<DaprHttp.Response> response = Mono.subscriberContext().flatMap(
context -> this.client.invokeApi(
httpMethod, pathSegments, null, payload, null, context)
);
return response.flatMap(r -> getMono(type, r));
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -267,13 +269,12 @@ public class DaprClientHttp extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<List<State<T>>>> getBulkState(GetBulkStateRequest request, TypeRef<T> type) {
public <T> Mono<List<State<T>>> getBulkState(GetBulkStateRequest request, TypeRef<T> type) {
try {
final String stateStoreName = request.getStoreName();
final List<String> keys = request.getKeys();
final int parallelism = request.getParallelism();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
}
@ -294,16 +295,16 @@ public class DaprClientHttp extends AbstractDaprClient {
String[] pathSegments = new String[]{ DaprHttp.API_VERSION, "state", stateStoreName, "bulk"};
Map<String, String> queryArgs = metadataToQueryArgs(metadata);
return this.client
.invokeApi(DaprHttp.HttpMethods.POST.name(), pathSegments, queryArgs, requestBody, null, context)
.flatMap(s -> {
return Mono.subscriberContext().flatMap(
context -> this.client
.invokeApi(DaprHttp.HttpMethods.POST.name(), pathSegments, queryArgs, requestBody, null, context)
).flatMap(s -> {
try {
return Mono.just(buildStates(s, type));
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
})
.map(r -> new Response<>(context, r));
});
} catch (Exception ex) {
return DaprException.wrapMono(ex);
@ -315,13 +316,12 @@ public class DaprClientHttp extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<State<T>>> getState(GetStateRequest request, TypeRef<T> type) {
public <T> Mono<State<T>> getState(GetStateRequest request, TypeRef<T> type) {
try {
final String stateStoreName = request.getStoreName();
final String key = request.getKey();
final StateOptions options = request.getStateOptions();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
@ -331,7 +331,7 @@ public class DaprClientHttp extends AbstractDaprClient {
}
Map<String, String> optionsMap = Optional.ofNullable(options)
.map(o -> o.getStateOptionsAsMap())
.orElse(Collections.EMPTY_MAP);
.orElse(Collections.emptyMap());
final Map<String, String> queryParams = new HashMap<>();
queryParams.putAll(metadataToQueryArgs(metadata));
@ -339,16 +339,16 @@ public class DaprClientHttp extends AbstractDaprClient {
String[] pathSegments = new String[]{ DaprHttp.API_VERSION, "state", stateStoreName, key};
return this.client
return Mono.subscriberContext().flatMap(
context -> this.client
.invokeApi(DaprHttp.HttpMethods.GET.name(), pathSegments, queryParams, null, context)
.flatMap(s -> {
try {
return Mono.just(buildState(s, key, options, type));
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
})
.map(r -> new Response<>(context, r));
).flatMap(s -> {
try {
return Mono.justOrEmpty(buildState(s, key, options, type));
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
});
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -358,12 +358,11 @@ public class DaprClientHttp extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> executeStateTransaction(ExecuteStateTransactionRequest request) {
public Mono<Void> executeStateTransaction(ExecuteStateTransactionRequest request) {
try {
final String stateStoreName = request.getStateStoreName();
final List<TransactionalStateOperation<?>> operations = request.getOperations();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
}
@ -398,9 +397,11 @@ public class DaprClientHttp extends AbstractDaprClient {
String[] pathSegments = new String[]{ DaprHttp.API_VERSION, "state", stateStoreName, "transaction"};
return this.client.invokeApi(
DaprHttp.HttpMethods.POST.name(), pathSegments, null, serializedOperationBody, null, context)
.thenReturn(new Response<>(context, null));
return Mono.subscriberContext().flatMap(
context -> this.client.invokeApi(
DaprHttp.HttpMethods.POST.name(), pathSegments, null, serializedOperationBody, null, context
)
).then();
} catch (Exception e) {
return DaprException.wrapMono(e);
}
@ -410,11 +411,10 @@ public class DaprClientHttp extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> saveBulkState(SaveStateRequest request) {
public Mono<Void> saveBulkState(SaveStateRequest request) {
try {
final String stateStoreName = request.getStoreName();
final List<State<?>> states = request.getStates();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
}
@ -445,9 +445,10 @@ public class DaprClientHttp extends AbstractDaprClient {
String[] pathSegments = new String[]{ DaprHttp.API_VERSION, "state", stateStoreName};
return this.client.invokeApi(
DaprHttp.HttpMethods.POST.name(), pathSegments, null, serializedStateBody, null, context)
.thenReturn(new Response<>(context, null));
return Mono.subscriberContext().flatMap(
context -> this.client.invokeApi(
DaprHttp.HttpMethods.POST.name(), pathSegments, null, serializedStateBody, null, context)
).then();
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -457,14 +458,13 @@ public class DaprClientHttp extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> deleteState(DeleteStateRequest request) {
public Mono<Void> deleteState(DeleteStateRequest request) {
try {
final String stateStoreName = request.getStateStoreName();
final String key = request.getKey();
final StateOptions options = request.getStateOptions();
final String etag = request.getEtag();
final Map<String, String> metadata = request.getMetadata();
final Context context = request.getContext();
if ((stateStoreName == null) || (stateStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("State store name cannot be null or empty.");
@ -479,7 +479,7 @@ public class DaprClientHttp extends AbstractDaprClient {
Map<String, String> optionsMap = Optional.ofNullable(options)
.map(stateOptions -> stateOptions.getStateOptionsAsMap())
.orElse(Collections.EMPTY_MAP);
.orElse(Collections.emptyMap());
final Map<String, String> queryParams = new HashMap<>();
queryParams.putAll(metadataToQueryArgs(metadata));
@ -487,9 +487,10 @@ public class DaprClientHttp extends AbstractDaprClient {
String[] pathSegments = new String[]{ DaprHttp.API_VERSION, "state", stateStoreName, key};
return this.client.invokeApi(
return Mono.subscriberContext().flatMap(
context -> this.client.invokeApi(
DaprHttp.HttpMethods.DELETE.name(), pathSegments, queryParams, headers, context)
.thenReturn(new Response<>(context, null));
).then();
} catch (Exception ex) {
return DaprException.wrapMono(ex);
}
@ -556,11 +557,10 @@ public class DaprClientHttp extends AbstractDaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Map<String, String>>> getSecret(GetSecretRequest request) {
public Mono<Map<String, String>> getSecret(GetSecretRequest request) {
String secretStoreName = request.getStoreName();
String key = request.getKey();
Map<String, String> metadata = request.getMetadata();
Context context = request.getContext();
try {
if ((secretStoreName == null) || (secretStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("Secret store name cannot be null or empty.");
@ -574,9 +574,11 @@ public class DaprClientHttp extends AbstractDaprClient {
Map<String, String> queryArgs = metadataToQueryArgs(metadata);
String[] pathSegments = new String[]{ DaprHttp.API_VERSION, "secrets", secretStoreName, key};
return this.client
.invokeApi(DaprHttp.HttpMethods.GET.name(), pathSegments, queryArgs, (String)null, null, context)
.flatMap(response -> {
return Mono.subscriberContext().flatMap(
context -> this.client
.invokeApi(DaprHttp.HttpMethods.GET.name(), pathSegments, queryArgs, (String)null, null, context)
).flatMap(response -> {
try {
Map m = INTERNAL_SERIALIZER.deserialize(response.getBody(), Map.class);
if (m == null) {
@ -588,18 +590,16 @@ public class DaprClientHttp extends AbstractDaprClient {
return DaprException.wrapMono(e);
}
})
.map(m -> (Map<String, String>)m)
.map(m -> new Response<>(context, m));
.map(m -> (Map<String, String>)m);
}
/**
* {@inheritDoc}
*/
@Override
public Mono<Response<Map<String, Map<String, String>>>> getBulkSecret(GetBulkSecretRequest request) {
public Mono<Map<String, Map<String, String>>> getBulkSecret(GetBulkSecretRequest request) {
String secretStoreName = request.getStoreName();
Map<String, String> metadata = request.getMetadata();
Context context = request.getContext();
try {
if ((secretStoreName == null) || (secretStoreName.trim().isEmpty())) {
throw new IllegalArgumentException("Secret store name cannot be null or empty.");
@ -610,9 +610,11 @@ public class DaprClientHttp extends AbstractDaprClient {
Map<String, String> queryArgs = metadataToQueryArgs(metadata);
String[] pathSegments = new String[]{ DaprHttp.API_VERSION, "secrets", secretStoreName, "bulk"};
return this.client
.invokeApi(DaprHttp.HttpMethods.GET.name(), pathSegments, queryArgs, (String)null, null, context)
.flatMap(response -> {
return Mono.subscriberContext().flatMap(
context -> this.client
.invokeApi(DaprHttp.HttpMethods.GET.name(), pathSegments, queryArgs, (String)null, null, context)
).flatMap(response -> {
try {
Map m = INTERNAL_SERIALIZER.deserialize(response.getBody(), Map.class);
if (m == null) {
@ -624,8 +626,7 @@ public class DaprClientHttp extends AbstractDaprClient {
return DaprException.wrapMono(e);
}
})
.map(m -> (Map<String, Map<String, String>>)m)
.map(m -> new Response<>(context, m));
.map(m -> (Map<String, Map<String, String>>)m);
}
/**

View File

@ -15,7 +15,6 @@ import io.dapr.client.domain.HttpExtension;
import io.dapr.client.domain.InvokeBindingRequest;
import io.dapr.client.domain.InvokeMethodRequest;
import io.dapr.client.domain.PublishEventRequest;
import io.dapr.client.domain.Response;
import io.dapr.client.domain.SaveStateRequest;
import io.dapr.client.domain.State;
import io.dapr.client.domain.StateOptions;
@ -97,7 +96,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> publishEvent(PublishEventRequest request) {
public Mono<Void> publishEvent(PublishEventRequest request) {
return client.publishEvent(request);
}
@ -222,7 +221,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<T>> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type) {
public <T> Mono<T> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type) {
return methodInvocationOverrideClient.invokeMethod(invokeMethodRequest, type);
}
@ -286,7 +285,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<T>> invokeBinding(InvokeBindingRequest request, TypeRef<T> type) {
public <T> Mono<T> invokeBinding(InvokeBindingRequest request, TypeRef<T> type) {
return client.invokeBinding(request, type);
}
@ -342,7 +341,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<State<T>>> getState(GetStateRequest request, TypeRef<T> type) {
public <T> Mono<State<T>> getState(GetStateRequest request, TypeRef<T> type) {
return client.getState(request, type);
}
@ -366,7 +365,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public <T> Mono<Response<List<State<T>>>> getBulkState(GetBulkStateRequest request, TypeRef<T> type) {
public <T> Mono<List<State<T>>> getBulkState(GetBulkStateRequest request, TypeRef<T> type) {
return client.getBulkState(request, type);
}
@ -382,7 +381,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> executeStateTransaction(ExecuteStateTransactionRequest request) {
public Mono<Void> executeStateTransaction(ExecuteStateTransactionRequest request) {
return client.executeStateTransaction(request);
}
@ -398,7 +397,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> saveBulkState(SaveStateRequest request) {
public Mono<Void> saveBulkState(SaveStateRequest request) {
return client.saveBulkState(request);
}
@ -438,7 +437,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Void>> deleteState(DeleteStateRequest request) {
public Mono<Void> deleteState(DeleteStateRequest request) {
return client.deleteState(request);
}
@ -462,7 +461,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Map<String, String>>> getSecret(GetSecretRequest request) {
public Mono<Map<String, String>> getSecret(GetSecretRequest request) {
return client.getSecret(request);
}
@ -486,7 +485,7 @@ class DaprClientProxy implements DaprClient {
* {@inheritDoc}
*/
@Override
public Mono<Response<Map<String, Map<String, String>>>> getBulkSecret(GetBulkSecretRequest request) {
public Mono<Map<String, Map<String, String>>> getBulkSecret(GetBulkSecretRequest request) {
return client.getBulkSecret(request);
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Collections;
import java.util.Map;
@ -25,8 +23,6 @@ public class DeleteStateRequest {
private StateOptions stateOptions;
private Context context;
public String getStateStoreName() {
return stateStoreName;
}
@ -59,14 +55,6 @@ public class DeleteStateRequest {
this.stateOptions = stateOptions;
}
public Context getContext() {
return context;
}
void setContext(Context context) {
this.context = context;
}
public Map<String, String> getMetadata() {
return metadata;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Collections;
import java.util.Map;
@ -25,8 +23,6 @@ public class DeleteStateRequestBuilder {
private StateOptions stateOptions;
private Context context;
public DeleteStateRequestBuilder(String stateStoreName, String key) {
this.stateStoreName = stateStoreName;
this.key = key;
@ -47,11 +43,6 @@ public class DeleteStateRequestBuilder {
return this;
}
public DeleteStateRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
/**
* Builds a request object.
* @return Request object.
@ -63,7 +54,6 @@ public class DeleteStateRequestBuilder {
request.setMetadata(metadata);
request.setEtag(this.etag);
request.setStateOptions(this.stateOptions);
request.setContext(this.context);
return request;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.List;
import java.util.Map;
@ -27,19 +25,12 @@ public class ExecuteStateTransactionRequest {
*/
private final Map<String, String> metadata;
/**
* Context to be passed on in the call.
*/
private final Context context;
ExecuteStateTransactionRequest(String stateStoreName,
List<TransactionalStateOperation<?>> operations,
Map<String, String> metadata,
Context context) {
Map<String, String> metadata) {
this.stateStoreName = stateStoreName;
this.operations = operations;
this.metadata = metadata;
this.context = context;
}
public String getStateStoreName() {
@ -53,8 +44,4 @@ public class ExecuteStateTransactionRequest {
public Map<String, String> getMetadata() {
return metadata;
}
public Context getContext() {
return context;
}
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -16,7 +14,6 @@ public final class ExecuteStateTransactionRequestBuilder {
private final String storeName;
private List<TransactionalStateOperation<?>> transactionalStates;
private Map<String, String> metadata;
private Context context;
public ExecuteStateTransactionRequestBuilder(String storeName) {
this.storeName = storeName;
@ -39,12 +36,7 @@ public final class ExecuteStateTransactionRequestBuilder {
return this;
}
public ExecuteStateTransactionRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
public ExecuteStateTransactionRequest build() {
return new ExecuteStateTransactionRequest(storeName, transactionalStates, metadata, context);
return new ExecuteStateTransactionRequest(storeName, transactionalStates, metadata);
}
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Map;
/**
@ -18,8 +16,6 @@ public class GetBulkSecretRequest {
private Map<String, String> metadata;
private Context context;
public String getStoreName() {
return storeName;
}
@ -35,12 +31,4 @@ public class GetBulkSecretRequest {
void setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
}
public Context getContext() {
return context;
}
void setContext(Context context) {
this.context = context;
}
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Collections;
import java.util.Map;
@ -19,8 +17,6 @@ public class GetBulkSecretRequestBuilder {
private Map<String, String> metadata;
private Context context;
public GetBulkSecretRequestBuilder(String storeName) {
this.storeName = storeName;
}
@ -30,11 +26,6 @@ public class GetBulkSecretRequestBuilder {
return this;
}
public GetBulkSecretRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
/**
* Builds a request object.
* @return Request object.
@ -43,7 +34,6 @@ public class GetBulkSecretRequestBuilder {
GetBulkSecretRequest request = new GetBulkSecretRequest();
request.setStoreName(this.storeName);
request.setMetadata(this.metadata);
request.setContext(this.context);
return request;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.List;
import java.util.Map;
@ -23,8 +21,6 @@ public class GetBulkStateRequest {
private int parallelism;
private Context context;
public String getStoreName() {
return storeName;
}
@ -49,14 +45,6 @@ public class GetBulkStateRequest {
this.parallelism = parallelism;
}
public Context getContext() {
return context;
}
void setContext(Context context) {
this.context = context;
}
public Map<String, String> getMetadata() {
return metadata;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -25,8 +23,6 @@ public class GetBulkStateRequestBuilder {
private int parallelism = 1;
private Context context;
public GetBulkStateRequestBuilder(String storeName, List<String> keys) {
this.storeName = storeName;
this.keys = keys == null ? null : Collections.unmodifiableList(keys);
@ -47,11 +43,6 @@ public class GetBulkStateRequestBuilder {
return this;
}
public GetBulkStateRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
/**
* Builds a request object.
* @return Request object.
@ -62,7 +53,6 @@ public class GetBulkStateRequestBuilder {
request.setKeys(this.keys);
request.setMetadata(this.metadata);
request.setParallelism(this.parallelism);
request.setContext(this.context);
return request;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Map;
/**
@ -20,8 +18,6 @@ public class GetSecretRequest {
private Map<String, String> metadata;
private Context context;
public String getStoreName() {
return storeName;
}
@ -45,12 +41,4 @@ public class GetSecretRequest {
void setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
}
public Context getContext() {
return context;
}
void setContext(Context context) {
this.context = context;
}
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Collections;
import java.util.Map;
@ -21,8 +19,6 @@ public class GetSecretRequestBuilder {
private Map<String, String> metadata;
private Context context;
public GetSecretRequestBuilder(String storeName, String key) {
this.storeName = storeName;
this.key = key;
@ -33,11 +29,6 @@ public class GetSecretRequestBuilder {
return this;
}
public GetSecretRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
/**
* Builds a request object.
* @return Request object.
@ -47,7 +38,6 @@ public class GetSecretRequestBuilder {
request.setStoreName(this.storeName);
request.setKey(this.key);
request.setMetadata(this.metadata);
request.setContext(this.context);
return request;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Collections;
import java.util.Map;
@ -23,8 +21,6 @@ public class GetStateRequest {
private StateOptions stateOptions;
private Context context;
public String getStoreName() {
return storeName;
}
@ -49,14 +45,6 @@ public class GetStateRequest {
this.stateOptions = stateOptions;
}
public Context getContext() {
return context;
}
void setContext(Context context) {
this.context = context;
}
public Map<String, String> getMetadata() {
return metadata;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Collections;
import java.util.Map;
@ -23,8 +21,6 @@ public class GetStateRequestBuilder {
private StateOptions stateOptions;
private Context context;
public GetStateRequestBuilder(String storeName, String key) {
this.storeName = storeName;
this.key = key;
@ -40,11 +36,6 @@ public class GetStateRequestBuilder {
return this;
}
public GetStateRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
/**
* Builds a request object.
* @return Request object.
@ -55,7 +46,6 @@ public class GetStateRequestBuilder {
request.setKey(this.key);
request.setMetadata(this.metadata);
request.setStateOptions(this.stateOptions);
request.setContext(this.context);
return request;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Map;
/**
@ -22,8 +20,6 @@ public class InvokeBindingRequest {
private Map<String, String> metadata;
private Context context;
public String getName() {
return name;
}
@ -55,12 +51,4 @@ public class InvokeBindingRequest {
void setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
}
public Context getContext() {
return context;
}
void setContext(Context context) {
this.context = context;
}
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@ -24,8 +22,6 @@ public class InvokeBindingRequestBuilder {
private Map<String, String> metadata = new HashMap<>();
private Context context;
public InvokeBindingRequestBuilder(String name, String operation) {
this.name = name;
this.operation = operation;
@ -41,11 +37,6 @@ public class InvokeBindingRequestBuilder {
return this;
}
public InvokeBindingRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
/**
* Builds a request object.
* @return Request object.
@ -56,7 +47,6 @@ public class InvokeBindingRequestBuilder {
request.setOperation(this.operation);
request.setData(this.data);
request.setMetadata(this.metadata);
request.setContext(this.context);
return request;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
/**
* A request to invoke a service.
*/
@ -20,8 +18,6 @@ public class InvokeMethodRequest {
private HttpExtension httpExtension;
private Context context;
private String contentType;
public String getAppId() {
@ -56,14 +52,6 @@ public class InvokeMethodRequest {
this.httpExtension = httpExtension;
}
public Context getContext() {
return context;
}
void setContext(Context context) {
this.context = context;
}
public String getContentType() {
return contentType;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
/**
* Builds a request to invoke a service.
*/
@ -22,8 +20,6 @@ public class InvokeMethodRequestBuilder {
private HttpExtension httpExtension = HttpExtension.NONE;
private Context context;
public InvokeMethodRequestBuilder(String appId, String method) {
this.appId = appId;
this.method = method;
@ -44,11 +40,6 @@ public class InvokeMethodRequestBuilder {
return this;
}
public InvokeMethodRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
/**
* Builds a request object.
* @return Request object.
@ -60,7 +51,6 @@ public class InvokeMethodRequestBuilder {
request.setMethod(this.method);
request.setBody(this.body);
request.setHttpExtension(this.httpExtension);
request.setContext(this.context);
return request;
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Map;
/**
@ -22,8 +20,6 @@ public class PublishEventRequest {
private Map<String, String> metadata;
private Context context;
public String getPubsubName() {
return pubsubName;
}
@ -55,12 +51,4 @@ public class PublishEventRequest {
void setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
}
public Context getContext() {
return context;
}
void setContext(Context context) {
this.context = context;
}
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@ -24,8 +22,6 @@ public class PublishEventRequestBuilder {
private Map<String, String> metadata = new HashMap<>();
private Context context;
/**
* Instantiates a builder for a publish request.
* @param pubsubName Name of the Dapr PubSub.
@ -43,11 +39,6 @@ public class PublishEventRequestBuilder {
return this;
}
public PublishEventRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
/**
* Builds a request object.
* @return Request object.
@ -58,7 +49,6 @@ public class PublishEventRequestBuilder {
request.setTopic(this.topic);
request.setData(this.data);
request.setMetadata(this.metadata);
request.setContext(this.context);
return request;
}

View File

@ -1,32 +0,0 @@
/*
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
package io.dapr.client.domain;
import reactor.util.context.Context;
/**
* A Dapr Response.
*/
public class Response<T> {
private final Context context;
private final T object;
public Response(Context context, T object) {
this.context = context;
this.object = object;
}
public Context getContext() {
return this.context;
}
public T getObject() {
return this.object;
}
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.List;
/**
@ -18,8 +16,6 @@ public class SaveStateRequest {
private List<State<?>> states;
private Context context;
public String getStoreName() {
return storeName;
}
@ -35,12 +31,4 @@ public class SaveStateRequest {
void setStates(List<State<?>> states) {
this.states = states;
}
public Context getContext() {
return context;
}
void setContext(Context context) {
this.context = context;
}
}

View File

@ -5,8 +5,6 @@
package io.dapr.client.domain;
import reactor.util.context.Context;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@ -21,8 +19,6 @@ public class SaveStateRequestBuilder {
private List<State<?>> states = new ArrayList<>();
private Context context;
public SaveStateRequestBuilder(String storeName) {
this.storeName = storeName;
}
@ -37,11 +33,6 @@ public class SaveStateRequestBuilder {
return this;
}
public SaveStateRequestBuilder withContext(Context context) {
this.context = context;
return this;
}
/**
* Builds a request object.
* @return Request object.
@ -50,7 +41,6 @@ public class SaveStateRequestBuilder {
SaveStateRequest request = new SaveStateRequest();
request.setStoreName(this.storeName);
request.setStates(this.states);
request.setContext(this.context);
return request;
}
}

View File

@ -8,7 +8,6 @@ package io.dapr.client;
import io.dapr.client.domain.HttpExtension;
import io.dapr.client.domain.InvokeMethodRequest;
import io.dapr.client.domain.InvokeMethodRequestBuilder;
import io.dapr.client.domain.Response;
import io.dapr.serializer.DefaultObjectSerializer;
import io.dapr.utils.TypeRef;
import io.dapr.v1.CommonProtos;
@ -178,12 +177,13 @@ public class DaprClientGrpcTelemetryTest {
context = context.put("tracestate", scenario.tracestate);
}
}
final Context contextCopy = context;
InvokeMethodRequest req = new InvokeMethodRequestBuilder("appId", "method")
.withBody("request")
.withHttpExtension(HttpExtension.NONE)
.withContext(context)
.build();
Mono<Response<Void>> result = this.client.invokeMethod(req, TypeRef.get(Void.class));
Mono<Void> result = this.client.invokeMethod(req, TypeRef.get(Void.class))
.subscriberContext(it -> it.putAll(contextCopy == null ? Context.empty() : contextCopy));
result.block();
}

View File

@ -17,7 +17,6 @@ import io.dapr.client.domain.GetBulkStateRequestBuilder;
import io.dapr.client.domain.GetStateRequest;
import io.dapr.client.domain.GetStateRequestBuilder;
import io.dapr.client.domain.HttpExtension;
import io.dapr.client.domain.Response;
import io.dapr.client.domain.State;
import io.dapr.client.domain.StateOptions;
import io.dapr.client.domain.TransactionalStateOperation;
@ -976,10 +975,10 @@ public class DaprClientGrpcTest {
return null;
}).when(daprStub).getState(any(DaprProtos.GetStateRequest.class), any());
Mono<Response<State<MyObject>>> result = client.getState(request, TypeRef.get(MyObject.class));
Response<State<MyObject>> res = result.block();
Mono<State<MyObject>> result = client.getState(request, TypeRef.get(MyObject.class));
State<MyObject> res = result.block();
assertNotNull(res);
assertEquals(expectedState, res.getObject());
assertEquals(expectedState, res);
}
@Test
@ -1324,7 +1323,7 @@ public class DaprClientGrpcTest {
DeleteStateRequestBuilder builder = new DeleteStateRequestBuilder(STATE_STORE_NAME, key);
builder.withEtag(etag).withStateOptions(options).withMetadata(metadata);
DeleteStateRequest request = builder.build();
Mono<Response<Void>> result = client.deleteState(request);
Mono<Void> result = client.deleteState(request);
result.block();
}
@ -1425,7 +1424,7 @@ public class DaprClientGrpcTest {
ExecuteStateTransactionRequest request = new ExecuteStateTransactionRequestBuilder(STATE_STORE_NAME)
.withTransactionalStates(upsertOperation)
.build();
Mono<Response<Void>> result = client.executeStateTransaction(request);
Mono<Void> result = client.executeStateTransaction(request);
assertThrowsDaprException(
IOException.class,
@ -1460,7 +1459,7 @@ public class DaprClientGrpcTest {
.withTransactionalStates(upsertOperation, deleteOperation)
.withMetadata(metadata)
.build();
Mono<Response<Void>> result = client.executeStateTransaction(request);
Mono<Void> result = client.executeStateTransaction(request);
result.block();
}

View File

@ -9,7 +9,6 @@ import io.dapr.client.domain.DeleteStateRequestBuilder;
import io.dapr.client.domain.GetBulkStateRequestBuilder;
import io.dapr.client.domain.GetStateRequestBuilder;
import io.dapr.client.domain.HttpExtension;
import io.dapr.client.domain.Response;
import io.dapr.client.domain.State;
import io.dapr.client.domain.StateOptions;
import io.dapr.client.domain.TransactionalStateOperation;
@ -711,8 +710,8 @@ public class DaprClientHttpTest {
GetStateRequestBuilder builder = new GetStateRequestBuilder(STATE_STORE_NAME, "key");
builder.withMetadata(metadata);
Mono<Response<State<String>>> monoMetadata = daprClientHttp.getState(builder.build(), TypeRef.get(String.class));
assertEquals(monoMetadata.block().getObject().getKey(), "key");
Mono<State<String>> monoMetadata = daprClientHttp.getState(builder.build(), TypeRef.get(String.class));
assertEquals(monoMetadata.block().getKey(), "key");
}
@Test
@ -970,8 +969,8 @@ public class DaprClientHttpTest {
DeleteStateRequestBuilder builder = new DeleteStateRequestBuilder(STATE_STORE_NAME, stateKeyValue.getKey());
builder.withMetadata(metadata).withEtag(stateKeyValue.getEtag()).withStateOptions(stateOptions);
Mono<Response<Void>> monoMetadata = daprClientHttp.deleteState(builder.build());
assertNull(monoMetadata.block().getObject());
Mono<Void> monoMetadata = daprClientHttp.deleteState(builder.build());
assertNull(monoMetadata.block());
}
@Test