Skip to content

Commit e852950

Browse files
feat: Enable REST transport for most of Java and Go clients (googleapis#656)
- [ ] Regenerate this pull request now. PiperOrigin-RevId: 456641589 Source-Link: googleapis/googleapis@8a251f5 Source-Link: https://github.com/googleapis/googleapis-gen/commit/4ca52a529cf01308d9714950edffbea3560cfbdb Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNGNhNTJhNTI5Y2YwMTMwOGQ5NzE0OTUwZWRmZmJlYTM1NjBjZmJkYiJ9
1 parent 88e0454 commit e852950

File tree

125 files changed

+9908
-22
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+9908
-22
lines changed

java-redis/google-cloud-redis/pom.xml

+16
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@
6262
<groupId>com.google.api</groupId>
6363
<artifactId>gax-grpc</artifactId>
6464
</dependency>
65+
<dependency>
66+
<groupId>com.google.api</groupId>
67+
<artifactId>gax-httpjson</artifactId>
68+
</dependency>
6569
<dependency>
6670
<groupId>org.threeten</groupId>
6771
<artifactId>threetenbp</artifactId>
@@ -89,12 +93,24 @@
8993
<scope>test</scope>
9094
</dependency>
9195
<!-- Need testing utility classes for generated gRPC clients tests -->
96+
<dependency>
97+
<groupId>com.google.api</groupId>
98+
<artifactId>gax</artifactId>
99+
<classifier>testlib</classifier>
100+
<scope>test</scope>
101+
</dependency>
92102
<dependency>
93103
<groupId>com.google.api</groupId>
94104
<artifactId>gax-grpc</artifactId>
95105
<classifier>testlib</classifier>
96106
<scope>test</scope>
97107
</dependency>
108+
<dependency>
109+
<groupId>com.google.api</groupId>
110+
<artifactId>gax-httpjson</artifactId>
111+
<classifier>testlib</classifier>
112+
<scope>test</scope>
113+
</dependency>
98114
</dependencies>
99115

100116
<profiles>

java-redis/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisClient.java

+32-5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.api.core.ApiFuture;
2020
import com.google.api.core.ApiFutures;
2121
import com.google.api.gax.core.BackgroundResource;
22+
import com.google.api.gax.httpjson.longrunning.OperationsClient;
2223
import com.google.api.gax.longrunning.OperationFuture;
2324
import com.google.api.gax.paging.AbstractFixedSizeCollection;
2425
import com.google.api.gax.paging.AbstractPage;
@@ -30,7 +31,6 @@
3031
import com.google.cloud.redis.v1.stub.CloudRedisStubSettings;
3132
import com.google.common.util.concurrent.MoreExecutors;
3233
import com.google.longrunning.Operation;
33-
import com.google.longrunning.OperationsClient;
3434
import com.google.protobuf.Empty;
3535
import com.google.protobuf.FieldMask;
3636
import com.google.protobuf.Timestamp;
@@ -122,13 +122,28 @@
122122
* CloudRedisClient cloudRedisClient = CloudRedisClient.create(cloudRedisSettings);
123123
* }</pre>
124124
*
125+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
126+
* the wire:
127+
*
128+
* <pre>{@code
129+
* // This snippet has been automatically generated for illustrative purposes only.
130+
* // It may require modifications to work in your environment.
131+
* CloudRedisSettings cloudRedisSettings =
132+
* CloudRedisSettings.newBuilder()
133+
* .setTransportChannelProvider(
134+
* CloudRedisSettings.defaultHttpJsonTransportProviderBuilder().build())
135+
* .build();
136+
* CloudRedisClient cloudRedisClient = CloudRedisClient.create(cloudRedisSettings);
137+
* }</pre>
138+
*
125139
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
126140
*/
127141
@Generated("by gapic-generator-java")
128142
public class CloudRedisClient implements BackgroundResource {
129143
private final CloudRedisSettings settings;
130144
private final CloudRedisStub stub;
131-
private final OperationsClient operationsClient;
145+
private final OperationsClient httpJsonOperationsClient;
146+
private final com.google.longrunning.OperationsClient operationsClient;
132147

133148
/** Constructs an instance of CloudRedisClient with default settings. */
134149
public static final CloudRedisClient create() throws IOException {
@@ -158,13 +173,17 @@ public static final CloudRedisClient create(CloudRedisStub stub) {
158173
protected CloudRedisClient(CloudRedisSettings settings) throws IOException {
159174
this.settings = settings;
160175
this.stub = ((CloudRedisStubSettings) settings.getStubSettings()).createStub();
161-
this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
176+
this.operationsClient =
177+
com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
178+
this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
162179
}
163180

164181
protected CloudRedisClient(CloudRedisStub stub) {
165182
this.settings = null;
166183
this.stub = stub;
167-
this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
184+
this.operationsClient =
185+
com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
186+
this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
168187
}
169188

170189
public final CloudRedisSettings getSettings() {
@@ -179,10 +198,18 @@ public CloudRedisStub getStub() {
179198
* Returns the OperationsClient that can be used to query the status of a long-running operation
180199
* returned by another API method call.
181200
*/
182-
public final OperationsClient getOperationsClient() {
201+
public final com.google.longrunning.OperationsClient getOperationsClient() {
183202
return operationsClient;
184203
}
185204

205+
/**
206+
* Returns the OperationsClient that can be used to query the status of a long-running operation
207+
* returned by another API method call.
208+
*/
209+
public final OperationsClient getHttpJsonOperationsClient() {
210+
return httpJsonOperationsClient;
211+
}
212+
186213
// AUTO-GENERATED DOCUMENTATION AND METHOD.
187214
/**
188215
* Lists all Redis instances owned by a project in either the specified location (region) or all

java-redis/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisSettings.java

+21-2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.api.gax.core.GoogleCredentialsProvider;
2424
import com.google.api.gax.core.InstantiatingExecutorProvider;
2525
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
26+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
2627
import com.google.api.gax.rpc.ApiClientHeaderProvider;
2728
import com.google.api.gax.rpc.ClientContext;
2829
import com.google.api.gax.rpc.ClientSettings;
@@ -203,11 +204,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
203204
return CloudRedisStubSettings.defaultCredentialsProviderBuilder();
204205
}
205206

206-
/** Returns a builder for the default ChannelProvider for this service. */
207+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
207208
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
208209
return CloudRedisStubSettings.defaultGrpcTransportProviderBuilder();
209210
}
210211

212+
/** Returns a builder for the default REST ChannelProvider for this service. */
213+
@BetaApi
214+
public static InstantiatingHttpJsonChannelProvider.Builder
215+
defaultHttpJsonTransportProviderBuilder() {
216+
return CloudRedisStubSettings.defaultHttpJsonTransportProviderBuilder();
217+
}
218+
211219
public static TransportChannelProvider defaultTransportChannelProvider() {
212220
return CloudRedisStubSettings.defaultTransportChannelProvider();
213221
}
@@ -217,11 +225,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
217225
return CloudRedisStubSettings.defaultApiClientHeaderProviderBuilder();
218226
}
219227

220-
/** Returns a new builder for this class. */
228+
/** Returns a new gRPC builder for this class. */
221229
public static Builder newBuilder() {
222230
return Builder.createDefault();
223231
}
224232

233+
/** Returns a new REST builder for this class. */
234+
@BetaApi
235+
public static Builder newHttpJsonBuilder() {
236+
return Builder.createHttpJsonDefault();
237+
}
238+
225239
/** Returns a new builder for this class. */
226240
public static Builder newBuilder(ClientContext clientContext) {
227241
return new Builder(clientContext);
@@ -259,6 +273,11 @@ private static Builder createDefault() {
259273
return new Builder(CloudRedisStubSettings.newBuilder());
260274
}
261275

276+
@BetaApi
277+
private static Builder createHttpJsonDefault() {
278+
return new Builder(CloudRedisStubSettings.newHttpJsonBuilder());
279+
}
280+
262281
public CloudRedisStubSettings.Builder getStubSettingsBuilder() {
263282
return ((CloudRedisStubSettings.Builder) getStubSettings());
264283
}

java-redis/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStub.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@
5151
public abstract class CloudRedisStub implements BackgroundResource {
5252

5353
public OperationsStub getOperationsStub() {
54-
throw new UnsupportedOperationException("Not implemented: getOperationsStub()");
54+
return null;
55+
}
56+
57+
public com.google.api.gax.httpjson.longrunning.stub.OperationsStub getHttpJsonOperationsStub() {
58+
return null;
5559
}
5660

5761
public UnaryCallable<ListInstancesRequest, ListInstancesPagedResponse>

java-redis/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStubSettings.java

+50-3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
import com.google.api.gax.grpc.GrpcTransportChannel;
2929
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
3030
import com.google.api.gax.grpc.ProtoOperationTransformers;
31+
import com.google.api.gax.httpjson.GaxHttpJsonProperties;
32+
import com.google.api.gax.httpjson.HttpJsonTransportChannel;
33+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
3134
import com.google.api.gax.longrunning.OperationSnapshot;
3235
import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
3336
import com.google.api.gax.retrying.RetrySettings;
@@ -306,6 +309,11 @@ public CloudRedisStub createStub() throws IOException {
306309
.equals(GrpcTransportChannel.getGrpcTransportName())) {
307310
return GrpcCloudRedisStub.create(this);
308311
}
312+
if (getTransportChannelProvider()
313+
.getTransportName()
314+
.equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
315+
return HttpJsonCloudRedisStub.create(this);
316+
}
309317
throw new UnsupportedOperationException(
310318
String.format(
311319
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -338,30 +346,56 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
338346
.setUseJwtAccessWithScope(true);
339347
}
340348

341-
/** Returns a builder for the default ChannelProvider for this service. */
349+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
342350
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
343351
return InstantiatingGrpcChannelProvider.newBuilder()
344352
.setMaxInboundMessageSize(Integer.MAX_VALUE);
345353
}
346354

355+
/** Returns a builder for the default REST ChannelProvider for this service. */
356+
@BetaApi
357+
public static InstantiatingHttpJsonChannelProvider.Builder
358+
defaultHttpJsonTransportProviderBuilder() {
359+
return InstantiatingHttpJsonChannelProvider.newBuilder();
360+
}
361+
347362
public static TransportChannelProvider defaultTransportChannelProvider() {
348363
return defaultGrpcTransportProviderBuilder().build();
349364
}
350365

351366
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
352-
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
367+
public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
353368
return ApiClientHeaderProvider.newBuilder()
354369
.setGeneratedLibToken(
355370
"gapic", GaxProperties.getLibraryVersion(CloudRedisStubSettings.class))
356371
.setTransportToken(
357372
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
358373
}
359374

360-
/** Returns a new builder for this class. */
375+
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
376+
public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
377+
return ApiClientHeaderProvider.newBuilder()
378+
.setGeneratedLibToken(
379+
"gapic", GaxProperties.getLibraryVersion(CloudRedisStubSettings.class))
380+
.setTransportToken(
381+
GaxHttpJsonProperties.getHttpJsonTokenName(),
382+
GaxHttpJsonProperties.getHttpJsonVersion());
383+
}
384+
385+
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
386+
return CloudRedisStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
387+
}
388+
389+
/** Returns a new gRPC builder for this class. */
361390
public static Builder newBuilder() {
362391
return Builder.createDefault();
363392
}
364393

394+
/** Returns a new REST builder for this class. */
395+
public static Builder newHttpJsonBuilder() {
396+
return Builder.createHttpJsonDefault();
397+
}
398+
365399
/** Returns a new builder for this class. */
366400
public static Builder newBuilder(ClientContext clientContext) {
367401
return new Builder(clientContext);
@@ -562,6 +596,19 @@ private static Builder createDefault() {
562596
return initDefaults(builder);
563597
}
564598

599+
private static Builder createHttpJsonDefault() {
600+
Builder builder = new Builder(((ClientContext) null));
601+
602+
builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
603+
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
604+
builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
605+
builder.setEndpoint(getDefaultEndpoint());
606+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
607+
builder.setSwitchToMtlsEndpointAllowed(true);
608+
609+
return initDefaults(builder);
610+
}
611+
565612
private static Builder initDefaults(Builder builder) {
566613
builder
567614
.listInstancesSettings()

0 commit comments

Comments
 (0)