Skip to content

Commit

Permalink
Update Java code snippets to SDK v1.0 (#385)
Browse files Browse the repository at this point in the history
* Update Java code snippets

* Update Java concept code snippets

* Fix serving docs virtual threads

* Update kotlin docs to new version
  • Loading branch information
gvdongen authored Jun 3, 2024
1 parent d730ee5 commit 0793c5e
Show file tree
Hide file tree
Showing 27 changed files with 90 additions and 88 deletions.
3 changes: 2 additions & 1 deletion code_snippets/java/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ plugins {

repositories {
mavenCentral()
mavenLocal()
}

val restateVersion = "0.9.0"
val restateVersion = "0.10.0-SNAPSHOT"

dependencies {
// Restate SDK
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
import concepts.buildingblocks.types.StatusEnum;
import concepts.buildingblocks.utils.PaymentClient;
import concepts.buildingblocks.utils.RestaurantClient;
import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.VirtualObject;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.common.Serde;
import dev.restate.sdk.common.StateKey;
import dev.restate.sdk.serde.jackson.JacksonSerdes;

Expand All @@ -27,7 +28,7 @@ public void process(ObjectContext ctx, OrderRequest order) {

// 2. Handle payment
String token = ctx.random().nextUUID().toString();
boolean paid = ctx.run(CoreSerdes.JSON_BOOLEAN, () ->
boolean paid = ctx.run(JsonSerdes.BOOLEAN, () ->
PaymentClient.charge(id, token, order.getTotalCost()));

if (!paid) {
Expand All @@ -40,7 +41,7 @@ public void process(ObjectContext ctx, OrderRequest order) {
ctx.sleep(Duration.ofMillis(order.getDeliveryDelay()));

// 4. Trigger preparation
var awakeable = ctx.awakeable(CoreSerdes.VOID);
var awakeable = ctx.awakeable(Serde.VOID);
ctx.run(() ->
RestaurantClient.prepare(id, awakeable.id()));
ctx.set(STATUS, StatusEnum.IN_PREPARATION);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
import concepts.buildingblocks.types.StatusEnum;
import concepts.buildingblocks.utils.PaymentClient;
import concepts.buildingblocks.utils.RestaurantClient;
import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.VirtualObject;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.common.Serde;
import dev.restate.sdk.common.StateKey;
import dev.restate.sdk.serde.jackson.JacksonSerdes;

Expand All @@ -28,7 +29,7 @@ public void process(ObjectContext ctx, OrderRequest order) {

// 2. Handle payment
String token = ctx.random().nextUUID().toString();
boolean paid = ctx.run(CoreSerdes.JSON_BOOLEAN, () ->
boolean paid = ctx.run(JsonSerdes.BOOLEAN, () ->
PaymentClient.charge(id, token, order.getTotalCost()));

if (!paid) {
Expand All @@ -41,7 +42,7 @@ public void process(ObjectContext ctx, OrderRequest order) {
ctx.sleep(Duration.ofMillis(order.getDeliveryDelay()));

// 4. Trigger preparation
var awakeable = ctx.awakeable(CoreSerdes.VOID);
var awakeable = ctx.awakeable(Serde.VOID);
ctx.run(() ->
RestaurantClient.prepare(id, awakeable.id()));
ctx.set(STATUS, StatusEnum.IN_PREPARATION);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
import concepts.buildingblocks.types.StatusEnum;
import concepts.buildingblocks.utils.PaymentClient;
import concepts.buildingblocks.utils.RestaurantClient;
import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.VirtualObject;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.common.Serde;
import dev.restate.sdk.common.StateKey;
import dev.restate.sdk.serde.jackson.JacksonSerdes;

Expand All @@ -27,7 +28,7 @@ public void process(ObjectContext ctx, OrderRequest order) {

// 2. Handle payment
String token = ctx.random().nextUUID().toString();
boolean paid = ctx.run(CoreSerdes.JSON_BOOLEAN, () ->
boolean paid = ctx.run(JsonSerdes.BOOLEAN, () ->
PaymentClient.charge(id, token, order.getTotalCost()));

if (!paid) {
Expand All @@ -40,7 +41,7 @@ public void process(ObjectContext ctx, OrderRequest order) {
ctx.sleep(Duration.ofMillis(order.getDeliveryDelay()));

// 4. Trigger preparation
var awakeable = ctx.awakeable(CoreSerdes.VOID);
var awakeable = ctx.awakeable(Serde.VOID);
ctx.run(() ->
RestaurantClient.prepare(id, awakeable.id()));
ctx.set(STATUS, StatusEnum.IN_PREPARATION);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
import concepts.buildingblocks.types.StatusEnum;
import concepts.buildingblocks.utils.PaymentClient;
import concepts.buildingblocks.utils.RestaurantClient;
import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.VirtualObject;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.common.Serde;
import dev.restate.sdk.common.StateKey;
import dev.restate.sdk.serde.jackson.JacksonSerdes;

Expand All @@ -27,7 +28,7 @@ public void process(ObjectContext ctx, OrderRequest order) {

// 2. Handle payment
String token = ctx.random().nextUUID().toString();
boolean paid = ctx.run(CoreSerdes.JSON_BOOLEAN, () ->
boolean paid = ctx.run(JsonSerdes.BOOLEAN, () ->
PaymentClient.charge(id, token, order.getTotalCost()));

if (!paid) {
Expand All @@ -41,7 +42,7 @@ public void process(ObjectContext ctx, OrderRequest order) {

// 4. Trigger preparation
// focus
var awakeable = ctx.awakeable(CoreSerdes.VOID);
var awakeable = ctx.awakeable(Serde.VOID);
ctx.run(() ->
// focus
RestaurantClient.prepare(id, awakeable.id()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
import concepts.buildingblocks.types.StatusEnum;
import concepts.buildingblocks.utils.PaymentClient;
import concepts.buildingblocks.utils.RestaurantClient;
import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.VirtualObject;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.common.Serde;
import dev.restate.sdk.common.StateKey;
import dev.restate.sdk.serde.jackson.JacksonSerdes;

Expand All @@ -30,7 +31,7 @@ public void process(ObjectContext ctx, OrderRequest order) {

// 2. Handle payment
String token = ctx.random().nextUUID().toString();
boolean paid = ctx.run(CoreSerdes.JSON_BOOLEAN, () ->
boolean paid = ctx.run(JsonSerdes.BOOLEAN, () ->
PaymentClient.charge(id, token, order.getTotalCost()));

if (!paid) {
Expand All @@ -45,7 +46,7 @@ public void process(ObjectContext ctx, OrderRequest order) {
ctx.sleep(Duration.ofMillis(order.getDeliveryDelay()));

// 4. Trigger preparation
var awakeable = ctx.awakeable(CoreSerdes.VOID);
var awakeable = ctx.awakeable(Serde.VOID);
ctx.run(() ->
RestaurantClient.prepare(id, awakeable.id()));
// focus
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
import concepts.buildingblocks.types.StatusEnum;
import concepts.buildingblocks.utils.PaymentClient;
import concepts.buildingblocks.utils.RestaurantClient;
import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.VirtualObject;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.common.Serde;
import dev.restate.sdk.common.StateKey;
import dev.restate.sdk.serde.jackson.JacksonSerdes;

Expand All @@ -28,7 +29,7 @@ public void process(ObjectContext ctx, OrderRequest order) {
// 2. Handle payment
String token = ctx.random().nextUUID().toString();
// focus(1:2)
boolean paid = ctx.run(CoreSerdes.JSON_BOOLEAN, () ->
boolean paid = ctx.run(JsonSerdes.BOOLEAN, () ->
PaymentClient.charge(id, token, order.getTotalCost()));

if (!paid) {
Expand All @@ -41,7 +42,7 @@ public void process(ObjectContext ctx, OrderRequest order) {
ctx.sleep(Duration.ofMillis(order.getDeliveryDelay()));

// 4. Trigger preparation
var awakeable = ctx.awakeable(CoreSerdes.VOID);
var awakeable = ctx.awakeable(Serde.VOID);
// focus(1:2)
ctx.run(() ->
RestaurantClient.prepare(id, awakeable.id()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,12 @@ public class OrderRequest {
private final double totalCost;
private final int deliveryDelay;

@JsonCreator
public OrderRequest(
@JsonProperty("orderId") String orderId,
@JsonProperty("restaurantId") String restaurantId,
@JsonProperty("products") Product[] products,
@JsonProperty("totalCost") double totalCost,
@JsonProperty("deliveryDelay") int deliveryDelay) {
String orderId,
String restaurantId,
Product[] products,
double totalCost,
int deliveryDelay) {
this.orderId = orderId;
this.restaurantId = restaurantId;
this.products = products;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ class Product {
private final int quantity;

public Product(
@JsonProperty("productId") String productId,
@JsonProperty("description") String description,
@JsonProperty("quantity") int quantity) {
String productId,
String description,
int quantity) {
this.productId = productId;
this.description = description;
this.quantity = quantity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package concepts.invocations;

import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.VirtualObject;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.common.StateKey;

@VirtualObject
public class GreetCounterObject {

public final static StateKey<Integer> COUNT =
StateKey.of("count", CoreSerdes.JSON_INT);
StateKey.of("count", JsonSerdes.INT);

@Handler
public int greet(ObjectContext ctx, String greeting){
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package concepts.services;

import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.VirtualObject;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.common.StateKey;
import dev.restate.sdk.http.vertx.RestateHttpEndpointBuilder;

Expand All @@ -18,7 +18,7 @@
public class Greeter {

public final static StateKey<Integer> COUNT =
StateKey.of("count", CoreSerdes.JSON_INT);
StateKey.of("count", JsonSerdes.INT);

@Handler
public String greet(ObjectContext ctx, String greeting) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package concepts.services;

import concepts.services.types.SystemA;
import concepts.services.types.SystemB;
import concepts.services.types.UpdateRequest;
import dev.restate.sdk.Context;
import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.Service;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.http.vertx.RestateHttpEndpointBuilder;

/**
Expand All @@ -18,14 +21,14 @@ public class RoleUpdateService {

@Handler
public void applyRoleUpdate(Context ctx, UpdateRequest req) {
boolean success = ctx.run(CoreSerdes.JSON_BOOLEAN, () ->
boolean success = ctx.run(JsonSerdes.BOOLEAN, () ->
SystemA.applyUserRole(req.getUserId(), req.getRole()));
if (!success) {
return;
}

for(String permission: req.getPermissions()) {
ctx.run(CoreSerdes.JSON_BOOLEAN, () ->
ctx.run(JsonSerdes.BOOLEAN, () ->
SystemB.applyPermission(req.getUserId(), permission));
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package concepts.services;
package concepts.services.types;

public class SystemA {
public static boolean applyUserRole(String userId, String role) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package concepts.services;
package concepts.services.types;

public class SystemB {
public static boolean applyPermission(String userId, String permission) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package concepts.services;
package concepts.services.types;

public class UpdateRequest {
private String userId;
Expand Down
6 changes: 3 additions & 3 deletions code_snippets/java/src/main/java/develop/Awakeables.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package develop;

import dev.restate.sdk.Awakeable;
import dev.restate.sdk.JsonSerdes;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.common.CoreSerdes;

public class Awakeables {

public void awakeables(ObjectContext ctx) {
// <start_create>
Awakeable<String> awakeable = ctx.awakeable(CoreSerdes.JSON_STRING);
Awakeable<String> awakeable = ctx.awakeable(JsonSerdes.STRING);
String awakeableId = awakeable.id();

ctx.run(() -> triggerTaskAndDeliverId(awakeableId));
Expand All @@ -18,7 +18,7 @@ public void awakeables(ObjectContext ctx) {

// <start_resolve>
ctx.awakeableHandle(awakeableId)
.resolve(CoreSerdes.JSON_STRING, "hello");
.resolve(JsonSerdes.STRING, "hello");
// <end_resolve>

// <start_reject>
Expand Down
2 changes: 1 addition & 1 deletion code_snippets/java/src/main/java/develop/Greeter.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
@VirtualObject
public class Greeter {

private static final StateKey<Integer> COUNT = StateKey.of("count", CoreSerdes.JSON_INT);
private static final StateKey<Integer> COUNT = StateKey.of("count", JsonSerdes.INT);

@Handler
public String greet(ObjectContext ctx, String greeting) {
Expand Down
4 changes: 0 additions & 4 deletions code_snippets/java/src/main/java/develop/MyService.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
package develop;

import dev.restate.sdk.Context;
import dev.restate.sdk.ObjectContext;
import dev.restate.sdk.annotation.Handler;
import dev.restate.sdk.annotation.Service;
import dev.restate.sdk.annotation.VirtualObject;
import dev.restate.sdk.common.CoreSerdes;
import dev.restate.sdk.common.StateKey;
import dev.restate.sdk.http.vertx.RestateHttpEndpointBuilder;

import java.util.UUID;
Expand Down
Loading

0 comments on commit 0793c5e

Please sign in to comment.