Skip to content

Commit cbcc437

Browse files
Sync Hybrid: fix access issues, validate required values in builder
1 parent 61e1beb commit cbcc437

File tree

9 files changed

+19
-21
lines changed

9 files changed

+19
-21
lines changed

objectbox-java/src/main/java/io/objectbox/sync/Sync.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import io.objectbox.BoxStore;
2020
import io.objectbox.BoxStoreBuilder;
21-
import io.objectbox.sync.server.SyncHybridBuilder;
2221
import io.objectbox.sync.server.SyncServer;
2322
import io.objectbox.sync.server.SyncServerBuilder;
2423

objectbox-java/src/main/java/io/objectbox/sync/SyncBuilder.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,18 @@ public SyncBuilder(BoxStore boxStore, SyncCredentials credentials) {
9797
this.credentials = credentials;
9898
}
9999

100+
@Internal
100101
public SyncBuilder(BoxStore boxStore, String url, SyncCredentials credentials) {
101102
this(boxStore, credentials);
102103
checkNotNull(url, "Sync server URL is required.");
103104
this.url = url;
104105
}
105106

106107
/**
107-
* Internal URL setter for late assignment (used by {@link io.objectbox.sync.server.SyncHybridBuilder}).
108+
* Allows internal code to set the Sync server URL after creating this builder.
108109
*/
109110
@Internal
110-
public SyncBuilder lateUrl(String url) {
111+
SyncBuilder serverUrl(String url) {
111112
this.url = url;
112113
return this;
113114
}
@@ -220,6 +221,7 @@ public SyncClient build() {
220221
if (boxStore.getSyncClient() != null) {
221222
throw new IllegalStateException("The given store is already associated with a Sync client, close it first.");
222223
}
224+
checkNotNull(url, "Sync Server URL is required.");
223225
return new SyncClientImpl(this);
224226
}
225227

objectbox-java/src/main/java/io/objectbox/sync/SyncClientImpl.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,6 @@ public class SyncClientImpl implements SyncClient {
6060
private volatile boolean started;
6161

6262
SyncClientImpl(SyncBuilder builder) {
63-
if (builder.url == null) {
64-
throw new IllegalArgumentException("Sync client destination URL was not specified");
65-
}
66-
6763
this.boxStore = builder.boxStore;
6864
this.serverUrl = builder.url;
6965
this.connectivityMonitor = builder.platform.getConnectivityMonitor();

objectbox-java/src/main/java/io/objectbox/sync/SyncCredentials.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,6 @@ public long getTypeId() {
9292
* This can be useful to use the same credentials when creating multiple clients or a server in combination with a
9393
* client as some credentials may get cleared when building a client or server.
9494
*/
95-
public abstract SyncCredentials createClone();
95+
abstract SyncCredentials createClone();
9696

9797
}

objectbox-java/src/main/java/io/objectbox/sync/SyncCredentialsToken.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public void clear() {
7575
}
7676

7777
@Override
78-
public SyncCredentialsToken createClone() {
78+
SyncCredentialsToken createClone() {
7979
if (cleared) {
8080
throw new IllegalStateException("Cannot clone: credentials already have been cleared");
8181
}

objectbox-java/src/main/java/io/objectbox/sync/SyncCredentialsUserPassword.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public String getPassword() {
4343
}
4444

4545
@Override
46-
public SyncCredentials createClone() {
46+
SyncCredentials createClone() {
4747
return new SyncCredentialsUserPassword(this.username, this.password);
4848
}
4949
}

objectbox-java/src/main/java/io/objectbox/sync/server/SyncHybrid.java renamed to objectbox-java/src/main/java/io/objectbox/sync/SyncHybrid.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
* limitations under the License.
1515
*/
1616

17-
package io.objectbox.sync.server;
17+
package io.objectbox.sync;
1818

1919
import java.io.Closeable;
2020

2121
import io.objectbox.BoxStore;
22-
import io.objectbox.sync.SyncClient;
22+
import io.objectbox.sync.server.SyncServer;
2323

2424
/**
2525
* The SyncHybrid combines the functionality of a Sync Client and a Sync Server.
@@ -36,7 +36,7 @@ public final class SyncHybrid implements Closeable {
3636
private BoxStore storeServer;
3737
private final SyncServer server;
3838

39-
public SyncHybrid(BoxStore store, SyncClient client, BoxStore storeServer, SyncServer server) {
39+
SyncHybrid(BoxStore store, SyncClient client, BoxStore storeServer, SyncServer server) {
4040
this.store = store;
4141
this.client = client;
4242
this.storeServer = storeServer;

objectbox-java/src/main/java/io/objectbox/sync/server/SyncHybridBuilder.java renamed to objectbox-java/src/main/java/io/objectbox/sync/SyncHybridBuilder.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,14 @@
1414
* limitations under the License.
1515
*/
1616

17-
package io.objectbox.sync.server;
17+
package io.objectbox.sync;
1818

1919
import io.objectbox.BoxStore;
2020
import io.objectbox.BoxStoreBuilder;
2121
import io.objectbox.InternalAccess;
2222
import io.objectbox.annotation.apihint.Internal;
23-
import io.objectbox.sync.Sync;
24-
import io.objectbox.sync.SyncBuilder;
25-
import io.objectbox.sync.SyncClient;
26-
import io.objectbox.sync.SyncCredentials;
23+
import io.objectbox.sync.server.SyncServer;
24+
import io.objectbox.sync.server.SyncServerBuilder;
2725

2826
/**
2927
* Allows to configure the client and server setup to build a {@link SyncHybrid}.
@@ -42,7 +40,7 @@ public final class SyncHybridBuilder {
4240
* Internal API; use {@link Sync#hybrid(BoxStoreBuilder, String, SyncCredentials)} instead.
4341
*/
4442
@Internal
45-
public SyncHybridBuilder(BoxStoreBuilder storeBuilder, String url, SyncCredentials authenticatorCredentials) {
43+
SyncHybridBuilder(BoxStoreBuilder storeBuilder, String url, SyncCredentials authenticatorCredentials) {
4644
BoxStoreBuilder storeBuilderServer = InternalAccess.clone(storeBuilder, "-server");
4745
boxStore = storeBuilder.build();
4846
boxStoreServer = storeBuilderServer.build();
@@ -74,8 +72,9 @@ public SyncHybrid buildAndStart() {
7472
// Build and start the server first, we may need to get a port for the client
7573
SyncServer server = serverBuilder.buildAndStart();
7674

77-
clientBuilder.lateUrl(server.getUrl());
78-
SyncClient client = clientBuilder.buildAndStart();
75+
SyncClient client = clientBuilder
76+
.serverUrl(server.getUrl())
77+
.buildAndStart();
7978

8079
return new SyncHybrid(boxStore, client, boxStoreServer, server);
8180
}

objectbox-java/src/main/java/io/objectbox/sync/server/SyncServerBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import javax.annotation.Nullable;
2525

2626
import io.objectbox.BoxStore;
27+
import io.objectbox.annotation.apihint.Internal;
2728
import io.objectbox.flatbuffers.FlatBufferBuilder;
2829
import io.objectbox.sync.Credentials;
2930
import io.objectbox.sync.Sync;
@@ -56,6 +57,7 @@ public class SyncServerBuilder {
5657
/**
5758
* Use {@link Sync#server(BoxStore, String, SyncCredentials)} instead.
5859
*/
60+
@Internal
5961
public SyncServerBuilder(BoxStore boxStore, String url, SyncCredentials authenticatorCredentials) {
6062
checkNotNull(boxStore, "BoxStore is required.");
6163
checkNotNull(url, "Sync server URL is required.");

0 commit comments

Comments
 (0)