8000 chore: refactor the httpjson callables include tracing · googleapis/sdk-platform-java@f7db756 · GitHub
[go: up one dir, main page]

Skip to content

Commit f7db756

Browse files
committed
chore: refactor the httpjson callables include tracing
1 parent 4d3c06e commit f7db756

File tree

7 files changed

+104
-127
lines changed

7 files changed

+104
-127
lines changed

gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallableFactory.java

Lines changed: 38 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
package com.google.api.gax.httpjson;
3131

3232
import com.google.api.core.InternalApi;
33-
import com.google.api.core.ObsoleteApi;
3433
import com.google.api.gax.longrunning.OperationSnapshot;
3534
import com.google.api.gax.rpc.BatchingCallSettings;
3635
import com.google.api.gax.rpc.Callables;
@@ -41,11 +40,15 @@
4140
import com.google.api.gax.rpc.PagedCallSettings;
4241
import com.google.api.gax.rpc.ServerStreamingCallSettings;
4342
import com.google.api.gax.rpc.ServerStreamingCallable;
43+
import com.google.api.gax.rpc.StatusCode;
4444
import com.google.api.gax.rpc.UnaryCallSettings;
4545
import com.google.api.gax.rpc.UnaryCallable;
4646
import com.google.api.gax.tracing.SpanName;
47+
import com.google.api.gax.tracing.TracedBatchingCallable;
48+
import com.google.api.gax.tracing.TracedServerStreamingCallable;
4749
import com.google.api.gax.tracing.TracedUnaryCallable;
4850
import com.google.common.base.Preconditions;
51+
import java.util.Set;
4952
import java.util.regex.Matcher;
5053
import java.util.regex.Pattern;
5154
import javax.annotation.Nonnull;
@@ -59,8 +62,9 @@ public class HttpJsonCallableFactory {
5962

6063
private HttpJsonCallableFactory() {}
6164

62-
private static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createDirectUnaryCallable(
63-
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings) {
65+
private static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable(
66+
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
67+
Set<StatusCode.Code> retryableCodes) {
6468
UnaryCallable<RequestT, ResponseT> callable =
6569
new HttpJsonDirectCallable<>(
6670
httpJsonCallSettings.getMethodDescriptor(), httpJsonCallSettings.getTypeRegistry());
@@ -70,33 +74,7 @@ private static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createDi
7074
new HttpJsonUnaryRequestParamCallable<>(
7175
callable, httpJsonCallSettings.getParamsExtractor());
7276
}
73-
return callable;
74-
}
75-
76-
/** Create httpJson UnaryCallable with request mutator. */
77-
static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable(
78-
UnaryCallable<RequestT, ResponseT> innerCallable,
79-
UnaryCallSettings<?, ?> callSettings,
80-
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
81-
ClientContext clientContext) {
82-
UnaryCallable<RequestT, ResponseT> callable =
83-
new HttpJsonExceptionCallable<>(innerCallable, callSettings.getRetryableCodes());
84-
callable =
85-
Callables.retrying(
86-
callable, callSettings, clientContext, httpJsonCallSettings.getRequestMutator());
87-
return callable.withDefaultCallContext(clientContext.getDefaultCallContext());
88-
}
89-
90-
/** Use {@link #createUnaryCallable createUnaryCallable} method instead. */
91-
@ObsoleteApi("Please use other httpJson UnaryCallable method instead")
92-
static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable(
93-
UnaryCallable<RequestT, ResponseT> innerCallable,
94-
UnaryCallSettings<?, ?> callSettings,
95-
ClientContext clientContext) {
96-
UnaryCallable<RequestT, ResponseT> callable =
97-
new HttpJsonExceptionCallable<>(innerCallable, callSettings.getRetryableCodes());
98-
callable = Callables.retrying(callable, callSettings, clientContext);
99-
return callable.withDefaultCallContext(clientContext.getDefaultCallContext());
77+
return new HttpJsonExceptionCallable<>(callable, retryableCodes);
10078
}
10179

10280
/**
@@ -111,12 +89,15 @@ public static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createBas
11189
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
11290
UnaryCallSettings<?, ?> callSettings,
11391
ClientContext clientContext) {
114-
UnaryCallable<RequestT, ResponseT> callable = createDirectUnaryCallable(httpJsonCallSettings);
115-
callable = new HttpJsonExceptionCallable<>(callable, callSettings.getRetryableCodes());
116-
callable =
117-
Callables.retrying(
118-
callable, callSettings, clientContext, httpJsonCallSettings.getRequestMutator());
119-
92+
UnaryCallable<RequestT, ResponseT> callable =
93+
createUnaryCallable(httpJsonCallSettings, callSettings.getRetryableCodes());
94+
if (httpJsonCallSettings.getRequestMutator() != null) {
95+
callable =
96+
Callables.retrying(
97+
callable, callSettings, clientContext, httpJsonCallSettings.getRequestMutator());
98+
} else {
99+
callable = Callables.retrying(callable, callSettings, clientContext);
100+
}
120101
return callable;
121102
}
122103

@@ -133,16 +114,15 @@ public static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUna
133114
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
134115
UnaryCallSettings<RequestT, ResponseT> callSettings,
135116
ClientContext clientContext) {
136-
UnaryCallable<RequestT, ResponseT> innerCallable =
137-
createDirectUnaryCallable(httpJsonCallSettings);
138-
139-
innerCallable =
117+
UnaryCallable<RequestT, ResponseT> callable =
118+
createBaseUnaryCallable(httpJsonCallSettings, callSettings, clientContext);
119+
callable =
140120
new TracedUnaryCallable<>(
141-
innerCallable,
121+
callable,
142122
clientContext.getTracerFactory(),
143123
getSpanName(httpJsonCallSettings.getMethodDescriptor()));
144124

145-
return createUnaryCallable(innerCallable, callSettings, httpJsonCallSettings, clientContext);
125+
return callable.withDefaultCallContext(clientContext.getDefaultCallContext());
146126
}
147127

148128
/**
@@ -159,9 +139,8 @@ UnaryCallable<RequestT, PagedListResponseT> createPagedCallable(
159139
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
160140
PagedCallSettings<RequestT, ResponseT, PagedListResponseT> pagedCallSettings,
161141
ClientContext clientContext) {
162-
UnaryCallable<RequestT, ResponseT> callable = createDirectUnaryCallable(httpJsonCallSettings);
163-
callable =
164-
createUnaryCallable(callable, pagedCallSettings, httpJsonCallSettings, clientContext);
142+
UnaryCallable<RequestT, ResponseT> callable =
143+
createUnaryCallable(httpJsonCallSettings, pagedCallSettings.getRetryableCodes());
165144
UnaryCallable<RequestT, PagedListResponseT> pagedCallable =
166145
Callables.paged(callable, pagedCallSettings);
167146
return pagedCallable.withDefaultCallContext(clientContext.getDefaultCallContext());
@@ -181,9 +160,14 @@ public static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createBat
181160
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
182161
BatchingCallSettings<RequestT, ResponseT> batchingCallSettings,
183162
ClientContext clientContext) {
184-
UnaryCallable<RequestT, ResponseT> callable = createDirectUnaryCallable(httpJsonCallSettings);
163+
UnaryCallable<RequestT, ResponseT> callable =
164+
createBaseUnaryCallable(httpJsonCallSettings, batchingCallSettings, clientContext);
185165
callable =
186-
createUnaryCallable(callable, batchingCallSettings, httpJsonCallSettings, clientContext);
166+
new TracedBatchingCallable<>(
167+
callable,
168+
clientContext.getTracerFactory(),
169+
getSpanName(httpJsonCallSettings.getMethodDescriptor()),
170+
batchingCallSettings.getBatchingDescriptor());
187171
callable = Callables.batching(callable, batchingCallSettings, clientContext);
188172
return callable.withDefaultCallContext(clientContext.getDefaultCallContext());
189173
}
@@ -224,6 +208,13 @@ ServerStreamingCallable<RequestT, ResponseT> createServerStreamingCallable(
224208
}
225209

226210
callable = Callables.retrying(callable, streamingCallSettings, clientContext);
211+
212+
callable =
213+
new TracedServerStreamingCallable<>(
214+
callable,
215+
clientContext.getTracerFactory(),
216+
getSpanName(httpJsoncallSettings.getMethodDescriptor()));
217+
227218
return callable.withDefaultCallContext(clientContext.getDefaultCallContext());
228219
}
229220

0 commit comments

Comments
 (0)
0