Skip to content

Commit 97ae228

Browse files
authored
feat: Remove setting the default endpoint in StubSettings (#2348)
* chore: Remove setting the default endpoint in StubSettings * chore: Use NoCredentialsProvider for showcase in CI
1 parent 0ef2cce commit 97ae228

File tree

38 files changed

+690
-54
lines changed

38 files changed

+690
-54
lines changed

gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/comment/SettingsCommentComposer.java

+3
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ public class SettingsCommentComposer {
5252
private static final String CLASS_HEADER_DEFAULTS_RETRIES_DESCRIPTION =
5353
"Retries are configured for idempotent methods but not for non-idempotent methods.";
5454

55+
public static final CommentStatement GET_ENDPOINT_COMMENT =
56+
toSimpleComment(
57+
"Returns the endpoint set by the user or the the service's default endpoint.");
5558
public static final CommentStatement DEFAULT_SCOPES_COMMENT =
5659
toSimpleComment("The default scopes of the service.");
5760

gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubSettingsClassComposer.java

+41-8
Original file line numberDiff line numberDiff line change
@@ -1007,6 +1007,7 @@ private List<MethodDefinition> createClassMethods(
10071007
javaMethods.addAll(
10081008
createMethodSettingsGetterMethods(methodSettingsMemberVarExprs, deprecatedSettingVarNames));
10091009
javaMethods.add(createCreateStubMethod(service, typeStore));
1010+
javaMethods.add(createGetEndpointMethod());
10101011
javaMethods.addAll(createDefaultHelperAndGetterMethods(service, typeStore));
10111012
javaMethods.addAll(
10121013
createNewBuilderMethods(
@@ -1020,6 +1021,45 @@ private List<MethodDefinition> createClassMethods(
10201021
return javaMethods;
10211022
}
10221023

1024+
// Helper method to create the getEndpoint method in the ServiceStubSettings class
1025+
private MethodDefinition createGetEndpointMethod() {
1026+
Expr getEndpointExpr =
1027+
MethodInvocationExpr.builder()
1028+
.setMethodName("getEndpoint")
1029+
.setExprReferenceExpr(
1030+
ValueExpr.withValue(
1031+
SuperObjectValue.withType(
1032+
TypeNode.withReference(ConcreteReference.withClazz(StubSettings.class)))))
1033+
.setReturnType(TypeNode.STRING)
1034+
.build();
1035+
Expr isNotNullCheck =
1036+
RelationalOperationExpr.notEqualToWithExprs(getEndpointExpr, ValueExpr.createNullExpr());
1037+
1038+
IfStatement ifStatement =
1039+
IfStatement.builder()
1040+
.setConditionExpr(isNotNullCheck)
1041+
.setBody(ImmutableList.of(ExprStatement.withExpr(ReturnExpr.withExpr(getEndpointExpr))))
1042+
.build();
1043+
1044+
Expr getDefaultEndpointExpr =
1045+
MethodInvocationExpr.builder()
1046+
.setMethodName("getDefaultEndpoint")
1047+
.setReturnType(TypeNode.STRING)
1048+
.build();
1049+
ReturnExpr returnExpr = ReturnExpr.withExpr(getDefaultEndpointExpr);
1050+
1051+
return MethodDefinition.builder()
1052+
.setHeaderCommentStatements(SettingsCommentComposer.GET_ENDPOINT_COMMENT)
1053+
.setScope(ScopeNode.PUBLIC)
1054+
.setIsStatic(false)
1055+
.setAnnotations(ImmutableList.of(AnnotationNode.OVERRIDE))
1056+
.setReturnType(TypeNode.STRING)
1057+
.setName("getEndpoint")
1058+
.setBody(ImmutableList.of(ifStatement))
1059+
.setReturnExpr(returnExpr)
1060+
.build();
1061+
}
1062+
10231063
private static List<MethodDefinition> createMethodSettingsGetterMethods(
10241064
Map<String, VariableExpr> methodSettingsMemberVarExprs,
10251065
final Set<String> deprecatedSettingVarNames) {
@@ -1465,6 +1505,7 @@ private List<MethodDefinition> createNestedClassMethods(
14651505
nestedClassMethods.addAll(
14661506
createNestedClassSettingsBuilderGetterMethods(
14671507
nestedMethodSettingsMemberVarExprs, nestedDeprecatedSettingVarNames));
1508+
nestedClassMethods.add(createGetEndpointMethod());
14681509
nestedClassMethods.add(createNestedClassBuildMethod(service, typeStore));
14691510
return nestedClassMethods;
14701511
}
@@ -1895,14 +1936,6 @@ protected MethodDefinition createNestedClassCreateDefaultMethod(
18951936
.setMethodName("build")
18961937
.build())
18971938
.build());
1898-
1899-
bodyExprs.add(
1900-
MethodInvocationExpr.builder()
1901-
.setExprReferenceExpr(builderVarExpr)
1902-
.setMethodName("setEndpoint")
1903-
.setArguments(
1904-
MethodInvocationExpr.builder().setMethodName("getDefaultEndpoint").build())
1905-
.build());
19061939
bodyExprs.add(
19071940
MethodInvocationExpr.builder()
19081941
.setExprReferenceExpr(builderVarExpr)

gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/DeprecatedServiceStubSettings.golden

+18-1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,15 @@ public class DeprecatedServiceStubSettings extends StubSettings<DeprecatedServic
102102
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
103103
}
104104

105+
/** Returns the endpoint set by the user or the the service's default endpoint. */
106+
@Override
107+
public String getEndpoint() {
108+
if (super.getEndpoint() != null) {
109+
return super.getEndpoint();
110+
}
111+
return getDefaultEndpoint();
112+
}
113+
105114
/** Returns a builder for the default ExecutorProvider for this service. */
106115
public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
107116
return InstantiatingExecutorProvider.newBuilder();
@@ -235,7 +244,6 @@ public class DeprecatedServiceStubSettings extends StubSettings<DeprecatedServic
235244
builder.setTransportChannelProvider(defaultTransportChannelProvider());
236245
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
237246
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
238-
builder.setEndpoint(getDefaultEndpoint());
239247
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
240248
builder.setSwitchToMtlsEndpointAllowed(true);
241249

@@ -286,6 +294,15 @@ public class DeprecatedServiceStubSettings extends StubSettings<DeprecatedServic
286294
return slowFibonacciSettings;
287295
}
288296

297+
/** Returns the endpoint set by the user or the the service's default endpoint. */
298+
@Override
299+
public String getEndpoint() {
300+
if (super.getEndpoint() != null) {
301+
return super.getEndpoint();
302+
}
303+
return getDefaultEndpoint();
304+
}
305+
289306
@Override
290307
public DeprecatedServiceStubSettings build() throws IOException {
291308
return new DeprecatedServiceStubSettings(this);

gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/EchoStubSettings.golden

+18-1
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,15 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
285285
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
286286
}
287287

288+
/** Returns the endpoint set by the user or the the service's default endpoint. */
289+
@Override
290+
public String getEndpoint() {
291+
if (super.getEndpoint() != null) {
292+
return super.getEndpoint();
293+
}
294+
return getDefaultEndpoint();
295+
}
296+
288297
/** Returns a builder for the default ExecutorProvider for this service. */
289298
public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
290299
return InstantiatingExecutorProvider.newBuilder();
@@ -484,7 +493,6 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
484493
builder.setTransportChannelProvider(defaultTransportChannelProvider());
485494
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
486495
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
487-
builder.setEndpoint(getDefaultEndpoint());
488496
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
489497
builder.setSwitchToMtlsEndpointAllowed(true);
490498

@@ -630,6 +638,15 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
630638
return collideNameSettings;
631639
}
632640

641+
/** Returns the endpoint set by the user or the the service's default endpoint. */
642+
@Override
643+
public String getEndpoint() {
644+
if (super.getEndpoint() != null) {
645+
return super.getEndpoint();
646+
}
647+
return getDefaultEndpoint();
648+
}
649+
633650
@Override
634651
public EchoStubSettings build() throws IOException {
635652
return new EchoStubSettings(this);

gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/LoggingServiceV2StubSettings.golden

+18-1
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,15 @@ public class LoggingServiceV2StubSettings extends StubSettings<LoggingServiceV2S
422422
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
423423
}
424424

425+
/** Returns the endpoint set by the user or the the service's default endpoint. */
426+
@Override
427+
public String getEndpoint() {
428+
if (super.getEndpoint() != null) {
429+
return super.getEndpoint();
430+
}
431+
return getDefaultEndpoint();
432+
}
433+
425434
/** Returns the default service name. */
426435
@Override
427436
public String getServiceName() {
@@ -626,7 +635,6 @@ public class LoggingServiceV2StubSettings extends StubSettings<LoggingServiceV2S
626635
builder.setTransportChannelProvider(defaultTransportChannelProvider());
627636
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
628637
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
629-
builder.setEndpoint(getDefaultEndpoint());
630638
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
631639
builder.setSwitchToMtlsEndpointAllowed(true);
632640

@@ -732,6 +740,15 @@ public class LoggingServiceV2StubSettings extends StubSettings<LoggingServiceV2S
732740
return tailLogEntriesSettings;
733741
}
734742

743+
/** Returns the endpoint set by the user or the the service's default endpoint. */
744+
@Override
745+
public String getEndpoint() {
746+
if (super.getEndpoint() != null) {
747+
return super.getEndpoint();
748+
}
749+
return getDefaultEndpoint();
750+
}
751+
735752
@Override
736753
public LoggingServiceV2StubSettings build() throws IOException {
737754
return new LoggingServiceV2StubSettings(this);

gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/PublisherStubSettings.golden

+18-1
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,15 @@ public class PublisherStubSettings extends StubSettings<PublisherStubSettings> {
431431
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
432432
}
433433

434+
/** Returns the endpoint set by the user or the the service's default endpoint. */
435+
@Override
436+
public String getEndpoint() {
437+
if (super.getEndpoint() != null) {
438+
return super.getEndpoint();
439+
}
440+
return getDefaultEndpoint();
441+
}
442+
434443
/** Returns the default service name. */
435444
@Override
436445
public String getServiceName() {
@@ -667,7 +676,6 @@ public class PublisherStubSettings extends StubSettings<PublisherStubSettings> {
667676
builder.setTransportChannelProvider(defaultTransportChannelProvider());
668677
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
669678
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
670-
builder.setEndpoint(getDefaultEndpoint());
671679
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
672680
builder.setSwitchToMtlsEndpointAllowed(true);
673681

@@ -804,6 +812,15 @@ public class PublisherStubSettings extends StubSettings<PublisherStubSettings> {
804812
return detachSubscriptionSettings;
805813
}
806814

815+
/** Returns the endpoint set by the user or the the service's default endpoint. */
816+
@Override
817+
public String getEndpoint() {
818+
if (super.getEndpoint() != null) {
819+
return super.getEndpoint();
820+
}
821+
return getDefaultEndpoint();
822+
}
823+
807824
@Override
808825
public PublisherStubSettings build() throws IOException {
809826
return new PublisherStubSettings(this);

gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoStubSettings.golden

+18-2
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,15 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
301301
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
302302
}
303303

304+
/** Returns the endpoint set by the user or the the service's default endpoint. */
305+
@Override
306+
public String getEndpoint() {
307+
if (super.getEndpoint() != null) {
308+
return super.getEndpoint();
309+
}
310+
return getDefaultEndpoint();
311+
}
312+
304313
/** Returns a builder for the default ExecutorProvider for this service. */
305314
public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
306315
return InstantiatingExecutorProvider.newBuilder();
@@ -512,7 +521,6 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
512521
builder.setTransportChannelProvider(defaultTransportChannelProvider());
513522
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
514523
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
515-
builder.setEndpoint(getDefaultEndpoint());
516524
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
517525
builder.setSwitchToMtlsEndpointAllowed(true);
518526

@@ -525,7 +533,6 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
525533
builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
526534
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
527535
builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
528-
builder.setEndpoint(getDefaultEndpoint());
529536
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
530537
builder.setSwitchToMtlsEndpointAllowed(true);
531538

@@ -691,6 +698,15 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
691698
return updateCaseSettings;
692699
}
693700

701+
/** Returns the endpoint set by the user or the the service's default endpoint. */
702+
@Override
703+
public String getEndpoint() {
704+
if (super.getEndpoint() != null) {
705+
return super.getEndpoint();
706+
}
707+
return getDefaultEndpoint();
708+
}
709+
694710
@Override
695711
public EchoStubSettings build() throws IOException {
696712
return new EchoStubSettings(this);

gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/WickedStubSettings.golden

+18-1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,15 @@ public class WickedStubSettings extends StubSettings<WickedStubSettings> {
9999
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
100100
}
101101

102+
/** Returns the endpoint set by the user or the the service's default endpoint. */
103+
@Override
104+
public String getEndpoint() {
105+
if (super.getEndpoint() != null) {
106+
return super.getEndpoint();
107+
}
108+
return getDefaultEndpoint();
109+
}
110+
102111
/** Returns a builder for the default ExecutorProvider for this service. */
103112
public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
104113
return InstantiatingExecutorProvider.newBuilder();
@@ -231,7 +240,6 @@ public class WickedStubSettings extends StubSettings<WickedStubSettings> {
231240
builder.setTransportChannelProvider(defaultTransportChannelProvider());
232241
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
233242
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
234-
builder.setEndpoint(getDefaultEndpoint());
235243
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
236244
builder.setSwitchToMtlsEndpointAllowed(true);
237245

@@ -277,6 +285,15 @@ public class WickedStubSettings extends StubSettings<WickedStubSettings> {
277285
return persuadeEvilPlanSettings;
278286
}
279287

288+
/** Returns the endpoint set by the user or the the service's default endpoint. */
289+
@Override
290+
public String getEndpoint() {
291+
if (super.getEndpoint() != null) {
292+
return super.getEndpoint();
293+
}
294+
return getDefaultEndpoint();
295+
}
296+
280297
@Override
281298
public WickedStubSettings build() throws IOException {
282299
return new WickedStubSettings(this);

gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/ComplianceStubSettings.golden

+18-1
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,15 @@ public class ComplianceStubSettings extends StubSettings<ComplianceStubSettings>
131131
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
132132
}
133133

134+
/** Returns the endpoint set by the user or the the service's default endpoint. */
135+
@Override
136+
public String getEndpoint() {
137+
if (super.getEndpoint() != null) {
138+
return super.getEndpoint();
139+
}
140+
return getDefaultEndpoint();
141+
}
142+
134143
/** Returns a builder for the default ExecutorProvider for this service. */
135144
public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
136145
return InstantiatingExecutorProvider.newBuilder();
@@ -302,7 +311,6 @@ public class ComplianceStubSettings extends StubSettings<ComplianceStubSettings>
302311
builder.setTransportChannelProvider(defaultTransportChannelProvider());
303312
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
304313
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
305-
builder.setEndpoint(getDefaultEndpoint());
306314
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
307315
builder.setSwitchToMtlsEndpointAllowed(true);
308316

@@ -410,6 +418,15 @@ public class ComplianceStubSettings extends StubSettings<ComplianceStubSettings>
410418
return verifyEnumSettings;
411419
}
412420

421+
/** Returns the endpoint set by the user or the the service's default endpoint. */
422+
@Override
423+
public String getEndpoint() {
424+
if (super.getEndpoint() != null) {
425+
return super.getEndpoint();
426+
}
427+
return getDefaultEndpoint();
428+
}
429+
413430
@Override
414431
public ComplianceStubSettings build() throws IOException {
415432
return new ComplianceStubSettings(this);

gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public final String getUniverseDomain() {
153153
return universeDomain;
154154
}
155155

156-
public final String getEndpoint() {
156+
public String getEndpoint() {
157157
return endpoint;
158158
}
159159

0 commit comments

Comments
 (0)