Deprecate HTTP client with warning. (#824)

Signed-off-by: Artur Souza <asouza.pro@gmail.com>

Signed-off-by: Artur Souza <asouza.pro@gmail.com>
This commit is contained in:
Artur Souza 2023-01-24 16:50:43 -08:00 committed by GitHub
parent 81591b9f5b
commit beafb5a5b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 30 additions and 4 deletions

View File

@ -21,6 +21,8 @@ import io.dapr.v1.DaprGrpc;
import io.grpc.Channel;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import reactor.core.publisher.Mono;
/**
@ -28,6 +30,8 @@ import reactor.core.publisher.Mono;
*/
public class ActorClient implements AutoCloseable {
private static final Logger LOGGER = LoggerFactory.getLogger(ActorClient.class);
/**
* gRPC channel for communication with Dapr sidecar.
*/
@ -118,7 +122,10 @@ public class ActorClient implements AutoCloseable {
private static DaprClient buildDaprClient(DaprApiProtocol apiProtocol, Channel grpcManagedChannel) {
switch (apiProtocol) {
case GRPC: return new DaprGrpcClient(DaprGrpc.newStub(grpcManagedChannel));
case HTTP: return new DaprHttpClient(new DaprHttpBuilder().build());
case HTTP: {
LOGGER.warn("HTTP client protocol is deprecated and will be removed in Dapr's Java SDK version 1.10.");
return new DaprHttpClient(new DaprHttpBuilder().build());
}
default: throw new IllegalStateException("Unsupported protocol: " + apiProtocol.name());
}
}

View File

@ -18,9 +18,10 @@ import reactor.core.publisher.Mono;
/**
* DaprClient over HTTP for actor client.
*
* @deprecated This class will be deleted at SDK release version 1.10.
* @see DaprHttp
*/
@Deprecated
class DaprHttpClient implements DaprClient {
/**

View File

@ -15,7 +15,9 @@ package io.dapr.client;
/**
* Transport protocol for Dapr's API.
* @deprecated This class will be deleted at SDK version 1.10.
*/
@Deprecated
public enum DaprApiProtocol {
GRPC,

View File

@ -20,6 +20,8 @@ import io.dapr.utils.Version;
import io.dapr.v1.DaprGrpc;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.Closeable;
@ -29,6 +31,8 @@ import java.io.Closeable;
*/
public class DaprClientBuilder {
private static final Logger LOGGER = LoggerFactory.getLogger(DaprClientBuilder.class);
/**
* Determine if this builder will create GRPC clients instead of HTTP clients.
*/
@ -111,6 +115,10 @@ public class DaprClientBuilder {
* @throws java.lang.IllegalStateException if any required field is missing
*/
public DaprClient build() {
if (this.apiProtocol == DaprApiProtocol.HTTP) {
LOGGER.warn("HTTP client protocol is deprecated and will be removed in Dapr's Java SDK version 1.10.");
}
if (this.apiProtocol != this.methodInvocationApiProtocol) {
return new DaprClientProxy(buildDaprClient(this.apiProtocol), buildDaprClient(this.methodInvocationApiProtocol));
}

View File

@ -66,10 +66,11 @@ import java.util.stream.Collectors;
/**
* An adapter for the HTTP Client.
*
* @deprecated This class will be deleted at SDK release version 1.10.
* @see io.dapr.client.DaprHttp
* @see io.dapr.client.DaprClient
*/
@Deprecated
public class DaprClientHttp extends AbstractDaprClient {
/**
* Header for the conditional operation.

View File

@ -37,11 +37,12 @@ import java.util.Map;
/**
* Class that delegates to other implementations.
*
* @deprecated This class will be deleted at SDK release version 1.10.
* @see DaprClient
* @see DaprClientGrpc
* @see DaprClientHttp
*/
@Deprecated
class DaprClientProxy implements DaprClient {
/**

View File

@ -23,7 +23,9 @@ import java.util.concurrent.TimeUnit;
/**
* A builder for the DaprHttp.
* @deprecated Use {@link DaprClientBuilder} instead, this will be removed in a future release.
*/
@Deprecated
public class DaprHttpBuilder {
/**

View File

@ -101,7 +101,9 @@ public class Properties {
/**
* Determines if Dapr client will use gRPC or HTTP to talk to Dapr's side car.
* @deprecated This attribute will be deleted at SDK version 1.10.
*/
@Deprecated
public static final Property<DaprApiProtocol> API_PROTOCOL = new GenericProperty<>(
"dapr.api.protocol",
"DAPR_API_PROTOCOL",
@ -110,7 +112,9 @@ public class Properties {
/**
* Determines if Dapr client should use gRPC or HTTP for Dapr's service method invocation APIs.
* @deprecated This attribute will be deleted at SDK version 1.10.
*/
@Deprecated
public static final Property<DaprApiProtocol> API_METHOD_INVOCATION_PROTOCOL = new GenericProperty<>(
"dapr.api.methodInvocation.protocol",
"DAPR_API_METHOD_INVOCATION_PROTOCOL",