diff --git a/.brazil.json b/.brazil.json
index ca68c3d1a48a..f5e231e1727f 100644
--- a/.brazil.json
+++ b/.brazil.json
@@ -319,7 +319,7 @@
"skipImport": true
},
"dynamodb-mapper": {
- "packageName": "AwsJavaSdk-DynamoDbMapper"
+ "skipImport": true
}
},
"dependencies": {
diff --git a/build-tools/src/main/resources/software/amazon/awssdk/checkstyle-suppressions.xml b/build-tools/src/main/resources/software/amazon/awssdk/checkstyle-suppressions.xml
index 4e81373b0be3..3589c9d68901 100644
--- a/build-tools/src/main/resources/software/amazon/awssdk/checkstyle-suppressions.xml
+++ b/build-tools/src/main/resources/software/amazon/awssdk/checkstyle-suppressions.xml
@@ -72,4 +72,6 @@
+
diff --git a/build-tools/src/main/resources/software/amazon/awssdk/spotbugs-suppressions.xml b/build-tools/src/main/resources/software/amazon/awssdk/spotbugs-suppressions.xml
index 05606dc6d574..abd579363262 100644
--- a/build-tools/src/main/resources/software/amazon/awssdk/spotbugs-suppressions.xml
+++ b/build-tools/src/main/resources/software/amazon/awssdk/spotbugs-suppressions.xml
@@ -547,4 +547,11 @@
+
+
+
+
+
+
diff --git a/services-custom/dynamodb-mapper/pom.xml b/services-custom/dynamodb-mapper/pom.xml
index 43271ff9bbb3..f71b4685c5ce 100644
--- a/services-custom/dynamodb-mapper/pom.xml
+++ b/services-custom/dynamodb-mapper/pom.xml
@@ -43,33 +43,28 @@
+ proves the ported data-plane paths are behavior-preserving in the meantime.
+ The three tests that make real AWS calls (extend the AWS credentialed base
+ chain) now live under src/it/java per the v2 layout convention; the DynamoDB
+ Local functional tests and their fixtures stay under src/test/java (they run
+ against an embedded server, like dynamodb-enhanced's functionaltests). Either
+ way these excludes keep the v1-coupled files out of compilation until the
+ S3Link and Table-admin ports land; the paths are package-relative and match
+ under both source roots. -->
+
software/amazon/awssdk/mapper/dynamodb/ConfigureS3LinksTest.javasoftware/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTest.javasoftware/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTestBase.java
- software/amazon/awssdk/mapper/dynamodb/GenerateDeleteTableRequestTest.java
- software/amazon/awssdk/mapper/dynamodb/GsiAlwaysUpdateTest.java
- software/amazon/awssdk/mapper/dynamodb/LocalDynamoDB.java
- software/amazon/awssdk/mapper/dynamodb/LocalDynamoDBTestBase.javasoftware/amazon/awssdk/mapper/dynamodb/S3ClientCacheIntegrationTest.javasoftware/amazon/awssdk/mapper/dynamodb/S3LinkIDTest.javasoftware/amazon/awssdk/mapper/dynamodb/S3LinkTest.java
- software/amazon/awssdk/mapper/dynamodb/BatchLoadTest.java
- software/amazon/awssdk/mapper/dynamodb/mapper/BatchWriteTest.javasoftware/amazon/awssdk/mapper/dynamodb/JsonIntegrationTest.java
+ software/amazon/awssdk/mapper/dynamodb/GenerateDeleteTableRequestTest.javasoftware/amazon/awssdk/mapper/dynamodb/mapper/GenerateCreateTableRequest2Test.javasoftware/amazon/awssdk/mapper/dynamodb/mapper/GenerateCreateTableRequestTest.java
- software/amazon/awssdk/mapper/dynamodb/mapper/HashKeyOnlyTableWithGSITest.java
- software/amazon/awssdk/mapper/dynamodb/mapper/MapperLoadingStrategyConfigTest.java
- software/amazon/awssdk/mapper/dynamodb/test/resources/DynamoDBTableResource.java
- software/amazon/awssdk/mapper/dynamodb/test/resources/ResourceCentricBlockJUnit4ClassRunner.java
- software/amazon/awssdk/mapper/dynamodb/test/resources/TestResourceUtils.java
- software/amazon/awssdk/mapper/dynamodb/test/resources/tables/BasicTempTable.java
- software/amazon/awssdk/mapper/dynamodb/test/resources/tables/TempTableWithBinaryKey.java
- software/amazon/awssdk/mapper/dynamodb/test/resources/tables/TempTableWithSecondaryIndexes.java
@@ -126,6 +121,41 @@
dynamodb${awsjavasdk.version}
+
+ software.amazon.awssdk
+ sdk-core
+ ${awsjavasdk.version}
+
+
+ software.amazon.awssdk
+ aws-core
+ ${awsjavasdk.version}
+
+
+ software.amazon.awssdk
+ http-client-spi
+ ${awsjavasdk.version}
+
+
+ software.amazon.awssdk
+ auth
+ ${awsjavasdk.version}
+
+
+ software.amazon.awssdk
+ regions
+ ${awsjavasdk.version}
+
+
+ software.amazon.awssdk
+ annotations
+ ${awsjavasdk.version}
+
+
+ software.amazon.awssdk
+ utils
+ ${awsjavasdk.version}
+ com.amazonawsaws-java-sdk-dynamodb
@@ -141,11 +171,6 @@
aws-java-sdk-core${sdk-v1.version}
-
- commons-logging
- commons-logging
- 1.1.3
- joda-timejoda-time
@@ -164,9 +189,18 @@
test
- log4j
- log4j
- 1.2.17
+ org.apache.logging.log4j
+ log4j-api
+ test
+
+
+ org.apache.logging.log4j
+ log4j-core
+ test
+
+
+ org.apache.logging.log4j
+ log4j-slf4j-impltest
diff --git a/services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTest.java b/services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTest.java
similarity index 88%
rename from services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTest.java
rename to services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTest.java
index 5970c6de5fd7..aab4a02846c4 100644
--- a/services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTest.java
+++ b/services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTest.java
@@ -1,17 +1,18 @@
/*
- * Copyright 2011-2013 Amazon Technologies, Inc.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
import static org.junit.Assert.assertEquals;
diff --git a/services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTestBase.java b/services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTestBase.java
similarity index 92%
rename from services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTestBase.java
rename to services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTestBase.java
index f436d96293c9..75a6cd71e84c 100644
--- a/services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTestBase.java
+++ b/services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/DynamoDBS3IntegrationTestBase.java
@@ -1,16 +1,18 @@
/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
import static org.junit.Assert.fail;
diff --git a/services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/JsonIntegrationTest.java b/services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/JsonIntegrationTest.java
similarity index 98%
rename from services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/JsonIntegrationTest.java
rename to services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/JsonIntegrationTest.java
index 696ad98e5609..d8ceb1024c78 100644
--- a/services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/JsonIntegrationTest.java
+++ b/services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/JsonIntegrationTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
@@ -12,6 +12,7 @@
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
import java.util.Arrays;
diff --git a/services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/S3ClientCacheIntegrationTest.java b/services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/S3ClientCacheIntegrationTest.java
similarity index 89%
rename from services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/S3ClientCacheIntegrationTest.java
rename to services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/S3ClientCacheIntegrationTest.java
index 0c5c9b194241..9d6e6647d20e 100644
--- a/services-custom/dynamodb-mapper/src/test/java/software/amazon/awssdk/mapper/dynamodb/S3ClientCacheIntegrationTest.java
+++ b/services-custom/dynamodb-mapper/src/it/java/software/amazon/awssdk/mapper/dynamodb/S3ClientCacheIntegrationTest.java
@@ -1,17 +1,18 @@
/*
- * Copyright 2011-2013 Amazon Technologies, Inc.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
import static org.junit.Assert.assertEquals;
diff --git a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AbstractDynamoDBMapper.java b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AbstractDynamoDBMapper.java
index a47ca74fcd51..b5069e06a4d2 100644
--- a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AbstractDynamoDBMapper.java
+++ b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AbstractDynamoDBMapper.java
@@ -1,19 +1,21 @@
/*
- * Copyright 2015-2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
+import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.mapper.dynamodb.DynamoDBMapper.FailedBatch;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
@@ -30,6 +32,7 @@
* corresponding overload that takes a request object, which throws an
* {@code UnsupportedOperationException}.
*/
+@SdkPublicApi
public class AbstractDynamoDBMapper implements IDynamoDBMapper {
private final DynamoDBMapperConfig config;
diff --git a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AbstractEnumMarshaller.java b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AbstractEnumMarshaller.java
index 707eec62c97b..182250068d81 100644
--- a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AbstractEnumMarshaller.java
+++ b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AbstractEnumMarshaller.java
@@ -1,19 +1,22 @@
/*
- * Copyright 2011-2025 Amazon Technologies, Inc.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
+import software.amazon.awssdk.annotations.SdkPublicApi;
+
/**
* Generic marshaller for enumerations.
*
@@ -28,6 +31,7 @@
*
* @deprecated Replaced by {@link DynamoDBTypeConvertedEnum}
*/
+@SdkPublicApi
@Deprecated
public abstract class AbstractEnumMarshaller> implements DynamoDBMarshaller {
diff --git a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ArgumentMarshaller.java b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ArgumentMarshaller.java
index 9e203df0d3b2..138ecac135d4 100644
--- a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ArgumentMarshaller.java
+++ b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ArgumentMarshaller.java
@@ -1,25 +1,28 @@
/*
- * Copyright 2014-2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
+import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
/**
* Interface to make it possible to cache the expensive type determination
* behavior.
*/
+@SdkPublicApi
public interface ArgumentMarshaller {
/**
diff --git a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ArgumentUnmarshaller.java b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ArgumentUnmarshaller.java
index 96fef778fa8e..6dac8660aed9 100644
--- a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ArgumentUnmarshaller.java
+++ b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ArgumentUnmarshaller.java
@@ -1,19 +1,21 @@
/*
- * Copyright 2011-2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
+import software.amazon.awssdk.annotations.SdkPublicApi;
import java.lang.reflect.Method;
import java.text.ParseException;
@@ -24,6 +26,7 @@
* type-determination behavior necessary when turning a service result back
* into an object.
*/
+@SdkPublicApi
public interface ArgumentUnmarshaller {
/**
@@ -33,8 +36,7 @@ public interface ArgumentUnmarshaller {
/**
* Unmarshalls the {@link AttributeValue} given into an instance of the
- * appropriate type, as determined by {@link DynamoDBReflector} and
- * {@link DynamoDBMapper}
+ * appropriate type, as determined by {@link DynamoDBMapper}
*
* @throws ParseException when unable to parse a date string
*/
diff --git a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AttributeTransformer.java b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AttributeTransformer.java
index 8efc798fc6a7..767c44a063a5 100644
--- a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AttributeTransformer.java
+++ b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AttributeTransformer.java
@@ -1,19 +1,21 @@
/*
- * Copyright 2013-2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
+import software.amazon.awssdk.annotations.SdkPublicApi;
import java.util.Map;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
@@ -28,6 +30,7 @@
* {@code untransform} method. These methods SHOULD be inverses, such that
* untransform(transform(value)) == value.
*/
+@SdkPublicApi
public interface AttributeTransformer {
/**
* Parameters for the {@code transform} and {@code untransform} methods,
diff --git a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AttributeTransformerChain.java b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AttributeTransformerChain.java
index e5ff5cbc5f11..872f82cc1205 100644
--- a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AttributeTransformerChain.java
+++ b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/AttributeTransformerChain.java
@@ -1,19 +1,21 @@
/*
- * Copyright 2013-2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
+import software.amazon.awssdk.annotations.SdkPublicApi;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -27,7 +29,8 @@
* attributes by running them through a cascading series of child
* {@code AttributeTransformer} instances.
*/
-public class AttributeTransformerChain implements AttributeTransformer {
+@SdkPublicApi
+public final class AttributeTransformerChain implements AttributeTransformer {
private final List transformers;
diff --git a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/BatchLoadContext.java b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/BatchLoadContext.java
index 1439b5831a0f..cc2ee62c443b 100644
--- a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/BatchLoadContext.java
+++ b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/BatchLoadContext.java
@@ -1,6 +1,5 @@
/*
- * Copyright 2010-2025 Amazon.com, Inc. or its affiliates. All Rights
- * Reserved.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
@@ -14,8 +13,10 @@
* permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
+import software.amazon.awssdk.annotations.SdkPublicApi;
import java.util.Objects;
import software.amazon.awssdk.services.dynamodb.model.BatchGetItemRequest;
import software.amazon.awssdk.services.dynamodb.model.BatchGetItemResponse;
@@ -26,7 +27,8 @@
*
* @author avinam
*/
-public class BatchLoadContext {
+@SdkPublicApi
+public final class BatchLoadContext {
/**
* The BatchGetItemResponse returned by the DynamoDB client.
*/
diff --git a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ConversionSchema.java b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ConversionSchema.java
index a19d7522748b..0de861a1ed0c 100644
--- a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ConversionSchema.java
+++ b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ConversionSchema.java
@@ -1,19 +1,21 @@
/*
- * Copyright 2014-2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
+import software.amazon.awssdk.annotations.SdkPublicApi;
import java.util.HashMap;
import java.util.Map;
@@ -23,6 +25,7 @@
* Standard implementations are available in the {@link ConversionSchemas}
* class.
*/
+@SdkPublicApi
public interface ConversionSchema {
/**
diff --git a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ConversionSchemas.java b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ConversionSchemas.java
index 4ceaf5717b73..a008dc186201 100644
--- a/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ConversionSchemas.java
+++ b/services-custom/dynamodb-mapper/src/main/java/software/amazon/awssdk/mapper/dynamodb/ConversionSchemas.java
@@ -1,19 +1,21 @@
/*
- * Copyright 2014-2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
*
- * http://aws.amazon.com/apache2.0
+ * http://aws.amazon.com/apache2.0
*
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and
- * limitations under the License.
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*/
+
package software.amazon.awssdk.mapper.dynamodb;
+import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.mapper.dynamodb.ArgumentMarshaller.BinaryAttributeMarshaller;
import software.amazon.awssdk.mapper.dynamodb.ArgumentMarshaller.BinarySetAttributeMarshaller;
import software.amazon.awssdk.mapper.dynamodb.ArgumentMarshaller.BooleanAttributeMarshaller;
@@ -27,70 +29,69 @@
import software.amazon.awssdk.mapper.dynamodb.StandardBeanProperties.Bean;
import software.amazon.awssdk.mapper.dynamodb.StandardModelFactories.Rule;
import software.amazon.awssdk.mapper.dynamodb.StandardModelFactories.RuleFactory;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.BooleanSetToNumberSetMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.BooleanToBooleanMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.BooleanToNumberMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.ByteArraySetToBinarySetMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.ByteArrayToBinaryMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.ByteBufferSetToBinarySetMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.ByteBufferToBinaryMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.CalendarSetToStringSetMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.CalendarToStringMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.CollectionToListMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.CustomMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.DateSetToStringSetMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.DateToStringMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.MapToMapMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.NumberSetToNumberSetMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.NumberToNumberMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.ObjectSetToStringSetMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.ObjectToMapMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.ObjectToStringMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.S3LinkToStringMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.StringSetToStringSetMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.StringToStringMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.marshallers.UUIDSetToStringSetMarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.BigDecimalSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.BigDecimalUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.BigIntegerSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.BigIntegerUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.BooleanSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.BooleanUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ByteArraySetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ByteArrayUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ByteBufferSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ByteBufferUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ByteSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ByteUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.CalendarSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.CalendarUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.CustomUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.DateSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.DateUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.DoubleSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.DoubleUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.FloatSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.FloatUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.IntegerSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.IntegerUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ListUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.LongSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.LongUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.MapUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.NullableUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ObjectSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ObjectUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.S3LinkUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ShortSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.ShortUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.StringSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.StringUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.UUIDSetUnmarshaller;
-import software.amazon.awssdk.mapper.dynamodb.unmarshallers.UUIDUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.BooleanSetToNumberSetMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.BooleanToBooleanMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.BooleanToNumberMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.ByteArraySetToBinarySetMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.ByteArrayToBinaryMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.ByteBufferSetToBinarySetMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.ByteBufferToBinaryMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.CalendarSetToStringSetMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.CalendarToStringMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.CollectionToListMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.CustomMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.DateSetToStringSetMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.DateToStringMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.MapToMapMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.NumberSetToNumberSetMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.NumberToNumberMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.ObjectSetToStringSetMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.ObjectToMapMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.ObjectToStringMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.S3LinkToStringMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.StringSetToStringSetMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.StringToStringMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.marshallers.UUIDSetToStringSetMarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.BigDecimalSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.BigDecimalUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.BigIntegerSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.BigIntegerUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.BooleanSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.BooleanUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ByteArraySetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ByteArrayUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ByteBufferSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ByteBufferUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ByteSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ByteUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.CalendarSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.CalendarUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.CustomUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.DateSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.DateUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.DoubleSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.DoubleUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.FloatSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.FloatUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.IntegerSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.IntegerUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ListUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.LongSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.LongUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.MapUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.NullableUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ObjectSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ObjectUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.S3LinkUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ShortSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.ShortUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.StringSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.StringUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.UUIDSetUnmarshaller;
+import software.amazon.awssdk.mapper.dynamodb.internal.unmarshallers.UUIDUnmarshaller;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import software.amazon.awssdk.utils.Logger;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
@@ -111,10 +112,10 @@
/**
* Pre-defined strategies for mapping between Java types and DynamoDB types.
*/
+@SdkPublicApi
public final class ConversionSchemas {
- private static final Log LOGGER =
- LogFactory.getLog(ConversionSchemas.class);
+ private static final Logger LOGGER = Logger.loggerFor(ConversionSchemas.class);
/**
* The V1 schema mapping, which retains strict backwards compatibility with
@@ -282,9 +283,9 @@ public StandardItemConverter(
@Override
public DynamoDBMapperFieldModel getFieldModel(Method getter) {
- final ArgumentMarshaller marshaller = getMarshaller(getter);
+ ArgumentMarshaller marshaller = getMarshaller(getter);
- final DynamoDBAttributeType attributeType;
+ DynamoDBAttributeType attributeType;
if (marshaller instanceof StringAttributeMarshaller) {
attributeType = DynamoDBAttributeType.S;
} else if (marshaller instanceof NumberAttributeMarshaller) {
@@ -313,8 +314,8 @@ public DynamoDBMapperFieldModel getFieldModel(Method getter) {
// actually correct for @DynamoDBFlattened attributes, however,
// its the best that can be done given only the method. The
// proper way to get this information is using the model factory.
- final StandardAnnotationMaps.FieldMap annotations = StandardAnnotationMaps.of(getter, null);
- final DynamoDBMapperFieldModel.Builder builder = new DynamoDBMapperFieldModel.Builder(void.class, annotations);
+ StandardAnnotationMaps.FieldMap annotations = StandardAnnotationMaps.of(getter, null);
+ DynamoDBMapperFieldModel.Builder builder = new DynamoDBMapperFieldModel.Builder(void.class, annotations);
builder.with(attributeType);
return builder.build();
}
@@ -339,7 +340,7 @@ public Map convert(Object object) {
Map result =
new HashMap();
- for (final Bean