[
https://issues.apache.org/jira/browse/BEAM-13416?focusedWorklogId=735233&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-735233
]
ASF GitHub Bot logged work on BEAM-13416:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 02/Mar/22 11:17
Start Date: 02/Mar/22 11:17
Worklog Time Spent: 10m
Work Description: mosche commented on pull request #16947:
URL: https://github.com/apache/beam/pull/16947#issuecomment-1056809572
Also, for context, here's a stripped down example how such a `SdkPojo` may
look like:
```java
public interface SdkPojo {
List<SdkField<?>> sdkFields();
}
@Generated("software.amazon.awssdk:codegen")
public final class DeleteMessageRequest extends SqsRequest implements
SdkPojo {
private static final SdkField<String> QUEUE_URL_FIELD =
SdkField.<String> builder(MarshallingType.STRING)
.memberName("QueueUrl")
.getter(DeleteMessageRequest::queueUrl)
.setter(Builder::queueUrl)
.build();
private static final SdkField<String> RECEIPT_HANDLE_FIELD =
SdkField.<String> builder(MarshallingType.STRING)
.memberName("ReceiptHandle")
.getter(DeleteMessageRequest::receiptHandle)
.setter(Builder::receiptHandle)
.build();
private static final List<SdkField<?>> SDK_FIELDS =
Collections.unmodifiableList(Arrays.asList(QUEUE_URL_FIELD,
RECEIPT_HANDLE_FIELD));
private final String queueUrl;
private final String receiptHandle;
private DeleteMessageRequest(BuilderImpl builder) {
super(builder);
this.queueUrl = builder.queueUrl;
this.receiptHandle = builder.receiptHandle;
}
public final String queueUrl() {
return queueUrl;
}
public final String receiptHandle() {
return receiptHandle;
}
public static Builder builder() {
return new BuilderImpl();
}
public final List<SdkField<?>> sdkFields() {
return SDK_FIELDS;
}
public interface Builder extends SdkPojo {
Builder queueUrl(String queueUrl);
Builder receiptHandle(String receiptHandle);
}
static final class BuilderImpl implements Builder {
private String queueUrl;
private String receiptHandle;
private BuilderImpl() {}
public final Builder queueUrl(String queueUrl) {
this.queueUrl = queueUrl;
return this;
}
public final Builder receiptHandle(String receiptHandle) {
this.receiptHandle = receiptHandle;
return this;
}
public DeleteMessageRequest build() {
return new DeleteMessageRequest(this);
}
public List<SdkField<?>> sdkFields() {
return SDK_FIELDS;
}
}
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 735233)
Time Spent: 1h 40m (was: 1.5h)
> SqsIO.write input / construction of Sqs request
> -----------------------------------------------
>
> Key: BEAM-13416
> URL: https://issues.apache.org/jira/browse/BEAM-13416
> Project: Beam
> Issue Type: Improvement
> Components: io-java-aws
> Reporter: Moritz Mack
> Priority: P2
> Labels: aws, aws-sdk-v2, sqs
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> SqsIO.write should support arbitrary types T and be implemented in terms of a
> mapper function that converts T into an AWS request.
> The current implementation of write as
> {{PTransform<PCollection<SendMessageRequest>, PDone>}} is a rather poor
> choice. It may requires an additional unnecessary serialization &
> deserialisation round. But even worse, the current
> {{SendMessageRequestCoder}} does not support any advanced configuration
> beyond queueUrl and messageBody and will silently drop it without even
> warning the user.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)