Skip to content

Commit 80dcf14

Browse files
committed
feat(Datastore): Swap the default transport from HttpJson to gRPC
1 parent 1721e7c commit 80dcf14

2 files changed

Lines changed: 30 additions & 7 deletions

File tree

java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreOptions.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,21 +131,26 @@ public static class Builder extends ServiceOptions.Builder<Datastore, DatastoreO
131131

132132
@Nullable private DatastoreOpenTelemetryOptions openTelemetryOptions = null;
133133

134-
private Builder() {}
134+
private Builder() {
135+
this.transportOptions = new DatastoreDefaults().getDefaultTransportOptions();
136+
}
135137

136138
private Builder(DatastoreOptions options) {
137139
super(options);
138140
this.namespace = options.namespace;
139141
this.databaseId = options.databaseId;
140142
this.openTelemetryOptions = options.openTelemetryOptions;
141143
this.channelProvider = validateChannelProvider(options.channelProvider);
144+
this.host = options.getHost();
145+
this.transportOptions = options.getTransportOptions();
142146
}
143147

144148
@Override
145149
public Builder setTransportOptions(TransportOptions transportOptions) {
146-
if (!(transportOptions instanceof HttpTransportOptions)) {
150+
if (!(transportOptions instanceof HttpTransportOptions)
151+
&& !(transportOptions instanceof GrpcTransportOptions)) {
147152
throw new IllegalArgumentException(
148-
"Only http transport is allowed for " + API_SHORT_NAME + ".");
153+
"Only http and grpc transport are allowed for " + API_SHORT_NAME + ".");
149154
}
150155
this.transportOptions = transportOptions;
151156
return super.setTransportOptions(transportOptions);
@@ -308,8 +313,8 @@ public TransportOptions getDefaultTransportOptions() {
308313
return TRANSPORT_OPTIONS;
309314
}
310315

311-
public static HttpTransportOptions.Builder getDefaultTransportOptionsBuilder() {
312-
return HttpTransportOptions.newBuilder();
316+
public static GrpcTransportOptions.Builder getDefaultTransportOptionsBuilder() {
317+
return GrpcTransportOptions.newBuilder();
313318
}
314319
}
315320

java-datastore/google-cloud-datastore/src/test/java/com/google/cloud/datastore/DatastoreOptionsTest.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,17 @@ public void testInvalidConfigForHttp() {
281281

282282
@Test
283283
public void testTransport() {
284-
// default http transport
285-
assertThat(options.build().getTransportOptions()).isInstanceOf(HttpTransportOptions.class);
284+
// default grpc transport
285+
assertThat(options.build().getTransportOptions()).isInstanceOf(GrpcTransportOptions.class);
286+
287+
// custom http transport
288+
DatastoreOptions httpTransportOptions =
289+
DatastoreOptions.newBuilder()
290+
.setTransportOptions(HttpTransportOptions.newBuilder().build())
291+
.setProjectId(PROJECT_ID)
292+
.setCredentials(NoCredentials.getInstance())
293+
.build();
294+
assertThat(httpTransportOptions.getTransportOptions()).isInstanceOf(HttpTransportOptions.class);
286295

287296
// custom grpc transport
288297
DatastoreOptions grpcTransportOptions =
@@ -317,15 +326,24 @@ public void testHostWithGrpcAndHttp() {
317326
.build();
318327
assertThat(grpcTransportOptionsCustomHost.getHost()).isEqualTo(customHost);
319328

329+
DatastoreOptions defaultTransportOptions =
330+
DatastoreOptions.newBuilder()
331+
.setProjectId(PROJECT_ID)
332+
.setCredentials(NoCredentials.getInstance())
333+
.build();
334+
assertThat(defaultTransportOptions.getHost()).isEqualTo(DatastoreSettings.getDefaultEndpoint());
335+
320336
DatastoreOptions httpTransportOptions =
321337
DatastoreOptions.newBuilder()
338+
.setTransportOptions(HttpTransportOptions.newBuilder().build())
322339
.setProjectId(PROJECT_ID)
323340
.setCredentials(NoCredentials.getInstance())
324341
.build();
325342
assertThat(httpTransportOptions.getHost()).isEqualTo(DatastoreFactory.DEFAULT_HOST);
326343

327344
DatastoreOptions httpTransportOptionsCustomHost =
328345
DatastoreOptions.newBuilder()
346+
.setTransportOptions(HttpTransportOptions.newBuilder().build())
329347
.setHost(customHost)
330348
.setProjectId(PROJECT_ID)
331349
.setCredentials(NoCredentials.getInstance())

0 commit comments

Comments
 (0)