Skip to content

Commit 12d8c7a

Browse files
javier-aliagasiri-varmasalaboycicoyledapr-bot
authored
chore: Deprecate invoke methods (#1666)
* chore: Deprecate invoke methods Signed-off-by: Javier Aliaga <javier@diagrid.io> * chore: Deprecate invoke methods Signed-off-by: Javier Aliaga <javier@diagrid.io> * chore: Deprecate invoke methods Signed-off-by: Javier Aliaga <javier@diagrid.io> * chore: Change examples Signed-off-by: Javier Aliaga <javier@diagrid.io> --------- Signed-off-by: Javier Aliaga <javier@diagrid.io> Co-authored-by: Siri Varma Vegiraju <siri.varma@outlook.com> Co-authored-by: salaboy <Salaboy@gmail.com> Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
1 parent 5ee71c0 commit 12d8c7a

10 files changed

Lines changed: 142 additions & 46 deletions

File tree

examples/src/main/java/io/dapr/examples/tracing/InvokeClient.java

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,21 @@
1313

1414
package io.dapr.examples.tracing;
1515

16-
import io.dapr.client.DaprClient;
17-
import io.dapr.client.DaprClientBuilder;
18-
import io.dapr.client.domain.HttpExtension;
19-
import io.dapr.client.domain.InvokeMethodRequest;
16+
import io.dapr.config.Properties;
2017
import io.dapr.examples.OpenTelemetryConfig;
21-
import io.dapr.utils.TypeRef;
18+
import io.opentelemetry.api.GlobalOpenTelemetry;
2219
import io.opentelemetry.api.trace.Span;
2320
import io.opentelemetry.api.trace.SpanKind;
2421
import io.opentelemetry.api.trace.Tracer;
22+
import io.opentelemetry.context.Context;
2523
import io.opentelemetry.context.Scope;
24+
import io.opentelemetry.context.propagation.TextMapSetter;
2625
import io.opentelemetry.sdk.OpenTelemetrySdk;
2726

28-
import static io.dapr.examples.OpenTelemetryConfig.getReactorContext;
27+
import java.net.URI;
28+
import java.net.http.HttpClient;
29+
import java.net.http.HttpRequest;
30+
import java.net.http.HttpResponse;
2931

3032
/**
3133
* 1. Build and install jars:
@@ -52,30 +54,50 @@ public static void main(String[] args) throws Exception {
5254
Tracer tracer = openTelemetrySdk.getTracer(InvokeClient.class.getCanonicalName());
5355
Span span = tracer.spanBuilder("Example's Main").setSpanKind(SpanKind.CLIENT).startSpan();
5456

55-
try (DaprClient client = (new DaprClientBuilder()).build()) {
56-
for (String message : args) {
57-
try (Scope scope = span.makeCurrent()) {
58-
InvokeMethodRequest request = new InvokeMethodRequest(SERVICE_APP_ID, "proxy_echo")
59-
.setBody(message)
60-
.setHttpExtension(HttpExtension.POST);
61-
client.invokeMethod(request, TypeRef.get(byte[].class))
62-
.map(r -> {
63-
System.out.println(new String(r));
64-
return r;
65-
})
66-
.flatMap(r -> {
67-
InvokeMethodRequest sleepRequest = new InvokeMethodRequest(SERVICE_APP_ID, "proxy_sleep")
68-
.setHttpExtension(HttpExtension.POST);
69-
return client.invokeMethod(sleepRequest, TypeRef.get(Void.class));
70-
}).contextWrite(getReactorContext()).block();
71-
}
57+
int port = Properties.HTTP_PORT.get();
58+
String baseUrl = "http://localhost:" + port + "/v1.0/invoke/" + SERVICE_APP_ID + "/method/";
59+
60+
HttpClient httpClient = HttpClient.newHttpClient();
61+
62+
for (String message : args) {
63+
try (Scope scope = span.makeCurrent()) {
64+
// Call proxy_echo
65+
HttpRequest.Builder echoBuilder = HttpRequest.newBuilder()
66+
.uri(URI.create(baseUrl + "proxy_echo"))
67+
.POST(HttpRequest.BodyPublishers.ofString(message));
68+
injectTraceContext(echoBuilder);
69+
addDaprApiToken(echoBuilder);
70+
HttpResponse<byte[]> echoResponse =
71+
httpClient.send(echoBuilder.build(), HttpResponse.BodyHandlers.ofByteArray());
72+
System.out.println(new String(echoResponse.body()));
73+
74+
// Call proxy_sleep
75+
HttpRequest.Builder sleepBuilder = HttpRequest.newBuilder()
76+
.uri(URI.create(baseUrl + "proxy_sleep"))
77+
.POST(HttpRequest.BodyPublishers.noBody());
78+
injectTraceContext(sleepBuilder);
79+
addDaprApiToken(sleepBuilder);
80+
httpClient.send(sleepBuilder.build(), HttpResponse.BodyHandlers.discarding());
7281
}
82+
}
83+
84+
span.end();
85+
openTelemetrySdk.getSdkTracerProvider().shutdown();
86+
Validation.validate();
87+
System.out.println("Done");
88+
System.exit(0);
89+
}
90+
91+
private static void injectTraceContext(HttpRequest.Builder builder) {
92+
TextMapSetter<HttpRequest.Builder> setter = HttpRequest.Builder::header;
93+
GlobalOpenTelemetry.getPropagators().getTextMapPropagator()
94+
.inject(Context.current(), builder, setter);
95+
}
7396

74-
span.end();
75-
openTelemetrySdk.getSdkTracerProvider().shutdown();
76-
Validation.validate();
77-
System.out.println("Done");
78-
System.exit(0);
97+
private static void addDaprApiToken(HttpRequest.Builder builder) {
98+
String token = Properties.API_TOKEN.get();
99+
if (token != null) {
100+
builder.header("dapr-api-token", token);
79101
}
80102
}
81103
}

examples/src/main/java/io/dapr/examples/tracing/TracingDemoMiddleServiceController.java

Lines changed: 42 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,21 @@
1313

1414
package io.dapr.examples.tracing;
1515

16-
import io.dapr.client.DaprClient;
17-
import io.dapr.client.domain.HttpExtension;
18-
import io.dapr.client.domain.InvokeMethodRequest;
16+
import io.dapr.config.Properties;
1917
import io.dapr.examples.OpenTelemetryInterceptor;
20-
import io.dapr.utils.TypeRef;
18+
import io.opentelemetry.api.GlobalOpenTelemetry;
2119
import io.opentelemetry.context.Context;
22-
import org.springframework.beans.factory.annotation.Autowired;
20+
import io.opentelemetry.context.propagation.TextMapSetter;
2321
import org.springframework.web.bind.annotation.PostMapping;
2422
import org.springframework.web.bind.annotation.RequestAttribute;
2523
import org.springframework.web.bind.annotation.RequestBody;
2624
import org.springframework.web.bind.annotation.RestController;
2725
import reactor.core.publisher.Mono;
2826

29-
import static io.dapr.examples.OpenTelemetryConfig.getReactorContext;
27+
import java.net.URI;
28+
import java.net.http.HttpClient;
29+
import java.net.http.HttpRequest;
30+
import java.net.http.HttpResponse;
3031

3132
/**
3233
* SpringBoot Controller to handle service invocation.
@@ -38,11 +39,7 @@ public class TracingDemoMiddleServiceController {
3839

3940
private static final String INVOKE_APP_ID = "tracingdemo";
4041

41-
/**
42-
* Dapr client.
43-
*/
44-
@Autowired
45-
private DaprClient client;
42+
private static final HttpClient httpClient = HttpClient.newHttpClient();
4643

4744
/**
4845
* Handles the 'echo' method invocation, by proxying a call into another service.
@@ -55,10 +52,14 @@ public class TracingDemoMiddleServiceController {
5552
public Mono<byte[]> echo(
5653
@RequestAttribute(name = "opentelemetry-context") Context context,
5754
@RequestBody(required = false) String body) {
58-
InvokeMethodRequest request = new InvokeMethodRequest(INVOKE_APP_ID, "echo")
59-
.setBody(body)
60-
.setHttpExtension(HttpExtension.POST);
61-
return client.invokeMethod(request, TypeRef.get(byte[].class)).contextWrite(getReactorContext(context));
55+
return Mono.fromFuture(() -> {
56+
HttpRequest.Builder builder = HttpRequest.newBuilder()
57+
.uri(URI.create(buildInvokeUrl("echo")))
58+
.POST(HttpRequest.BodyPublishers.ofString(body != null ? body : ""));
59+
injectTraceContext(builder, context);
60+
addDaprApiToken(builder);
61+
return httpClient.sendAsync(builder.build(), HttpResponse.BodyHandlers.ofByteArray());
62+
}).map(HttpResponse::body);
6263
}
6364

6465
/**
@@ -69,9 +70,32 @@ public Mono<byte[]> echo(
6970
*/
7071
@PostMapping(path = "/proxy_sleep")
7172
public Mono<Void> sleep(@RequestAttribute(name = "opentelemetry-context") Context context) {
72-
InvokeMethodRequest request = new InvokeMethodRequest(INVOKE_APP_ID, "sleep")
73-
.setHttpExtension(HttpExtension.POST);
74-
return client.invokeMethod(request, TypeRef.get(byte[].class)).contextWrite(getReactorContext(context)).then();
73+
return Mono.fromFuture(() -> {
74+
HttpRequest.Builder builder = HttpRequest.newBuilder()
75+
.uri(URI.create(buildInvokeUrl("sleep")))
76+
.POST(HttpRequest.BodyPublishers.noBody());
77+
injectTraceContext(builder, context);
78+
addDaprApiToken(builder);
79+
return httpClient.sendAsync(builder.build(), HttpResponse.BodyHandlers.discarding());
80+
}).then();
81+
}
82+
83+
private static String buildInvokeUrl(String method) {
84+
int port = Properties.HTTP_PORT.get();
85+
return "http://localhost:" + port + "/v1.0/invoke/" + INVOKE_APP_ID + "/method/" + method;
86+
}
87+
88+
private static void injectTraceContext(HttpRequest.Builder builder, Context context) {
89+
TextMapSetter<HttpRequest.Builder> setter = HttpRequest.Builder::header;
90+
GlobalOpenTelemetry.getPropagators().getTextMapPropagator()
91+
.inject(context, builder, setter);
92+
}
93+
94+
private static void addDaprApiToken(HttpRequest.Builder builder) {
95+
String token = Properties.API_TOKEN.get();
96+
if (token != null) {
97+
builder.header("dapr-api-token", token);
98+
}
7599
}
76100

77101
}

sdk-tests/src/test/java/io/dapr/it/methodinvoke/http/MethodInvokeIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static org.junit.jupiter.api.Assertions.assertThrows;
2424
import static org.junit.jupiter.api.Assertions.assertTrue;
2525

26+
@SuppressWarnings("deprecation")
2627
public class MethodInvokeIT extends BaseIT {
2728

2829
//Number of messages to be sent: 10

sdk-tests/src/test/java/io/dapr/it/tracing/grpc/TracingIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static io.dapr.it.tracing.OpenTelemetry.createOpenTelemetry;
2222
import static io.dapr.it.tracing.OpenTelemetry.getReactorContext;
2323

24+
@SuppressWarnings("deprecation")
2425
public class TracingIT extends BaseIT {
2526

2627
/**

sdk-tests/src/test/java/io/dapr/it/tracing/http/TracingIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static io.dapr.it.tracing.OpenTelemetry.createOpenTelemetry;
2020
import static io.dapr.it.tracing.OpenTelemetry.getReactorContext;
2121

22+
@SuppressWarnings("deprecation")
2223
public class TracingIT extends BaseIT {
2324

2425
/**

sdk/src/main/java/io/dapr/client/AbstractDaprClient.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ public Mono<Void> publishEvent(String pubsubName, String topicName, Object data,
116116
* {@inheritDoc}
117117
*/
118118
@Override
119+
@Deprecated
119120
public <T> Mono<T> invokeMethod(
120121
String appId,
121122
String methodName,
@@ -136,6 +137,7 @@ public <T> Mono<T> invokeMethod(
136137
* {@inheritDoc}
137138
*/
138139
@Override
140+
@Deprecated
139141
public <T> Mono<T> invokeMethod(
140142
String appId,
141143
String methodName,
@@ -150,6 +152,7 @@ public <T> Mono<T> invokeMethod(
150152
* {@inheritDoc}
151153
*/
152154
@Override
155+
@Deprecated
153156
public <T> Mono<T> invokeMethod(
154157
String appId, String methodName, HttpExtension httpExtension, Map<String, String> metadata, TypeRef<T> type) {
155158
return this.invokeMethod(appId, methodName, null, httpExtension, metadata, type);
@@ -159,6 +162,7 @@ public <T> Mono<T> invokeMethod(
159162
* {@inheritDoc}
160163
*/
161164
@Override
165+
@Deprecated
162166
public <T> Mono<T> invokeMethod(
163167
String appId, String methodName, HttpExtension httpExtension, Map<String, String> metadata, Class<T> clazz) {
164168
return this.invokeMethod(appId, methodName, null, httpExtension, metadata, TypeRef.get(clazz));
@@ -168,6 +172,7 @@ public <T> Mono<T> invokeMethod(
168172
* {@inheritDoc}
169173
*/
170174
@Override
175+
@Deprecated
171176
public <T> Mono<T> invokeMethod(String appId, String methodName, Object request, HttpExtension httpExtension,
172177
TypeRef<T> type) {
173178
return this.invokeMethod(appId, methodName, request, httpExtension, null, type);
@@ -177,6 +182,7 @@ public <T> Mono<T> invokeMethod(String appId, String methodName, Object request,
177182
* {@inheritDoc}
178183
*/
179184
@Override
185+
@Deprecated
180186
public <T> Mono<T> invokeMethod(String appId, String methodName, Object request, HttpExtension httpExtension,
181187
Class<T> clazz) {
182188
return this.invokeMethod(appId, methodName, request, httpExtension, null, TypeRef.get(clazz));
@@ -186,6 +192,7 @@ public <T> Mono<T> invokeMethod(String appId, String methodName, Object request,
186192
* {@inheritDoc}
187193
*/
188194
@Override
195+
@Deprecated
189196
public Mono<Void> invokeMethod(String appId, String methodName, Object request, HttpExtension httpExtension) {
190197
return this.invokeMethod(appId, methodName, request, httpExtension, null, TypeRef.BYTE_ARRAY).then();
191198
}
@@ -194,6 +201,7 @@ public Mono<Void> invokeMethod(String appId, String methodName, Object request,
194201
* {@inheritDoc}
195202
*/
196203
@Override
204+
@Deprecated
197205
public Mono<Void> invokeMethod(
198206
String appId, String methodName, Object request, HttpExtension httpExtension, Map<String, String> metadata) {
199207
return this.invokeMethod(appId, methodName, request, httpExtension, metadata, TypeRef.BYTE_ARRAY).then();
@@ -203,6 +211,7 @@ public Mono<Void> invokeMethod(
203211
* {@inheritDoc}
204212
*/
205213
@Override
214+
@Deprecated
206215
public Mono<Void> invokeMethod(
207216
String appId, String methodName, HttpExtension httpExtension, Map<String, String> metadata) {
208217
return this.invokeMethod(appId, methodName, null, httpExtension, metadata, TypeRef.BYTE_ARRAY).then();
@@ -212,6 +221,7 @@ public Mono<Void> invokeMethod(
212221
* {@inheritDoc}
213222
*/
214223
@Override
224+
@Deprecated
215225
public Mono<byte[]> invokeMethod(
216226
String appId, String methodName, byte[] request, HttpExtension httpExtension, Map<String, String> metadata) {
217227
return this.invokeMethod(appId, methodName, request, httpExtension, metadata, TypeRef.BYTE_ARRAY);

0 commit comments

Comments
 (0)