mirror of https://github.com/dapr/java-sdk.git
Removing some dependencies after review. (#164)
Co-authored-by: Leon Mai <lemai@microsoft.com>
This commit is contained in:
parent
dfb3af58a1
commit
0bdf939f91
|
|
@ -31,11 +31,6 @@
|
|||
<artifactId>commons-cli</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.json</groupId>
|
||||
<artifactId>json</artifactId>
|
||||
<version>20190722</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.grpc</groupId>
|
||||
<artifactId>grpc-protobuf</artifactId>
|
||||
|
|
@ -51,11 +46,6 @@
|
|||
<artifactId>grpc-api</artifactId>
|
||||
<version>${grpc.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.annotation</groupId>
|
||||
<artifactId>javax.annotation-api</artifactId>
|
||||
<version>1.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.grpc</groupId>
|
||||
<artifactId>grpc-testing</artifactId>
|
||||
|
|
|
|||
|
|
@ -1,32 +1,18 @@
|
|||
package io.dapr.examples.state.http;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import com.sun.net.httpserver.HttpServer;
|
||||
import io.dapr.client.DaprClient;
|
||||
import io.dapr.client.DaprClientBuilder;
|
||||
import io.dapr.serializer.DefaultObjectSerializer;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.URI;
|
||||
import java.net.http.HttpClient;
|
||||
import java.net.http.HttpClient.Redirect;
|
||||
import java.net.http.HttpClient.Version;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpRequest.BodyPublishers;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.net.http.HttpResponse.BodyHandlers;
|
||||
import java.nio.charset.Charset;
|
||||
import java.time.Duration;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import static java.lang.System.out;
|
||||
|
||||
|
|
@ -46,6 +32,8 @@ import static java.lang.System.out;
|
|||
*/
|
||||
public class OrderManager {
|
||||
|
||||
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
int httpPort = 3001;
|
||||
HttpServer httpServer = HttpServer.create(new InetSocketAddress(httpPort), 0);
|
||||
|
|
@ -73,9 +61,10 @@ public class OrderManager {
|
|||
try {
|
||||
out.println("Received new order ...");
|
||||
String json = readBody(e);
|
||||
JSONObject jsonObject = new JSONObject(json);
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
String orderId = data.getString("orderId");
|
||||
|
||||
JsonNode jsonObject = OBJECT_MAPPER.readTree(json);
|
||||
JsonNode data = jsonObject.get("data");
|
||||
String orderId = data.get("orderId").asText();
|
||||
out.printf("Got a new order! Order ID: %s\n", orderId);
|
||||
|
||||
daprClient.saveState("order", data.toString()).block();
|
||||
|
|
|
|||
|
|
@ -29,66 +29,51 @@ mvn install
|
|||
This example implements a service listening on port 3000, while using Dapr's state store via port 3500. Its API also offers two methods: `/order` and `/neworder`. Calls to '/order' will fetch the state from Dapr's state store:
|
||||
|
||||
```
|
||||
String stateUrl = String.format("http://localhost:%s/v1.0/state", daprPort);
|
||||
/// ...
|
||||
httpServer.createContext("/order").setHandler(e -> {
|
||||
out.println("Fetching order!");
|
||||
fetch(stateUrl + "/order").thenAccept(response -> {
|
||||
int resCode = response.statusCode() == 200 ? 200 : 500;
|
||||
String body = response.statusCode() == 200 ? response.body() : "Could not get state.";
|
||||
DaprClient daprClient =
|
||||
(new DaprClientBuilder(new DefaultObjectSerializer(), new DefaultObjectSerializer())).build();
|
||||
|
||||
try {
|
||||
e.sendResponseHeaders(resCode, body.getBytes().length);
|
||||
OutputStream os = e.getResponseBody();
|
||||
try {
|
||||
os.write(body.getBytes());
|
||||
} finally {
|
||||
os.close();
|
||||
}
|
||||
} catch (IOException ioerror) {
|
||||
out.println(ioerror);
|
||||
}
|
||||
});
|
||||
});
|
||||
httpServer.createContext("/order").setHandler(e -> {
|
||||
out.println("Fetching order!");
|
||||
try {
|
||||
byte[] data = daprClient.getState("order", String.class).block().getValue().getBytes();
|
||||
e.getResponseHeaders().set("content-type", "application/json");
|
||||
e.sendResponseHeaders(200, data.length);
|
||||
e.getResponseBody().write(data);
|
||||
e.getResponseBody().close();
|
||||
} catch (IOException ioerror) {
|
||||
out.println(ioerror);
|
||||
e.sendResponseHeaders(500, ioerror.getMessage().getBytes().length);
|
||||
e.getResponseBody().write(ioerror.getMessage().getBytes());
|
||||
e.getResponseBody().close();
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
Calls to `/neworder` will persist a new state do Dapr's state store:
|
||||
```
|
||||
httpServer.createContext("/neworder").setHandler(e -> {
|
||||
try {
|
||||
out.println("Received new order ...");
|
||||
String json = readBody(e);
|
||||
JSONObject jsonObject = new JSONObject(json);
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
String orderId = data.getString("orderId");
|
||||
out.printf("Got a new order! Order ID: %s\n", orderId);
|
||||
httpServer.createContext("/neworder").setHandler(e -> {
|
||||
try {
|
||||
out.println("Received new order ...");
|
||||
String json = readBody(e);
|
||||
|
||||
JSONObject item = new JSONObject();
|
||||
item.put("key", "order");
|
||||
item.put("value", data);
|
||||
JSONArray state = new JSONArray();
|
||||
state.put(item);
|
||||
out.printf("Writing to state: %s\n", state.toString());
|
||||
JsonNode jsonObject = OBJECT_MAPPER.readTree(json);
|
||||
JsonNode data = jsonObject.get("data");
|
||||
String orderId = data.get("orderId").asText();
|
||||
out.printf("Got a new order! Order ID: %s\n", orderId);
|
||||
|
||||
post(stateUrl, state.toString()).thenAccept(response -> {
|
||||
int resCode = response.statusCode() == 200 ? 200 : 500;
|
||||
String body = response.body();
|
||||
try {
|
||||
e.sendResponseHeaders(resCode, body.getBytes().length);
|
||||
OutputStream os = e.getResponseBody();
|
||||
try {
|
||||
os.write(body.getBytes());
|
||||
} finally {
|
||||
os.close();
|
||||
}
|
||||
} catch (IOException ioerror) {
|
||||
out.println(ioerror);
|
||||
}
|
||||
});
|
||||
} catch (IOException ioerror) {
|
||||
out.println(ioerror);
|
||||
}
|
||||
});
|
||||
daprClient.saveState("order", data.toString()).block();
|
||||
|
||||
out.printf("Saved state: %s\n", data.toString());
|
||||
e.sendResponseHeaders(200, 0);
|
||||
e.getResponseBody().write(new byte[0]);
|
||||
e.getResponseBody().close();
|
||||
} catch (IOException ioerror) {
|
||||
out.println(ioerror);
|
||||
e.sendResponseHeaders(500, ioerror.getMessage().getBytes().length);
|
||||
e.getResponseBody().write(ioerror.getMessage().getBytes());
|
||||
e.getResponseBody().close();
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
### Running the example
|
||||
|
|
|
|||
8
pom.xml
8
pom.xml
|
|
@ -53,16 +53,10 @@
|
|||
<artifactId>grpc-api</artifactId>
|
||||
<version>${grpc.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.annotation</groupId>
|
||||
<artifactId>javax.annotation-api</artifactId>
|
||||
<version>1.3.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version>
|
||||
<version>4.13-beta-3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
<dependency>
|
||||
<groupId>javax.annotation</groupId>
|
||||
<artifactId>javax.annotation-api</artifactId>
|
||||
<version>1.3.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
@ -46,11 +47,6 @@
|
|||
<artifactId>grpc-testing</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java-util</artifactId>
|
||||
<version>${protobuf.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.os72</groupId>
|
||||
<artifactId>protoc-jar-maven-plugin</artifactId>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version>
|
||||
<version>4.13-beta-3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>2.9.10.1</version>
|
||||
<version>2.10.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.projectreactor</groupId>
|
||||
|
|
@ -52,11 +52,6 @@
|
|||
<artifactId>okhttp</artifactId>
|
||||
<version>4.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.annotation</groupId>
|
||||
<artifactId>javax.annotation-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ import org.junit.Test;
|
|||
import org.mockito.ArgumentMatcher;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.io.IOException;
|
||||
import java.time.Duration;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -929,9 +928,7 @@ public class DaprClientGrpcAdapterTest {
|
|||
}
|
||||
|
||||
private final class MockCallback<T> implements FutureCallback<T> {
|
||||
@Nullable
|
||||
private T value = null;
|
||||
@Nullable
|
||||
private Throwable failure = null;
|
||||
private boolean wasCalled = false;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue