Skip to content

Commit 4ee028e

Browse files
feat: use existing transport options API to set transport (#1276)
* feat: use existing transport options API to set transport * lint * remove stale test * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent c3038bf commit 4ee028e

File tree

5 files changed

+32
-61
lines changed

5 files changed

+32
-61
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ implementation 'com.google.cloud:google-cloud-datastore'
5757
If you are using Gradle without BOM, add this to your dependencies:
5858

5959
```Groovy
60-
implementation 'com.google.cloud:google-cloud-datastore:2.17.6'
60+
implementation 'com.google.cloud:google-cloud-datastore:2.18.0'
6161
```
6262

6363
If you are using SBT, add this to your dependencies:
6464

6565
```Scala
66-
libraryDependencies += "com.google.cloud" % "google-cloud-datastore" % "2.17.6"
66+
libraryDependencies += "com.google.cloud" % "google-cloud-datastore" % "2.18.0"
6767
```
6868
<!-- {x-version-update-end} -->
6969

@@ -380,7 +380,7 @@ Java is a registered trademark of Oracle and/or its affiliates.
380380
[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-datastore/java11.html
381381
[stability-image]: https://img.shields.io/badge/stability-stable-green
382382
[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-datastore.svg
383-
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-datastore/2.17.6
383+
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-datastore/2.18.0
384384
[authentication]: https://github.com/googleapis/google-cloud-java#authentication
385385
[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes
386386
[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles

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

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,18 @@
1717
package com.google.cloud.datastore;
1818

1919
import static com.google.cloud.datastore.Validator.validateNamespace;
20-
import static com.google.cloud.datastore.spi.v1.DatastoreRpc.Transport.GRPC;
2120

2221
import com.google.cloud.ServiceDefaults;
2322
import com.google.cloud.ServiceOptions;
2423
import com.google.cloud.ServiceRpc;
2524
import com.google.cloud.TransportOptions;
2625
import com.google.cloud.datastore.spi.DatastoreRpcFactory;
2726
import com.google.cloud.datastore.spi.v1.DatastoreRpc;
28-
import com.google.cloud.datastore.spi.v1.DatastoreRpc.Transport;
2927
import com.google.cloud.datastore.spi.v1.GrpcDatastoreRpc;
3028
import com.google.cloud.datastore.spi.v1.HttpDatastoreRpc;
3129
import com.google.cloud.datastore.v1.DatastoreSettings;
30+
import com.google.cloud.grpc.GrpcTransportOptions;
3231
import com.google.cloud.http.HttpTransportOptions;
33-
import com.google.common.annotations.VisibleForTesting;
3432
import com.google.common.base.MoreObjects;
3533
import com.google.common.collect.ImmutableSet;
3634
import java.io.IOException;
@@ -50,7 +48,6 @@ public class DatastoreOptions extends ServiceOptions<Datastore, DatastoreOptions
5048

5149
private final String namespace;
5250
private final String databaseId;
53-
private final Transport transport;
5451

5552
public static class DefaultDatastoreFactory implements DatastoreFactory {
5653

@@ -69,9 +66,14 @@ public static class DefaultDatastoreRpcFactory implements DatastoreRpcFactory {
6966
@Override
7067
public ServiceRpc create(DatastoreOptions options) {
7168
try {
72-
return options.transport == GRPC
73-
? new GrpcDatastoreRpc(options)
74-
: new HttpDatastoreRpc(options);
69+
if (options.getTransportOptions() instanceof GrpcTransportOptions) {
70+
return new GrpcDatastoreRpc(options);
71+
} else if (options.getTransportOptions() instanceof HttpTransportOptions) {
72+
return new HttpDatastoreRpc(options);
73+
} else {
74+
throw new IllegalArgumentException(
75+
"unknown transport type: " + options.getTransportOptions());
76+
}
7577
} catch (IOException e) {
7678
throw new RuntimeException(e);
7779
}
@@ -82,23 +84,17 @@ public static class Builder extends ServiceOptions.Builder<Datastore, DatastoreO
8284

8385
private String namespace;
8486
private String databaseId;
85-
private Transport transport = GRPC;
8687

8788
private Builder() {}
8889

8990
private Builder(DatastoreOptions options) {
9091
super(options);
9192
namespace = options.namespace;
9293
databaseId = options.databaseId;
93-
transport = options.transport;
9494
}
9595

9696
@Override
9797
public Builder setTransportOptions(TransportOptions transportOptions) {
98-
if (!(transportOptions instanceof HttpTransportOptions)) {
99-
throw new IllegalArgumentException(
100-
"Only http transport is allowed for " + API_SHORT_NAME + ".");
101-
}
10298
return super.setTransportOptions(transportOptions);
10399
}
104100

@@ -117,18 +113,12 @@ public Builder setDatabaseId(String databaseId) {
117113
this.databaseId = databaseId;
118114
return this;
119115
}
120-
121-
public Builder setTransport(Transport transport) {
122-
this.transport = transport;
123-
return this;
124-
}
125116
}
126117

127118
private DatastoreOptions(Builder builder) {
128119
super(DatastoreFactory.class, DatastoreRpcFactory.class, builder, new DatastoreDefaults());
129120
namespace = MoreObjects.firstNonNull(builder.namespace, defaultNamespace());
130121
databaseId = MoreObjects.firstNonNull(builder.databaseId, DEFAULT_DATABASE_ID);
131-
transport = builder.transport;
132122
}
133123

134124
@Override
@@ -157,14 +147,18 @@ public DatastoreRpcFactory getDefaultRpcFactory() {
157147

158148
@Override
159149
public TransportOptions getDefaultTransportOptions() {
160-
return getDefaultHttpTransportOptions();
150+
return getDefaultGrpcTransportOptions();
161151
}
162152
}
163153

164154
public static HttpTransportOptions getDefaultHttpTransportOptions() {
165155
return HttpTransportOptions.newBuilder().build();
166156
}
167157

158+
public static GrpcTransportOptions getDefaultGrpcTransportOptions() {
159+
return GrpcTransportOptions.newBuilder().build();
160+
}
161+
168162
/** Returns the default namespace to be used by the datastore service. */
169163
public String getNamespace() {
170164
return namespace;
@@ -174,12 +168,6 @@ public String getDatabaseId() {
174168
return this.databaseId;
175169
}
176170

177-
/** Returns the current transport */
178-
@VisibleForTesting
179-
Transport getTransport() {
180-
return this.transport;
181-
}
182-
183171
/** Returns a default {@code DatastoreOptions} instance. */
184172
public static DatastoreOptions getDefaultInstance() {
185173
return newBuilder().build();

google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/DatastoreRpc.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package com.google.cloud.datastore.spi.v1;
1818

19-
import com.google.api.core.InternalApi;
2019
import com.google.api.core.InternalExtensionOnly;
2120
import com.google.api.gax.rpc.HeaderProvider;
2221
import com.google.cloud.ServiceRpc;
@@ -117,11 +116,4 @@ protected DatastoreSettings.Builder setInternalHeaderProvider(
117116
return super.setInternalHeaderProvider(internalHeaderProvider);
118117
}
119118
}
120-
121-
/** Transport used to sending requests. */
122-
@InternalApi
123-
enum Transport {
124-
GRPC,
125-
HTTP
126-
}
127119
}

google-cloud-datastore/src/main/java/com/google/cloud/datastore/testing/RemoteDatastoreHelper.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.cloud.datastore.Query;
2525
import com.google.cloud.datastore.QueryResults;
2626
import com.google.cloud.datastore.StructuredQuery;
27+
import com.google.cloud.grpc.GrpcTransportOptions;
2728
import com.google.cloud.http.HttpTransportOptions;
2829
import java.util.UUID;
2930
import org.threeten.bp.Duration;
@@ -79,9 +80,7 @@ public static RemoteDatastoreHelper create() {
7980

8081
/** Creates a {@code RemoteStorageHelper} object. */
8182
public static RemoteDatastoreHelper create(String databaseId) {
82-
HttpTransportOptions transportOptions = DatastoreOptions.getDefaultHttpTransportOptions();
83-
transportOptions =
84-
transportOptions.toBuilder().setConnectTimeout(60000).setReadTimeout(60000).build();
83+
GrpcTransportOptions transportOptions = DatastoreOptions.getDefaultGrpcTransportOptions();
8584
DatastoreOptions datastoreOption =
8685
DatastoreOptions.newBuilder()
8786
.setDatabaseId(databaseId)

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

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,17 @@
1616

1717
package com.google.cloud.datastore;
1818

19-
import static com.google.cloud.datastore.spi.v1.DatastoreRpc.Transport.GRPC;
20-
import static com.google.cloud.datastore.spi.v1.DatastoreRpc.Transport.HTTP;
2119
import static com.google.common.truth.Truth.assertThat;
2220
import static org.junit.Assert.assertEquals;
2321
import static org.junit.Assert.assertNotEquals;
24-
import static org.junit.Assert.assertNotNull;
2522
import static org.junit.Assert.assertSame;
2623
import static org.junit.Assert.assertTrue;
2724

28-
import com.google.cloud.TransportOptions;
2925
import com.google.cloud.datastore.spi.DatastoreRpcFactory;
3026
import com.google.cloud.datastore.spi.v1.DatastoreRpc;
27+
import com.google.cloud.grpc.GrpcTransportOptions;
28+
import com.google.cloud.http.HttpTransportOptions;
3129
import org.easymock.EasyMock;
32-
import org.junit.Assert;
3330
import org.junit.Before;
3431
import org.junit.Test;
3532

@@ -87,17 +84,23 @@ public void testDatastore() {
8784
@Test
8885
public void testTransport() {
8986
// default grpc transport
90-
assertThat(options.build().getTransport()).isEqualTo(GRPC);
87+
assertThat(options.build().getTransportOptions()).isInstanceOf(GrpcTransportOptions.class);
9188

9289
// custom http transport
9390
DatastoreOptions httpDatastoreOptions =
94-
DatastoreOptions.newBuilder().setTransport(HTTP).setProjectId(PROJECT_ID).build();
95-
assertThat(httpDatastoreOptions.getTransport()).isEqualTo(HTTP);
91+
DatastoreOptions.newBuilder()
92+
.setTransportOptions(HttpTransportOptions.newBuilder().build())
93+
.setProjectId(PROJECT_ID)
94+
.build();
95+
assertThat(httpDatastoreOptions.getTransportOptions()).isInstanceOf(HttpTransportOptions.class);
9696

9797
// custom grpc transport
9898
DatastoreOptions grpcDatastoreOptions =
99-
DatastoreOptions.newBuilder().setTransport(GRPC).setProjectId(PROJECT_ID).build();
100-
assertThat(grpcDatastoreOptions.getTransport()).isEqualTo(GRPC);
99+
DatastoreOptions.newBuilder()
100+
.setTransportOptions(GrpcTransportOptions.newBuilder().build())
101+
.setProjectId(PROJECT_ID)
102+
.build();
103+
assertThat(grpcDatastoreOptions.getTransportOptions()).isInstanceOf(GrpcTransportOptions.class);
101104
}
102105

103106
@Test
@@ -116,15 +119,4 @@ public void testToBuilder() {
116119
assertNotEquals(original, newOptions);
117120
assertNotEquals(original.hashCode(), newOptions.hashCode());
118121
}
119-
120-
@Test
121-
public void testInvalidTransport() {
122-
try {
123-
DatastoreOptions.newBuilder()
124-
.setTransportOptions(EasyMock.createMock(TransportOptions.class));
125-
Assert.fail();
126-
} catch (IllegalArgumentException ex) {
127-
assertNotNull(ex.getMessage());
128-
}
129-
}
130122
}

0 commit comments

Comments
 (0)