Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions rules_java_gapic/java_gapic.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@ def java_gapic_library(
if gapic_yaml:
file_args_dict[gapic_yaml] = "gapic-config"

if gapic_yaml:
file_args_dict[gapic_yaml] = "gapic-config"

# Check the allow-list.
if service_yaml:
service_yaml_in_allowlist = False
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import com.google.api.generator.engine.ast.Variable;
import com.google.api.generator.engine.ast.VariableExpr;
import com.google.api.generator.gapic.model.GapicBatchingSettings;
import com.google.api.generator.gapic.model.GapicLroRetrySettings;
import com.google.api.generator.gapic.model.GapicRetrySettings;
import com.google.api.generator.gapic.model.GapicServiceConfig;
import com.google.api.generator.gapic.model.Method;
Expand All @@ -55,6 +56,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;

Expand All @@ -67,7 +69,7 @@ public class RetrySettingsComposer {
private static final long LRO_DEFAULT_INITIAL_POLL_DELAY_MILLIS = 5000;
private static final double LRO_DEFAULT_POLL_DELAY_MULTIPLIER = 1.5;
private static final long LRO_DEFAULT_MAX_POLL_DELAY_MILLIS = 45000;
private static final long LRO_DEFAULT_TOTAL_POLL_TIMEOUT_MILLS = 300000; // 5 minutes.
private static final long LRO_DEFAULT_TOTAL_POLL_TIMEOUT_MILLIS = 300000; // 5 minutes.
private static final double LRO_DEFAULT_MAX_RPC_TIMEOUT = 1.0;

public static BlockStatement createRetryParamDefinitionsBlock(
Expand Down Expand Up @@ -349,7 +351,7 @@ public static Expr createLroSettingsBuilderExpr(
.build())
.build();

Expr lroRetrySettingsExpr = createLroRetrySettingsExpr();
Expr lroRetrySettingsExpr = createLroRetrySettingsExpr(service, method, serviceConfig);
Expr pollAlgoExpr =
MethodInvocationExpr.builder()
.setStaticReferenceType(STATIC_TYPES.get("OperationTimedPollAlgorithm"))
Expand Down Expand Up @@ -592,33 +594,49 @@ private static List<Expr> createRetrySettingsExprs(
return Arrays.asList(settingsAssignExpr, definitionsPutExpr);
}

private static Expr createLroRetrySettingsExpr() {
private static Expr createLroRetrySettingsExpr(
Service service, Method method, GapicServiceConfig serviceConfig) {
Expr lroRetrySettingsExpr =
MethodInvocationExpr.builder()
.setStaticReferenceType(STATIC_TYPES.get("RetrySettings"))
.setMethodName("newBuilder")
.build();

long initialPollDelayMillis = LRO_DEFAULT_INITIAL_POLL_DELAY_MILLIS;
double pollDelayMultiplier = LRO_DEFAULT_POLL_DELAY_MULTIPLIER;
long maxPollDelayMillis = LRO_DEFAULT_MAX_POLL_DELAY_MILLIS;
long totalPollTimeoutMillis = LRO_DEFAULT_TOTAL_POLL_TIMEOUT_MILLIS;
if (serviceConfig.hasLroRetrySetting(service, method)) {
Optional<GapicLroRetrySettings> lroRetrySettingsOpt =
serviceConfig.getLroRetrySetting(service, method);
if (lroRetrySettingsOpt.isPresent()) {
GapicLroRetrySettings lroRetrySettings = lroRetrySettingsOpt.get();
initialPollDelayMillis = lroRetrySettings.initialPollDelayMillis();
pollDelayMultiplier = lroRetrySettings.pollDelayMultiplier();
maxPollDelayMillis = lroRetrySettings.maxPollDelayMillis();
totalPollTimeoutMillis = lroRetrySettings.totalPollTimeoutMillis();
}
}

lroRetrySettingsExpr =
MethodInvocationExpr.builder()
.setExprReferenceExpr(lroRetrySettingsExpr)
.setMethodName("setInitialRetryDelay")
.setArguments(
createDurationOfMillisExpr(toValExpr(LRO_DEFAULT_INITIAL_POLL_DELAY_MILLIS)))
.setArguments(createDurationOfMillisExpr(toValExpr(initialPollDelayMillis)))
.build();

lroRetrySettingsExpr =
MethodInvocationExpr.builder()
.setExprReferenceExpr(lroRetrySettingsExpr)
.setMethodName("setRetryDelayMultiplier")
.setArguments(toValExpr(LRO_DEFAULT_POLL_DELAY_MULTIPLIER))
.setArguments(toValExpr(pollDelayMultiplier))
.build();

lroRetrySettingsExpr =
MethodInvocationExpr.builder()
.setExprReferenceExpr(lroRetrySettingsExpr)
.setMethodName("setMaxRetryDelay")
.setArguments(createDurationOfMillisExpr(toValExpr(LRO_DEFAULT_MAX_POLL_DELAY_MILLIS)))
.setArguments(createDurationOfMillisExpr(toValExpr(maxPollDelayMillis)))
.build();

Expr zeroDurationExpr =
Expand Down Expand Up @@ -651,8 +669,7 @@ private static Expr createLroRetrySettingsExpr() {
MethodInvocationExpr.builder()
.setExprReferenceExpr(lroRetrySettingsExpr)
.setMethodName("setTotalTimeout")
.setArguments(
createDurationOfMillisExpr(toValExpr(LRO_DEFAULT_TOTAL_POLL_TIMEOUT_MILLS)))
.setArguments(createDurationOfMillisExpr(toValExpr(totalPollTimeoutMillis)))
.build();

lroRetrySettingsExpr =
Expand Down
36 changes: 18 additions & 18 deletions test/integration/goldens/redis/CloudRedisStubSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -566,13 +566,13 @@ private static Builder initDefaults(Builder builder) {
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(5000L))
.setInitialRetryDelay(Duration.ofMillis(60000L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(45000L))
.setMaxRetryDelay(Duration.ofMillis(360000L))
.setInitialRpcTimeout(Duration.ZERO)
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ZERO)
.setTotalTimeout(Duration.ofMillis(300000L))
.setTotalTimeout(Duration.ofMillis(7200000L))
.build()));

builder
Expand All @@ -590,13 +590,13 @@ private static Builder initDefaults(Builder builder) {
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(5000L))
.setInitialRetryDelay(Duration.ofMillis(60000L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(45000L))
.setMaxRetryDelay(Duration.ofMillis(360000L))
.setInitialRpcTimeout(Duration.ZERO)
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ZERO)
.setTotalTimeout(Duration.ofMillis(300000L))
.setTotalTimeout(Duration.ofMillis(7200000L))
.build()));

builder
Expand Down Expand Up @@ -638,13 +638,13 @@ private static Builder initDefaults(Builder builder) {
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(5000L))
.setInitialRetryDelay(Duration.ofMillis(60000L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(45000L))
.setMaxRetryDelay(Duration.ofMillis(360000L))
.setInitialRpcTimeout(Duration.ZERO)
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ZERO)
.setTotalTimeout(Duration.ofMillis(300000L))
.setTotalTimeout(Duration.ofMillis(18000000L))
.build()));

builder
Expand All @@ -662,13 +662,13 @@ private static Builder initDefaults(Builder builder) {
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(5000L))
.setInitialRetryDelay(Duration.ofMillis(60000L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(45000L))
.setMaxRetryDelay(Duration.ofMillis(360000L))
.setInitialRpcTimeout(Duration.ZERO)
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ZERO)
.setTotalTimeout(Duration.ofMillis(300000L))
.setTotalTimeout(Duration.ofMillis(18000000L))
.build()));

builder
Expand All @@ -686,13 +686,13 @@ private static Builder initDefaults(Builder builder) {
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(5000L))
.setInitialRetryDelay(Duration.ofMillis(60000L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(45000L))
.setMaxRetryDelay(Duration.ofMillis(360000L))
.setInitialRpcTimeout(Duration.ZERO)
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ZERO)
.setTotalTimeout(Duration.ofMillis(300000L))
.setTotalTimeout(Duration.ofMillis(1200000L))
.build()));

builder
Expand All @@ -710,13 +710,13 @@ private static Builder initDefaults(Builder builder) {
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(5000L))
.setInitialRetryDelay(Duration.ofMillis(60000L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(45000L))
.setMaxRetryDelay(Duration.ofMillis(360000L))
.setInitialRpcTimeout(Duration.ZERO)
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ZERO)
.setTotalTimeout(Duration.ofMillis(300000L))
.setTotalTimeout(Duration.ofMillis(1200000L))
.build()));

return builder;
Expand Down