Skip to content

Commit 57f0e2b

Browse files
committed
Added missing clientRequestToken to TransactWriteItemsEnhancedRequest
1 parent 1ba3e7b commit 57f0e2b

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/TransactWriteItemsOperation.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public static TransactWriteItemsOperation create(TransactWriteItemsEnhancedReque
4343
public TransactWriteItemsRequest generateRequest(DynamoDbEnhancedClientExtension extension) {
4444
return TransactWriteItemsRequest.builder()
4545
.transactItems(this.request.transactWriteItems())
46+
.clientRequestToken(this.request.clientRequestToken())
4647
.build();
4748
}
4849

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/model/TransactWriteItemsEnhancedRequest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,11 @@ public final class TransactWriteItemsEnhancedRequest {
5252

5353
private final List<TransactWriteItem> transactWriteItems;
5454

55+
private String clientRequestToken;
56+
5557
private TransactWriteItemsEnhancedRequest(Builder builder) {
5658
this.transactWriteItems = getItemsFromSupplier(builder.itemSupplierList);
59+
this.clientRequestToken = builder.clientRequestToken;
5760
}
5861

5962
/**
@@ -63,6 +66,13 @@ public static Builder builder() {
6366
return new Builder();
6467
}
6568

69+
/**
70+
* Gets the ClientRequestToken of this enhanced request.
71+
*/
72+
public String clientRequestToken() {
73+
return clientRequestToken;
74+
}
75+
6676
/**
6777
* Returns the list of {@link TransactWriteItem} that represents all actions in the request.
6878
*/
@@ -97,6 +107,8 @@ public int hashCode() {
97107
public static final class Builder {
98108
private List<Supplier<TransactWriteItem>> itemSupplierList = new ArrayList<>();
99109

110+
private String clientRequestToken = null;
111+
100112
private Builder() {
101113
}
102114

@@ -250,6 +262,17 @@ public <T> Builder addUpdateItem(MappedTableResource<T> mappedTableResource, T i
250262
.build());
251263
}
252264

265+
/**
266+
* Sets the clientRequestToken in this builder.
267+
*
268+
* @param clientRequestToken the clientRequestToken going to be used for build
269+
* @return a builder of this type
270+
*/
271+
public Builder clientRequestToken(String clientRequestToken) {
272+
this.clientRequestToken = clientRequestToken;
273+
return this;
274+
}
275+
253276
/**
254277
* Builds a {@link TransactWriteItemsEnhancedRequest} from the values stored in this builder.
255278
*/

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/model/TransactWriteItemsEnhancedRequestTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,34 @@
2020
import static org.hamcrest.Matchers.is;
2121
import static org.hamcrest.Matchers.notNullValue;
2222
import static org.hamcrest.Matchers.nullValue;
23+
import static org.junit.Assert.assertEquals;
2324
import static software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItem.createUniqueFakeItem;
2425
import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.stringValue;
2526

27+
import com.sun.org.apache.xpath.internal.ExtensionsProvider;
2628
import java.util.Arrays;
2729
import java.util.List;
2830
import java.util.Map;
31+
import java.util.UUID;
2932
import org.junit.Before;
3033
import org.junit.Test;
3134
import org.junit.runner.RunWith;
3235
import org.mockito.Mock;
3336
import org.mockito.junit.MockitoJUnitRunner;
3437
import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient;
38+
import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClientExtension;
3539
import software.amazon.awssdk.enhanced.dynamodb.DynamoDbTable;
3640
import software.amazon.awssdk.enhanced.dynamodb.Expression;
3741
import software.amazon.awssdk.enhanced.dynamodb.Key;
3842
import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItem;
43+
import software.amazon.awssdk.enhanced.dynamodb.internal.client.ExtensionResolver;
44+
import software.amazon.awssdk.enhanced.dynamodb.internal.operations.TransactWriteItemsOperation;
3945
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
4046
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
4147
import software.amazon.awssdk.services.dynamodb.model.Delete;
4248
import software.amazon.awssdk.services.dynamodb.model.Put;
4349
import software.amazon.awssdk.services.dynamodb.model.TransactWriteItem;
50+
import software.amazon.awssdk.services.dynamodb.model.TransactWriteItemsRequest;
4451

4552
@RunWith(MockitoJUnitRunner.class)
4653
public class TransactWriteItemsEnhancedRequestTest {
@@ -167,6 +174,17 @@ public void builder_maximal_builder_style() {
167174
assertThat(builtObject.transactWriteItems().get(3).conditionCheck().key().get("id").s(), is(fakeItem.getId()));
168175
}
169176

177+
@Test
178+
public void setClientRequestTokenTest() {
179+
String token = UUID.randomUUID().toString();
180+
TransactWriteItemsEnhancedRequest enhancedRequest = TransactWriteItemsEnhancedRequest.builder()
181+
.clientRequestToken(token)
182+
.build();
183+
DynamoDbEnhancedClientExtension extension = ExtensionResolver.resolveExtensions(ExtensionResolver.defaultExtensions());
184+
TransactWriteItemsRequest request = TransactWriteItemsOperation.create(enhancedRequest).generateRequest(extension);
185+
assertEquals(token, request.clientRequestToken());
186+
}
187+
170188
private List<TransactWriteItem> getTransactWriteItems(FakeItem fakeItem) {
171189
final Map<String, AttributeValue> fakeItemMap = FakeItem.getTableSchema().itemToMap(fakeItem, true);
172190

0 commit comments

Comments
 (0)