Skip to content
This repository was archived by the owner on Sep 27, 2023. It is now read-only.

Commit ee7c19b

Browse files
feat: Enable REST transport for most of Java and Go clients (#1402)
- [ ] 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 20e4915 commit ee7c19b

File tree

7 files changed

+3014
-6
lines changed

7 files changed

+3014
-6
lines changed

google-cloud-bigquerydatatransfer/pom.xml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@
5858
<groupId>com.google.api</groupId>
5959
<artifactId>gax-grpc</artifactId>
6060
</dependency>
61+
<dependency>
62+
<groupId>com.google.api</groupId>
63+
<artifactId>gax-httpjson</artifactId>
64+
</dependency>
6165
<dependency>
6266
<groupId>org.threeten</groupId>
6367
<artifactId>threetenbp</artifactId>
@@ -69,19 +73,30 @@
6973
<artifactId>junit</artifactId>
7074
<scope>test</scope>
7175
</dependency>
72-
7376
<dependency>
7477
<groupId>com.google.api.grpc</groupId>
7578
<artifactId>grpc-google-cloud-bigquerydatatransfer-v1</artifactId>
7679
<scope>test</scope>
7780
</dependency>
7881
<!-- Need testing utility classes for generated gRPC clients tests -->
82+
<dependency>
83+
<groupId>com.google.api</groupId>
84+
<artifactId>gax</artifactId>
85+
<classifier>testlib</classifier>
86+
<scope>test</scope>
87+
</dependency>
7988
<dependency>
8089
<groupId>com.google.api</groupId>
8190
<artifactId>gax-grpc</artifactId>
8291
<classifier>testlib</classifier>
8392
<scope>test</scope>
8493
</dependency>
94+
<dependency>
95+
<groupId>com.google.api</groupId>
96+
<artifactId>gax-httpjson</artifactId>
97+
<classifier>testlib</classifier>
98+
<scope>test</scope>
99+
</dependency>
85100
</dependencies>
86101

87102
<build>

google-cloud-bigquerydatatransfer/src/main/java/com/google/cloud/bigquery/datatransfer/v1/DataTransferServiceClient.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,21 @@
104104
* DataTransferServiceClient.create(dataTransferServiceSettings);
105105
* }</pre>
106106
*
107+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
108+
* the wire:
109+
*
110+
* <pre>{@code
111+
* // This snippet has been automatically generated for illustrative purposes only.
112+
* // It may require modifications to work in your environment.
113+
* DataTransferServiceSettings dataTransferServiceSettings =
114+
* DataTransferServiceSettings.newBuilder()
115+
* .setTransportChannelProvider(
116+
* DataTransferServiceSettings.defaultHttpJsonTransportProviderBuilder().build())
117+
* .build();
118+
* DataTransferServiceClient dataTransferServiceClient =
119+
* DataTransferServiceClient.create(dataTransferServiceSettings);
120+
* }</pre>
121+
*
107122
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
108123
*/
109124
@Generated("by gapic-generator-java")

google-cloud-bigquerydatatransfer/src/main/java/com/google/cloud/bigquery/datatransfer/v1/DataTransferServiceSettings.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.google.api.gax.core.GoogleCredentialsProvider;
2727
import com.google.api.gax.core.InstantiatingExecutorProvider;
2828
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
29+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
2930
import com.google.api.gax.rpc.ApiClientHeaderProvider;
3031
import com.google.api.gax.rpc.ClientContext;
3132
import com.google.api.gax.rpc.ClientSettings;
@@ -195,11 +196,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
195196
return DataTransferServiceStubSettings.defaultCredentialsProviderBuilder();
196197
}
197198

198-
/** Returns a builder for the default ChannelProvider for this service. */
199+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
199200
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
200201
return DataTransferServiceStubSettings.defaultGrpcTransportProviderBuilder();
201202
}
202203

204+
/** Returns a builder for the default REST ChannelProvider for this service. */
205+
@BetaApi
206+
public static InstantiatingHttpJsonChannelProvider.Builder
207+
defaultHttpJsonTransportProviderBuilder() {
208+
return DataTransferServiceStubSettings.defaultHttpJsonTransportProviderBuilder();
209+
}
210+
203211
public static TransportChannelProvider defaultTransportChannelProvider() {
204212
return DataTransferServiceStubSettings.defaultTransportChannelProvider();
205213
}
@@ -209,11 +217,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
209217
return DataTransferServiceStubSettings.defaultApiClientHeaderProviderBuilder();
210218
}
211219

212-
/** Returns a new builder for this class. */
220+
/** Returns a new gRPC builder for this class. */
213221
public static Builder newBuilder() {
214222
return Builder.createDefault();
215223
}
216224

225+
/** Returns a new REST builder for this class. */
226+
@BetaApi
227+
public static Builder newHttpJsonBuilder() {
228+
return Builder.createHttpJsonDefault();
229+
}
230+
217231
/** Returns a new builder for this class. */
218232
public static Builder newBuilder(ClientContext clientContext) {
219233
return new Builder(clientContext);
@@ -251,6 +265,11 @@ private static Builder createDefault() {
251265
return new Builder(DataTransferServiceStubSettings.newBuilder());
252266
}
253267

268+
@BetaApi
269+
private static Builder createHttpJsonDefault() {
270+
return new Builder(DataTransferServiceStubSettings.newHttpJsonBuilder());
271+
}
272+
254273
public DataTransferServiceStubSettings.Builder getStubSettingsBuilder() {
255274
return ((DataTransferServiceStubSettings.Builder) getStubSettings());
256275
}

google-cloud-bigquerydatatransfer/src/main/java/com/google/cloud/bigquery/datatransfer/v1/stub/DataTransferServiceStubSettings.java

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030
import com.google.api.gax.grpc.GaxGrpcProperties;
3131
import com.google.api.gax.grpc.GrpcTransportChannel;
3232
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
33+
import com.google.api.gax.httpjson.GaxHttpJsonProperties;
34+
import com.google.api.gax.httpjson.HttpJsonTransportChannel;
35+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
3336
import com.google.api.gax.retrying.RetrySettings;
3437
import com.google.api.gax.rpc.ApiCallContext;
3538
import com.google.api.gax.rpc.ApiClientHeaderProvider;
@@ -485,6 +488,11 @@ public DataTransferServiceStub createStub() throws IOException {
485488
.equals(GrpcTransportChannel.getGrpcTransportName())) {
486489
return GrpcDataTransferServiceStub.create(this);
487490
}
491+
if (getTransportChannelProvider()
492+
.getTransportName()
493+
.equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
494+
return HttpJsonDataTransferServiceStub.create(this);
495+
}
488496
throw new UnsupportedOperationException(
489497
String.format(
490498
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -517,30 +525,56 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
517525
.setUseJwtAccessWithScope(true);
518526
}
519527

520-
/** Returns a builder for the default ChannelProvider for this service. */
528+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
521529
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
522530
return InstantiatingGrpcChannelProvider.newBuilder()
523531
.setMaxInboundMessageSize(Integer.MAX_VALUE);
524532
}
525533

534+
/** Returns a builder for the default REST ChannelProvider for this service. */
535+
@BetaApi
536+
public static InstantiatingHttpJsonChannelProvider.Builder
537+
defaultHttpJsonTransportProviderBuilder() {
538+
return InstantiatingHttpJsonChannelProvider.newBuilder();
539+
}
540+
526541
public static TransportChannelProvider defaultTransportChannelProvider() {
527542
return defaultGrpcTransportProviderBuilder().build();
528543
}
529544

530545
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
531-
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
546+
public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
532547
return ApiClientHeaderProvider.newBuilder()
533548
.setGeneratedLibToken(
534549
"gapic", GaxProperties.getLibraryVersion(DataTransferServiceStubSettings.class))
535550
.setTransportToken(
536551
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
537552
}
538553

539-
/** Returns a new builder for this class. */
554+
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
555+
public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
556+
return ApiClientHeaderProvider.newBuilder()
557+
.setGeneratedLibToken(
558+
"gapic", GaxProperties.getLibraryVersion(DataTransferServiceStubSettings.class))
559+
.setTransportToken(
560+
GaxHttpJsonProperties.getHttpJsonTokenName(),
561+
GaxHttpJsonProperties.getHttpJsonVersion());
562+
}
563+
564+
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
565+
return DataTransferServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
566+
}
567+
568+
/** Returns a new gRPC builder for this class. */
540569
public static Builder newBuilder() {
541570
return Builder.createDefault();
542571
}
543572

573+
/** Returns a new REST builder for this class. */
574+
public static Builder newHttpJsonBuilder() {
575+
return Builder.createHttpJsonDefault();
576+
}
577+
544578
/** Returns a new builder for this class. */
545579
public static Builder newBuilder(ClientContext clientContext) {
546580
return new Builder(clientContext);
@@ -753,6 +787,19 @@ private static Builder createDefault() {
753787
return initDefaults(builder);
754788
}
755789

790+
private static Builder createHttpJsonDefault() {
791+
Builder builder = new Builder(((ClientContext) null));
792+
793+
builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
794+
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
795+
builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
796+
builder.setEndpoint(getDefaultEndpoint());
797+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
798+
builder.setSwitchToMtlsEndpointAllowed(true);
799+
800+
return initDefaults(builder);
801+
}
802+
756803
private static Builder initDefaults(Builder builder) {
757804
builder
758805
.getDataSourceSettings()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
/*
2+
* Copyright 2022 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.google.cloud.bigquery.datatransfer.v1.stub;
18+
19+
import com.google.api.core.BetaApi;
20+
import com.google.api.gax.httpjson.HttpJsonCallSettings;
21+
import com.google.api.gax.httpjson.HttpJsonCallableFactory;
22+
import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable;
23+
import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
24+
import com.google.api.gax.httpjson.longrunning.stub.OperationsStub;
25+
import com.google.api.gax.rpc.BatchingCallSettings;
26+
import com.google.api.gax.rpc.ClientContext;
27+
import com.google.api.gax.rpc.OperationCallSettings;
28+
import com.google.api.gax.rpc.OperationCallable;
29+
import com.google.api.gax.rpc.PagedCallSettings;
30+
import com.google.api.gax.rpc.ServerStreamingCallSettings;
31+
import com.google.api.gax.rpc.ServerStreamingCallable;
32+
import com.google.api.gax.rpc.UnaryCallSettings;
33+
import com.google.api.gax.rpc.UnaryCallable;
34+
import com.google.longrunning.Operation;
35+
import javax.annotation.Generated;
36+
37+
// AUTO-GENERATED DOCUMENTATION AND CLASS.
38+
/**
39+
* REST callable factory implementation for the DataTransferService service API.
40+
*
41+
* <p>This class is for advanced usage.
42+
*/
43+
@Generated("by gapic-generator-java")
44+
@BetaApi
45+
public class HttpJsonDataTransferServiceCallableFactory
46+
implements HttpJsonStubCallableFactory<Operation, OperationsStub> {
47+
48+
@Override
49+
public <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable(
50+
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
51+
UnaryCallSettings<RequestT, ResponseT> callSettings,
52+
ClientContext clientContext) {
53+
return HttpJsonCallableFactory.createUnaryCallable(
54+
httpJsonCallSettings, callSettings, clientContext);
55+
}
56+
57+
@Override
58+
public <RequestT, ResponseT, PagedListResponseT>
59+
UnaryCallable<RequestT, PagedListResponseT> createPagedCallable(
60+
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
61+
PagedCallSettings<RequestT, ResponseT, PagedListResponseT> callSettings,
62+
ClientContext clientContext) {
63+
return HttpJsonCallableFactory.createPagedCallable(
64+
httpJsonCallSettings, callSettings, clientContext);
65+
}
66+
67+
@Override
68+
public <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createBatchingCallable(
69+
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
70+
BatchingCallSettings<RequestT, ResponseT> callSettings,
71+
ClientContext clientContext) {
72+
return HttpJsonCallableFactory.createBatchingCallable(
73+
httpJsonCallSettings, callSettings, clientContext);
74+
}
75+
76+
@BetaApi(
77+
"The surface for long-running operations is not stable yet and may change in the future.")
78+
@Override
79+
public <RequestT, ResponseT, MetadataT>
80+
OperationCallable<RequestT, ResponseT, MetadataT> createOperationCallable(
81+
HttpJsonCallSettings<RequestT, Operation> httpJsonCallSettings,
82+
OperationCallSettings<RequestT, ResponseT, MetadataT> callSettings,
83+
ClientContext clientContext,
84+
OperationsStub operationsStub) {
85+
UnaryCallable<RequestT, Operation> innerCallable =
86+
HttpJsonCallableFactory.createBaseUnaryCallable(
87+
httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext);
88+
HttpJsonOperationSnapshotCallable<RequestT, Operation> initialCallable =
89+
new HttpJsonOperationSnapshotCallable<RequestT, Operation>(
90+
innerCallable,
91+
httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory());
92+
return HttpJsonCallableFactory.createOperationCallable(
93+
callSettings, clientContext, operationsStub.longRunningClient(), initialCallable);
94+
}
95+
96+
@Override
97+
public <RequestT, ResponseT>
98+
ServerStreamingCallable<RequestT, ResponseT> createServerStreamingCallable(
99+
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
100+
ServerStreamingCallSettings<RequestT, ResponseT> callSettings,
101+
ClientContext clientContext) {
102+
return HttpJsonCallableFactory.createServerStreamingCallable(
103+
httpJsonCallSettings, callSettings, clientContext);
104+
}
105+
}

0 commit comments

Comments
 (0)