diff --git a/pom.xml b/pom.xml index ee5be6777..b6ed8b67b 100644 --- a/pom.xml +++ b/pom.xml @@ -84,6 +84,7 @@ sdk-autogen sdk + sdk-actors sdk-springboot examples diff --git a/sdk-actors/checkstyle-java.xml b/sdk-actors/checkstyle-java.xml new file mode 100644 index 000000000..668dc1fe8 --- /dev/null +++ b/sdk-actors/checkstyle-java.xml @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sdk-actors/pom.xml b/sdk-actors/pom.xml new file mode 100644 index 000000000..162fcd610 --- /dev/null +++ b/sdk-actors/pom.xml @@ -0,0 +1,144 @@ + + 4.0.0 + + + io.dapr + dapr-sdk-parent + 0.2.0 + + + dapr-sdk-actors + jar + 0.2.0 + dapr-sdk + SDK for Actors on Dapr + + + + false + + central + libs-release + https://repo.spring.io/libs-release + + + + + + io.dapr + dapr-sdk + 0.2.0 + + + junit + junit + test + + + org.mockito + mockito-core + test + + + + + true + + + + + org.apache.maven.plugins + maven-source-plugin + 3.2.0 + + + attach-sources + + jar-no-fork + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.1.1 + + + attach-javadocs + + jar + + + + + + + org.apache.maven.plugins + maven-failsafe-plugin + 2.22.2 + + ${skipITs} + + + + + integration-test + verify + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.4 + + + default-prepare-agent + + prepare-agent + + + + report + test + + report + + + + check + + check + + + + + CLASS + + + LINE + COVEREDRATIO + 0.00 + + + BRANCH + COVEREDRATIO + 0.00 + + + + + + + + + + + + diff --git a/sdk/src/main/java/io/dapr/actors/ActorId.java b/sdk-actors/src/main/java/io/dapr/actors/ActorId.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/ActorId.java rename to sdk-actors/src/main/java/io/dapr/actors/ActorId.java diff --git a/sdk/src/main/java/io/dapr/actors/ActorTrace.java b/sdk-actors/src/main/java/io/dapr/actors/ActorTrace.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/ActorTrace.java rename to sdk-actors/src/main/java/io/dapr/actors/ActorTrace.java diff --git a/sdk/src/main/java/io/dapr/actors/client/ActorMethodEnvelope.java b/sdk-actors/src/main/java/io/dapr/actors/client/ActorMethodEnvelope.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/client/ActorMethodEnvelope.java rename to sdk-actors/src/main/java/io/dapr/actors/client/ActorMethodEnvelope.java diff --git a/sdk/src/main/java/io/dapr/actors/client/ActorProxy.java b/sdk-actors/src/main/java/io/dapr/actors/client/ActorProxy.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/client/ActorProxy.java rename to sdk-actors/src/main/java/io/dapr/actors/client/ActorProxy.java diff --git a/sdk/src/main/java/io/dapr/actors/client/ActorProxyBuilder.java b/sdk-actors/src/main/java/io/dapr/actors/client/ActorProxyBuilder.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/client/ActorProxyBuilder.java rename to sdk-actors/src/main/java/io/dapr/actors/client/ActorProxyBuilder.java diff --git a/sdk/src/main/java/io/dapr/actors/client/ActorProxyImpl.java b/sdk-actors/src/main/java/io/dapr/actors/client/ActorProxyImpl.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/client/ActorProxyImpl.java rename to sdk-actors/src/main/java/io/dapr/actors/client/ActorProxyImpl.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/AbstractActor.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/AbstractActor.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/AbstractActor.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/AbstractActor.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/Actor.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/Actor.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/Actor.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/Actor.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorCallType.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorCallType.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorCallType.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorCallType.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorFactory.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorFactory.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorFactory.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorFactory.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorManager.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorManager.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorManager.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorManager.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorMethodContext.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorMethodContext.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorMethodContext.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorMethodContext.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorMethodInfoMap.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorMethodInfoMap.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorMethodInfoMap.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorMethodInfoMap.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorReminderParams.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorReminderParams.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorReminderParams.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorReminderParams.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorRuntime.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorRuntime.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorRuntime.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorRuntime.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorRuntimeContext.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorRuntimeContext.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorRuntimeContext.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorRuntimeContext.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorStateChange.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateChange.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorStateChange.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateChange.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorStateChangeKind.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateChangeKind.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorStateChangeKind.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateChangeKind.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorStateManager.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateManager.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorStateManager.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateManager.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorStateSerializer.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateSerializer.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorStateSerializer.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateSerializer.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorTimer.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTimer.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorTimer.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTimer.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorTimerParams.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTimerParams.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorTimerParams.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTimerParams.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorType.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorType.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorType.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorType.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorTypeInformation.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTypeInformation.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorTypeInformation.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTypeInformation.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/ActorTypeUtilities.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTypeUtilities.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/ActorTypeUtilities.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTypeUtilities.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/DaprStateAsyncProvider.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/DaprStateAsyncProvider.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/DaprStateAsyncProvider.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/DaprStateAsyncProvider.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/DefaultActorFactory.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/DefaultActorFactory.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/DefaultActorFactory.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/DefaultActorFactory.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/DurationUtils.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/DurationUtils.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/DurationUtils.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/DurationUtils.java diff --git a/sdk/src/main/java/io/dapr/actors/runtime/Remindable.java b/sdk-actors/src/main/java/io/dapr/actors/runtime/Remindable.java similarity index 100% rename from sdk/src/main/java/io/dapr/actors/runtime/Remindable.java rename to sdk-actors/src/main/java/io/dapr/actors/runtime/Remindable.java diff --git a/sdk/src/test/java/io/dapr/actors/ActorIdTest.java b/sdk-actors/src/test/java/io/dapr/actors/ActorIdTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/ActorIdTest.java rename to sdk-actors/src/test/java/io/dapr/actors/ActorIdTest.java diff --git a/sdk/src/test/java/io/dapr/actors/client/ActorProxyBuilderTest.java b/sdk-actors/src/test/java/io/dapr/actors/client/ActorProxyBuilderTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/client/ActorProxyBuilderTest.java rename to sdk-actors/src/test/java/io/dapr/actors/client/ActorProxyBuilderTest.java diff --git a/sdk/src/test/java/io/dapr/actors/client/ActorProxyImplTest.java b/sdk-actors/src/test/java/io/dapr/actors/client/ActorProxyImplTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/client/ActorProxyImplTest.java rename to sdk-actors/src/test/java/io/dapr/actors/client/ActorProxyImplTest.java diff --git a/sdk/src/test/java/io/dapr/actors/runtime/ActorManagerTest.java b/sdk-actors/src/test/java/io/dapr/actors/runtime/ActorManagerTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/runtime/ActorManagerTest.java rename to sdk-actors/src/test/java/io/dapr/actors/runtime/ActorManagerTest.java diff --git a/sdk/src/test/java/io/dapr/actors/runtime/ActorMethodInfoMapTest.java b/sdk-actors/src/test/java/io/dapr/actors/runtime/ActorMethodInfoMapTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/runtime/ActorMethodInfoMapTest.java rename to sdk-actors/src/test/java/io/dapr/actors/runtime/ActorMethodInfoMapTest.java diff --git a/sdk/src/test/java/io/dapr/actors/runtime/ActorReminderParamsTest.java b/sdk-actors/src/test/java/io/dapr/actors/runtime/ActorReminderParamsTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/runtime/ActorReminderParamsTest.java rename to sdk-actors/src/test/java/io/dapr/actors/runtime/ActorReminderParamsTest.java diff --git a/sdk/src/test/java/io/dapr/actors/runtime/ActorTimerTest.java b/sdk-actors/src/test/java/io/dapr/actors/runtime/ActorTimerTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/runtime/ActorTimerTest.java rename to sdk-actors/src/test/java/io/dapr/actors/runtime/ActorTimerTest.java diff --git a/sdk/src/test/java/io/dapr/actors/runtime/ActorTypeInformationTest.java b/sdk-actors/src/test/java/io/dapr/actors/runtime/ActorTypeInformationTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/runtime/ActorTypeInformationTest.java rename to sdk-actors/src/test/java/io/dapr/actors/runtime/ActorTypeInformationTest.java diff --git a/sdk/src/test/java/io/dapr/actors/runtime/DaprStateAsyncProviderTest.java b/sdk-actors/src/test/java/io/dapr/actors/runtime/DaprStateAsyncProviderTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/runtime/DaprStateAsyncProviderTest.java rename to sdk-actors/src/test/java/io/dapr/actors/runtime/DaprStateAsyncProviderTest.java diff --git a/sdk/src/test/java/io/dapr/actors/runtime/DefaultActorFactoryTest.java b/sdk-actors/src/test/java/io/dapr/actors/runtime/DefaultActorFactoryTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/runtime/DefaultActorFactoryTest.java rename to sdk-actors/src/test/java/io/dapr/actors/runtime/DefaultActorFactoryTest.java diff --git a/sdk/src/test/java/io/dapr/actors/runtime/DurationUtilsTest.java b/sdk-actors/src/test/java/io/dapr/actors/runtime/DurationUtilsTest.java similarity index 100% rename from sdk/src/test/java/io/dapr/actors/runtime/DurationUtilsTest.java rename to sdk-actors/src/test/java/io/dapr/actors/runtime/DurationUtilsTest.java diff --git a/sdk-springboot/pom.xml b/sdk-springboot/pom.xml index ed1ae238c..75f03f282 100644 --- a/sdk-springboot/pom.xml +++ b/sdk-springboot/pom.xml @@ -43,6 +43,11 @@ dapr-sdk 0.2.0 + + io.dapr + dapr-sdk-actors + 0.2.0 + diff --git a/sdk/src/main/java/io/dapr/client/DaprClientHttpAdapter.java b/sdk/src/main/java/io/dapr/client/DaprClientHttpAdapter.java index 96095c569..621011cf3 100644 --- a/sdk/src/main/java/io/dapr/client/DaprClientHttpAdapter.java +++ b/sdk/src/main/java/io/dapr/client/DaprClientHttpAdapter.java @@ -7,7 +7,6 @@ package io.dapr.client; import io.dapr.client.domain.StateKeyValue; import io.dapr.client.domain.StateOptions; import io.dapr.client.domain.Verb; -import io.dapr.exceptions.DaprException; import io.dapr.utils.Constants; import io.dapr.utils.ObjectSerializer; import reactor.core.publisher.Mono; @@ -64,7 +63,7 @@ public class DaprClientHttpAdapter implements DaprClient { public Mono publishEvent(String topic, T event, Map metadata) { try { if (topic == null || topic.trim().isEmpty()) { - throw new DaprException("INVALID_TOPIC", "Topic name cannot be null or empty."); + throw new IllegalArgumentException("Topic name cannot be null or empty."); } byte[] serializedEvent = objectSerializer.serialize(event); @@ -83,14 +82,14 @@ public class DaprClientHttpAdapter implements DaprClient { public Mono invokeService(Verb verb, String appId, String method, R request, Map metadata, Class clazz) { try { if (verb == null) { - throw new DaprException("500", "Verb cannot be null."); + throw new IllegalArgumentException("Verb cannot be null."); } String httMethod = verb.toString(); if (appId == null || appId.trim().isEmpty()) { - throw new DaprException("500", "App Id cannot be null or empty."); + throw new IllegalArgumentException("App Id cannot be null or empty."); } if (method == null || method.trim().isEmpty()) { - throw new DaprException("500", "Method name cannot be null or empty."); + throw new IllegalArgumentException("Method name cannot be null or empty."); } String path = String.format("%s/%s/method/%s", Constants.INVOKE_PATH, appId, method); byte[] serializedRequestBody = objectSerializer.serialize(request); @@ -146,7 +145,7 @@ public class DaprClientHttpAdapter implements DaprClient { public Mono invokeBinding(String name, T request) { try { if (name == null || name.trim().isEmpty()) { - throw new DaprException("500", "Name to bind cannot be null or empty."); + throw new IllegalArgumentException("Name to bind cannot be null or empty."); } Map jsonMap = new HashMap<>(); @@ -172,7 +171,7 @@ public class DaprClientHttpAdapter implements DaprClient { public Mono getState(StateKeyValue state, StateOptions options, Class clazz) { try { if (state.getKey() == null) { - throw new DaprException("500", "Name cannot be null or empty."); + throw new IllegalArgumentException("Name cannot be null or empty."); } Map headers = new HashMap<>(); if (state.getEtag() != null && !state.getEtag().trim().isEmpty()) { @@ -236,8 +235,11 @@ public class DaprClientHttpAdapter implements DaprClient { @Override public Mono deleteState(StateKeyValue state, StateOptions options) { try { - if (state.getKey() == null) { - throw new DaprException("500", "Name cannot be null or empty."); + if (state == null) { + throw new IllegalArgumentException("State cannot be null."); + } + if (state.getKey() == null || state.getKey().trim().isEmpty()) { + throw new IllegalArgumentException("Name cannot be null or empty."); } Map headers = new HashMap<>(); if (state.getEtag() != null && !state.getEtag().trim().isEmpty()) { diff --git a/sdk/src/main/java/io/dapr/client/DaprHttp.java b/sdk/src/main/java/io/dapr/client/DaprHttp.java index 6156fece2..1c78474b5 100644 --- a/sdk/src/main/java/io/dapr/client/DaprHttp.java +++ b/sdk/src/main/java/io/dapr/client/DaprHttp.java @@ -8,18 +8,16 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.dapr.exceptions.DaprError; import io.dapr.exceptions.DaprException; import io.dapr.utils.Constants; -import io.dapr.utils.ObjectSerializer; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; +import okhttp3.*; import reactor.core.publisher.Mono; import java.io.IOException; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.Collections; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -89,7 +87,7 @@ class DaprHttp { * @return Asynchronous text */ public Mono invokeAPI(String method, String urlString, Map headers) { - return this.invokeAPI(method, urlString, (byte[])null, headers); + return this.invokeAPI(method, urlString, (String) null, headers); } /** @@ -101,7 +99,12 @@ class DaprHttp { * @return Asynchronous text */ public Mono invokeAPI(String method, String urlString, String content, Map headers) { - return this.invokeAPI(method, urlString, content == null ? EMPTY_BYTES : content.getBytes(StandardCharsets.UTF_8), headers); + return this.invokeAPI( + method, + urlString, + content == null ? EMPTY_BYTES : content.getBytes(StandardCharsets.UTF_8), + headers) + .map(s -> new String(s, StandardCharsets.UTF_8)); } /** @@ -112,12 +115,12 @@ class DaprHttp { * @param content payload to be posted. * @return Asynchronous text */ - public Mono invokeAPI(String method, String urlString, byte[] content, Map headers) { + public Mono invokeAPI(String method, String urlString, byte[] content, Map headers) { return Mono.fromFuture(CompletableFuture.supplyAsync( () -> { try { String requestId = UUID.randomUUID().toString(); - RequestBody body = REQUEST_BODY_EMPTY_JSON; + RequestBody body; String contentType = headers != null ? headers.get("content-type") : null; MediaType mediaType = contentType == null ? MEDIA_TYPE_APPLICATION_JSON : MediaType.get(contentType); @@ -148,16 +151,16 @@ class DaprHttp { Request request = requestBuilder.build(); try (Response response = this.httpClient.newCall(request).execute()) { + byte[] responseBody = response.body().bytes(); if (!response.isSuccessful()) { - DaprError error = parseDaprError(response.body().string()); + DaprError error = this.parseDaprError(responseBody); if ((error != null) && (error.getErrorCode() != null) && (error.getMessage() != null)) { - throw new RuntimeException(new DaprException(error)); + throw new DaprException(error); } - throw new RuntimeException("Unknown error."); + throw new IOException("Unknown error."); } - String result = response.body().string(); - return result == null ? "" : result; + return responseBody == null ? EMPTY_BYTES : responseBody; } } catch (Exception e) { throw new RuntimeException(e); @@ -171,16 +174,12 @@ class DaprHttp { * @param json Response body from Dapr. * @return DaprError or null if could not parse. */ - private static DaprError parseDaprError(String json) { + private static DaprError parseDaprError(byte[] json) throws IOException { if (json == null) { return null; } - try { - return OBJECT_MAPPER.readValue(json, DaprError.class); - } catch (IOException e) { - throw new DaprException("500", "Unknown error: could not parse error json."); - } + return OBJECT_MAPPER.readValue(json, DaprError.class); } } diff --git a/sdk/src/main/java/io/dapr/runtime/Dapr.java b/sdk/src/main/java/io/dapr/runtime/Dapr.java index 60de49198..102cb1bb3 100644 --- a/sdk/src/main/java/io/dapr/runtime/Dapr.java +++ b/sdk/src/main/java/io/dapr/runtime/Dapr.java @@ -6,7 +6,6 @@ package io.dapr.runtime; import io.dapr.client.domain.CloudEventEnvelope; -import io.dapr.exceptions.DaprException; import io.dapr.utils.ObjectSerializer; import reactor.core.publisher.Mono; @@ -99,10 +98,14 @@ public final class Dapr implements DaprRuntime { */ @Override public Mono handleInvocation(String name, byte[] payload, Map metadata) { + if (name == null) { + return Mono.error(new IllegalArgumentException("Handler's name cannot be null.")); + } + Function> handler = this.handlers.get(name); if (handler == null) { - return Mono.error(new DaprException("INVALID_METHOD_OR_TOPIC", "Did not find handler for : " + (name == null ? "" : name))); + return Mono.error(new IllegalArgumentException("Did not find handler for : " + (name == null ? "" : name))); } try { diff --git a/sdk/src/test/java/io/dapr/actors/client/DaprHttpAsyncClientIT.java b/sdk/src/test/java/io/dapr/client/DaprHttpAsyncClientIT.java similarity index 92% rename from sdk/src/test/java/io/dapr/actors/client/DaprHttpAsyncClientIT.java rename to sdk/src/test/java/io/dapr/client/DaprHttpAsyncClientIT.java index 1b93ebfa2..9b2ead69e 100644 --- a/sdk/src/test/java/io/dapr/actors/client/DaprHttpAsyncClientIT.java +++ b/sdk/src/test/java/io/dapr/client/DaprHttpAsyncClientIT.java @@ -2,10 +2,8 @@ * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. */ -package io.dapr.actors.client; +package io.dapr.client; -import io.dapr.client.DaprClient; -import io.dapr.client.DaprClientBuilder; import io.dapr.exceptions.DaprException; import org.junit.Assert; import org.junit.Test; diff --git a/sdk/src/test/java/io/dapr/client/DaprHttpStub.java b/sdk/src/test/java/io/dapr/client/DaprHttpStub.java index 0ede2041b..391c14ddf 100644 --- a/sdk/src/test/java/io/dapr/client/DaprHttpStub.java +++ b/sdk/src/test/java/io/dapr/client/DaprHttpStub.java @@ -42,7 +42,7 @@ public class DaprHttpStub extends DaprHttp { * {@inheritDoc} */ @Override - public Mono invokeAPI(String method, String urlString, byte[] content, Map headers) { + public Mono invokeAPI(String method, String urlString, byte[] content, Map headers) { return Mono.empty(); } } diff --git a/sdk/src/test/java/io/dapr/runtime/DaprRuntimeTest.java b/sdk/src/test/java/io/dapr/runtime/DaprRuntimeTest.java index 2ae8386cc..5c4e6c5d2 100644 --- a/sdk/src/test/java/io/dapr/runtime/DaprRuntimeTest.java +++ b/sdk/src/test/java/io/dapr/runtime/DaprRuntimeTest.java @@ -204,8 +204,7 @@ public class DaprRuntimeTest { this.daprRuntime.handleInvocation( METHOD_NAME, message.data, - message.metadata) - .map(r -> new String(r, StandardCharsets.UTF_8))); + message.metadata)); Mono response = client.invokeService(Verb.POST, APP_ID, METHOD_NAME, message.data, message.metadata); Assert.assertEquals(