-
Notifications
You must be signed in to change notification settings - Fork 893
DDB Enhanced: Allow custom versioning #6019
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
DDB Enhanced: Allow custom versioning #6019
Conversation
abcd87a
to
4e82d7e
Compare
...tom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/Expression.java
Outdated
Show resolved
Hide resolved
.../main/java/software/amazon/awssdk/enhanced/dynamodb/extensions/VersionedRecordExtension.java
Outdated
Show resolved
Hide resolved
.../main/java/software/amazon/awssdk/enhanced/dynamodb/extensions/VersionedRecordExtension.java
Outdated
Show resolved
Hide resolved
<configuration> | ||
<parameter> | ||
<excludes> | ||
<!-- japicmp flagging these incorrectly as a breaking change --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, this is odd, can you paste the error logs? If we have to add exclusion, we should add it to the top level pom https://github.com/aws/aws-sdk-java-v2/blob/master/pom.xml#L681
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the error only was shown on CI, but I was able to raise with running mvn japicmp:cmp -pl :dynamodb-enhanced
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.557 s
[INFO] Finished at: 2025-04-21T11:29:14-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.siom79.japicmp:japicmp-maven-plugin:0.15.6:cmp (default-cli) on project dynamodb-enhanced: There is at least one incompatibility: software.amazon.awssdk.enhanced.dynamodb.extensions.annotations.DynamoDbVersionAttribute.incrementBy():METHOD_ABSTRACT_ADDED_TO_CLASS,software.amazon.awssdk.enhanced.dynamodb.extensions.annotations.DynamoDbVersionAttribute.startAt():METHOD_ABSTRACT_ADDED_TO_CLASS -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
.../main/java/software/amazon/awssdk/enhanced/dynamodb/extensions/VersionedRecordExtension.java
Outdated
Show resolved
Hide resolved
.../main/java/software/amazon/awssdk/enhanced/dynamodb/extensions/VersionedRecordExtension.java
Outdated
Show resolved
Hide resolved
.../main/java/software/amazon/awssdk/enhanced/dynamodb/extensions/VersionedRecordExtension.java
Outdated
Show resolved
Hide resolved
.../main/java/software/amazon/awssdk/enhanced/dynamodb/extensions/VersionedRecordExtension.java
Outdated
Show resolved
Hide resolved
Thank you for picking up this change! It will greatly simplify our version handling. Please let me know if I can do anything to help. |
9e39a83
to
3d505a6
Compare
|
Motivation and Context
This PR builds on the work started in issue #3894 where the
VersionedRecordExtension
didn't support starting version numbers at 0, requiring clients to use Integer objects (with null initial values) rather than int primitives. As mentioned by @akiesler in the original issue, developers might expect versions to start at 0 and increment from there, rather than having a special case where the value must be initialized to null.This implementation allows the extension to be more flexible by allowing:
Modifications
VersionedRecordExtension
to support explicitstartAt
andincrementBy
values via builder methods (making it opt-in).DynamoDbVersionAttribute
annotation to supportstartAt
andincrementBy
parametersTesting
startAt
andincrementBy
values through both builder and annotationsstartAt
, zero/negativeincrementBy
)