Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
make @CurrentTimestamp take over the job of @Source, and make value generation work better with version properties
Description
Currently, all the timestamp generation stuff shows all the signs of evolution over time. We really don’t need @Source, @CurrentTimestamp, @UpdateTimestamp, and @CreationTimestamp, we only have so many different annotations because different people were worried about different specific problems at different times.
It’s well past time for a cleanup. I would be perfectly happy to deprecate three of these annotations and leave only @CurrentTimestamp standing, but @UpdateTimestamp and @CreationTimestamp survive because they can be viewed as abbreviations.
To make all this work, I needed to make all three of them allow an explicit SourceType, and I needed to fix up the handling of value generation with version properties, which wasn’t quite working perfectly, because the main point of this is to let you write @Version @CurrentTimestamp instead of @Version @Source(DB).
Activity
Show:
Gavin King November 28, 2022 at 9:56 PM
Done! This was a really great cleanup!
Gavin King November 28, 2022 at 12:23 PM
Note that this change also gets us quite a bit closer to replacing the special-purpose VersionJavaType stuff with the more generic ValueGeneration machinery.
Currently, all the timestamp generation stuff shows all the signs of evolution over time. We really don’t need
@Source
,@CurrentTimestamp
,@UpdateTimestamp
, and@CreationTimestamp
, we only have so many different annotations because different people were worried about different specific problems at different times.It’s well past time for a cleanup. I would be perfectly happy to deprecate three of these annotations and leave only
@CurrentTimestamp
standing, but@UpdateTimestamp
and@CreationTimestamp
survive because they can be viewed as abbreviations.To make all this work, I needed to make all three of them allow an explicit
SourceType
, and I needed to fix up the handling of value generation with version properties, which wasn’t quite working perfectly, because the main point of this is to let you write@Version @CurrentTimestamp
instead of@Version @Source(DB)
.