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

Commit 8befc79

Browse files
feat: Enable REST transport for most of Java and Go clients (#1014)
- [ ] 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 7b1d5d6 commit 8befc79

File tree

107 files changed

+8717
-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.

107 files changed

+8717
-22
lines changed

google-cloud-translate/pom.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@
6161
<dependency>
6262
<groupId>com.google.api</groupId>
6363
<artifactId>gax-grpc</artifactId>
64+
</dependency>
65+
<dependency>
66+
<groupId>com.google.api</groupId>
67+
<artifactId>gax-httpjson</artifactId>
6468
</dependency>
6569
<dependency>
6670
<groupId>org.threeten</groupId>
@@ -123,12 +127,24 @@
123127
<scope>test</scope>
124128
</dependency>
125129
<!-- Need testing utility classes for generated gRPC clients tests -->
130+
<dependency>
131+
<groupId>com.google.api</groupId>
132+
<artifactId>gax</artifactId>
133+
<classifier>testlib</classifier>
134+
<scope>test</scope>
135+
</dependency>
126136
<dependency>
127137
<groupId>com.google.api</groupId>
128138
<artifactId>gax-grpc</artifactId>
129139
<classifier>testlib</classifier>
130140
<scope>test</scope>
131141
</dependency>
142+
<dependency>
143+
<groupId>com.google.api</groupId>
144+
<artifactId>gax-httpjson</artifactId>
145+
<classifier>testlib</classifier>
146+
<scope>test</scope>
147+
</dependency>
132148
</dependencies>
133149

134150
<profiles>

google-cloud-translate/src/main/java/com/google/cloud/translate/v3/TranslationServiceClient.java

Lines changed: 33 additions & 5 deletions
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.translate.v3.stub.TranslationServiceStubSettings;
3132
import com.google.common.util.concurrent.MoreExecutors;
3233
import com.google.longrunning.Operation;
33-
import com.google.longrunning.OperationsClient;
3434
import java.io.IOException;
3535
import java.util.List;
3636
import java.util.concurrent.TimeUnit;
@@ -106,13 +106,29 @@
106106
* TranslationServiceClient.create(translationServiceSettings);
107107
* }</pre>
108108
*
109+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
110+
* the wire:
111+
*
112+
* <pre>{@code
113+
* // This snippet has been automatically generated for illustrative purposes only.
114+
* // It may require modifications to work in your environment.
115+
* TranslationServiceSettings translationServiceSettings =
116+
* TranslationServiceSettings.newBuilder()
117+
* .setTransportChannelProvider(
118+
* TranslationServiceSettings.defaultHttpJsonTransportProviderBuilder().build())
119+
* .build();
120+
* TranslationServiceClient translationServiceClient =
121+
* TranslationServiceClient.create(translationServiceSettings);
122+
* }</pre>
123+
*
109124
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
110125
*/
111126
@Generated("by gapic-generator-java")
112127
public class TranslationServiceClient implements BackgroundResource {
113128
private final TranslationServiceSettings settings;
114129
private final TranslationServiceStub stub;
115-
private final OperationsClient operationsClient;
130+
private final OperationsClient httpJsonOperationsClient;
131+
private final com.google.longrunning.OperationsClient operationsClient;
116132

117133
/** Constructs an instance of TranslationServiceClient with default settings. */
118134
public static final TranslationServiceClient create() throws IOException {
@@ -144,13 +160,17 @@ public static final TranslationServiceClient create(TranslationServiceStub stub)
144160
protected TranslationServiceClient(TranslationServiceSettings settings) throws IOException {
145161
this.settings = settings;
146162
this.stub = ((TranslationServiceStubSettings) settings.getStubSettings()).createStub();
147-
this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
163+
this.operationsClient =
164+
com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
165+
this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
148166
}
149167

150168
protected TranslationServiceClient(TranslationServiceStub stub) {
151169
this.settings = null;
152170
this.stub = stub;
153-
this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
171+
this.operationsClient =
172+
com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
173+
this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
154174
}
155175

156176
public final TranslationServiceSettings getSettings() {
@@ -165,10 +185,18 @@ public TranslationServiceStub getStub() {
165185
* Returns the OperationsClient that can be used to query the status of a long-running operation
166186
* returned by another API method call.
167187
*/
168-
public final OperationsClient getOperationsClient() {
188+
public final com.google.longrunning.OperationsClient getOperationsClient() {
169189
return operationsClient;
170190
}
171191

192+
/**
193+
* Returns the OperationsClient that can be used to query the status of a long-running operation
194+
* returned by another API method call.
195+
*/
196+
public final OperationsClient getHttpJsonOperationsClient() {
197+
return httpJsonOperationsClient;
198+
}
199+
172200
// AUTO-GENERATED DOCUMENTATION AND METHOD.
173201
/**
174202
* Translates input text and returns translated text.

google-cloud-translate/src/main/java/com/google/cloud/translate/v3/TranslationServiceSettings.java

Lines changed: 21 additions & 2 deletions
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;
@@ -185,11 +186,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
185186
return TranslationServiceStubSettings.defaultCredentialsProviderBuilder();
186187
}
187188

188-
/** Returns a builder for the default ChannelProvider for this service. */
189+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
189190
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
190191
return TranslationServiceStubSettings.defaultGrpcTransportProviderBuilder();
191192
}
192193

194+
/** Returns a builder for the default REST ChannelProvider for this service. */
195+
@BetaApi
196+
public static InstantiatingHttpJsonChannelProvider.Builder
197+
defaultHttpJsonTransportProviderBuilder() {
198+
return TranslationServiceStubSettings.defaultHttpJsonTransportProviderBuilder();
199+
}
200+
193201
public static TransportChannelProvider defaultTransportChannelProvider() {
194202
return TranslationServiceStubSettings.defaultTransportChannelProvider();
195203
}
@@ -199,11 +207,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
199207
return TranslationServiceStubSettings.defaultApiClientHeaderProviderBuilder();
200208
}
201209

202-
/** Returns a new builder for this class. */
210+
/** Returns a new gRPC builder for this class. */
203211
public static Builder newBuilder() {
204212
return Builder.createDefault();
205213
}
206214

215+
/** Returns a new REST builder for this class. */
216+
@BetaApi
217+
public static Builder newHttpJsonBuilder() {
218+
return Builder.createHttpJsonDefault();
219+
}
220+
207221
/** Returns a new builder for this class. */
208222
public static Builder newBuilder(ClientContext clientContext) {
209223
return new Builder(clientContext);
@@ -241,6 +255,11 @@ private static Builder createDefault() {
241255
return new Builder(TranslationServiceStubSettings.newBuilder());
242256
}
243257

258+
@BetaApi
259+
private static Builder createHttpJsonDefault() {
260+
return new Builder(TranslationServiceStubSettings.newHttpJsonBuilder());
261+
}
262+
244263
public TranslationServiceStubSettings.Builder getStubSettingsBuilder() {
245264
return ((TranslationServiceStubSettings.Builder) getStubSettings());
246265
}
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.translate.v3.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 TranslationService service API.
40+
*
41+
* <p>This class is for advanced usage.
42+
*/
43+
@Generated("by gapic-generator-java")
44+
@BetaApi
45+
public class HttpJsonTranslationServiceCallableFactory
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)