[
https://issues.apache.org/jira/browse/BEAM-10673?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ismaël Mejía updated BEAM-10673:
--------------------------------
Summary: DynamoDBIO.RetryConfiguration in AWS v2 is not correctly exposed
(was: DynamoDBIO.RetryConfiguration does not have public constructor)
> DynamoDBIO.RetryConfiguration in AWS v2 is not correctly exposed
> ----------------------------------------------------------------
>
> Key: BEAM-10673
> URL: https://issues.apache.org/jira/browse/BEAM-10673
> Project: Beam
> Issue Type: Bug
> Components: io-java-aws
> Affects Versions: 2.23.0
> Reporter: Dennis Yung
> Assignee: Dennis Yung
> Priority: P2
> Fix For: 2.25.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> As described in the documentation, DynamoDBIO is initiated with a
> RetryConfiguration through withRetryConfiguration()
> {code:java}
> PCollection<T> data = ...;
> data.apply(
> DynamoDBIO.<WriteRequest>write()
> .withWriteRequestMapperFn(
> (SerializableFunction<T, KV<String, WriteRequest>>)
> //Transforming your T data into KV<String,
> WriteRequest>
> t -> KV.of(tableName, writeRequest))
> .withRetryConfiguration(
> DynamoDBIO.RetryConfiguration.create(5,
> Duration.standardMinutes(1)))
> .withAwsClientsProvider(new BasicDynamoDbProvider(accessKey,
> secretKey, region));
> {code}
> It works on beam-sdks-java-io-amazon-web-services (aws sdk version 1), but
> not on beam-sdks-java-io-amazon-web-services2 (aws sdk version 2).
> It is because io.aws2.dynamodb.DynamoDBIO.RetryConfiguration adopted a
> AutoValue builder design in place of the create method. However, the builder
> do not have public methods for setting values and building a
> RetryConfiguration. Moreover, validation was not implemented
> {code:java}
> @AutoValue
> public abstract static class RetryConfiguration implements Serializable {
>
> /.../
> public static Builder builder() {
> return new AutoValue_DynamoDBIO_RetryConfiguration.Builder();
> }
> @AutoValue.Builder
> abstract static class Builder {
> abstract Builder setMaxAttempts(int maxAttempts);
> abstract Builder setMaxDuration(Duration maxDuration);
> abstract Builder setRetryPredicate(RetryPredicate retryPredicate);
> abstract RetryConfiguration build();
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)