diff --git a/java-server/.gitignore b/java-server/.gitignore
index 77b721e1d..212311511 100644
--- a/java-server/.gitignore
+++ b/java-server/.gitignore
@@ -1,3 +1,7 @@
.kotlin/
bin/
build/
+ditto-service.err.log
+ditto-service.exe
+ditto-service.out.log
+ditto-service.wrapper.log
diff --git a/java-server/build.gradle.kts b/java-server/build.gradle.kts
index 4b81afcc5..d454f14fe 100644
--- a/java-server/build.gradle.kts
+++ b/java-server/build.gradle.kts
@@ -31,29 +31,29 @@ spotbugs {
dependencies {
// ditto-java artifact includes the Java API for Ditto
- implementation("com.ditto:ditto-java:5.0.0-preview.3")
+ implementation("com.ditto:ditto-java:5.0.0-java-rc.2")
// This will include binaries for all the supported platforms and architectures
- implementation("com.ditto:ditto-binaries:5.0.0-preview.3")
+ implementation("com.ditto:ditto-binaries:5.0.0-java-rc.2")
// To reduce your module artifact's size, consider including just the necessary platforms and architectures
/*
// macOS Apple Silicon
- implementation("com.ditto:ditto-binaries:5.0.0-preview.3") {
+ implementation("com.ditto:ditto-binaries:5.0.0-java-rc.2") {
capabilities {
requireCapability("com.ditto:ditto-binaries-macos-arm64")
}
}
// Windows x86_64
- implementation("com.ditto:ditto-binaries:5.0.0-preview.3") {
+ implementation("com.ditto:ditto-binaries:5.0.0-java-rc.2") {
capabilities {
requireCapability("com.ditto:ditto-binaries-windows-x64")
}
}
// Linux x86_64
- implementation("com.ditto:ditto-binaries:5.0.0-preview.3") {
+ implementation("com.ditto:ditto-binaries:5.0.0-java-rc.2") {
capabilities {
requireCapability("com.ditto:ditto-binaries-linux-x64")
}
diff --git a/java-server/ditto-service.xml b/java-server/ditto-service.xml
new file mode 100644
index 000000000..4a21030fe
--- /dev/null
+++ b/java-server/ditto-service.xml
@@ -0,0 +1,24 @@
+
+ ditto-service
+ Ditto Java Quickstart App
+ Description of your application
+
+ java
+ -jar "%BASE%\build\libs\quickstart-java-0.0.1-SNAPSHOT.jar"
+
+
+ %BASE%
+
+
+
+
+
+
+ 10240
+ 8
+
+
+
+
+
+
diff --git a/java-server/src/main/java/com/ditto/example/spring/quickstart/service/DittoService.java b/java-server/src/main/java/com/ditto/example/spring/quickstart/service/DittoService.java
index f5ca7d5c4..fa0400a2b 100644
--- a/java-server/src/main/java/com/ditto/example/spring/quickstart/service/DittoService.java
+++ b/java-server/src/main/java/com/ditto/example/spring/quickstart/service/DittoService.java
@@ -45,8 +45,8 @@ public class DittoService implements DisposableBean {
* Setup Ditto Config
* https://docs.ditto.live/sdk/latest/install-guides/java#integrating-and-initializing
*/
-
DittoConfig dittoConfig = new DittoConfig.Builder(DittoSecretsConfiguration.DITTO_APP_ID)
+// .persistenceDirectory("/tmp/ditto-quickstart")
.serverConnect(DittoSecretsConfiguration.DITTO_AUTH_URL)
.build();
@@ -60,7 +60,7 @@ public class DittoService implements DisposableBean {
).thenRun(() -> { })
);
- this.ditto.setDeviceName("Spring Java");
+ this.ditto.setDeviceName("Java");
this.ditto.updateTransportConfig(config -> {
config.connect(connect -> {
@@ -99,10 +99,10 @@ public Flux getSyncState() {
}
public void toggleSync() {
+ boolean currentSyncState = mutableSyncStatePublisher.asFlux().blockFirst();
try {
- boolean currentSyncState = mutableSyncStatePublisher.asFlux().blockFirst();
setSyncStateIntoDittoStore(!currentSyncState);
- } catch (DittoError e) {
+ } catch (DittoException e) {
throw new RuntimeException(e);
}
}
@@ -145,16 +145,20 @@ private DittoStoreObserver setupAndObserveSyncState() {
(result) -> {
List extends DittoQueryResultItem> items = result.getItems();
boolean newSyncState = false;
- if (!items.isEmpty()) {
- newSyncState = items.get(0).getValue()
- .get(DITTO_SYNC_STATE_ID)
- .asBoolean();
+ try {
+ if (!items.isEmpty()) {
+ newSyncState = items.get(0).getValue()
+ .get(DITTO_SYNC_STATE_ID)
+ .asBoolean();
+ }
+ } catch (DittoException e) {
+ System.err.println("Error: " + e);
}
if (newSyncState) {
try {
ditto.startSync();
- } catch (DittoError e) {
+ } catch (DittoException e) {
throw new RuntimeException(e);
}
} else {
@@ -163,12 +167,12 @@ private DittoStoreObserver setupAndObserveSyncState() {
mutableSyncStatePublisher.tryEmitNext(newSyncState);
});
- } catch (DittoError e) {
+ } catch (DittoException e) {
throw new RuntimeException(e);
}
}
- private void setSyncStateIntoDittoStore(boolean newState) throws DittoError {
+ private void setSyncStateIntoDittoStore(boolean newState) throws DittoException {
CompletionStage future = ditto.getStore().execute(
"UPDATE %s SET %s = :syncState".formatted(DITTO_SYNC_STATE_COLLECTION, DITTO_SYNC_STATE_ID),
DittoCborSerializable.buildDictionary()
@@ -178,7 +182,7 @@ private void setSyncStateIntoDittoStore(boolean newState) throws DittoError {
try {
future.toCompletableFuture().join().close();
- } catch (DittoError e) {
+ } catch (DittoException e) {
throw new RuntimeException(e);
}
}
diff --git a/java-server/src/main/java/com/ditto/example/spring/quickstart/service/DittoTaskService.java b/java-server/src/main/java/com/ditto/example/spring/quickstart/service/DittoTaskService.java
index 2ce001a85..73554a383 100644
--- a/java-server/src/main/java/com/ditto/example/spring/quickstart/service/DittoTaskService.java
+++ b/java-server/src/main/java/com/ditto/example/spring/quickstart/service/DittoTaskService.java
@@ -58,10 +58,10 @@ public void toggleTaskDone(@Nonnull String taskId) {
"UPDATE %s SET done = :done WHERE _id = :taskId".formatted(TASKS_COLLECTION_NAME),
DittoCborSerializable.Dictionary.buildDictionary()
.put("done", !isDone)
- .put("taskId", taskId)
+ .put("taskId", taskId)
.build()
).toCompletableFuture().join();
- } catch (Error e) {
+ } catch (Error | DittoException e) {
throw new RuntimeException(e);
}
}
@@ -115,11 +115,11 @@ public Flux> observeAll() {
}
try {
observer.close();
- } catch (DittoError e) {
+ } catch (DittoException e) {
throw new RuntimeException(e);
}
});
- } catch (DittoError e) {
+ } catch (DittoException e) {
emitter.error(e);
}
}, FluxSink.OverflowStrategy.LATEST);
@@ -127,11 +127,15 @@ public Flux> observeAll() {
private Task itemToTask(@Nonnull DittoQueryResultItem item) {
DittoCborSerializable.Dictionary value = item.getValue();
- return new Task(
- value.get("_id").asString(),
- value.get("title").asString(),
- value.get("done").asBoolean(),
- value.get("deleted").asBoolean()
- );
+ try {
+ return new Task(
+ value.get("_id").asString(),
+ value.get("title").asString(),
+ value.get("done").asBoolean(),
+ value.get("deleted").asBoolean()
+ );
+ } catch (DittoException e) {
+ throw new RuntimeException(e);
+ }
}
}