From fa08798a9087a5144dbc25243e53bd5b49d30560 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Mon, 19 Feb 2024 14:23:59 -0800 Subject: [PATCH] Update release notes, javadocs, version references --- README.md | 2 +- release-notes/VERSION | 3 +++ .../java/com/fasterxml/uuid/Generators.java | 27 +++++++++++++------ .../impl/TimeBasedEpochRandomGenerator.java | 6 +---- .../com/fasterxml/uuid/impl/UUIDUtil.java | 2 +- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index a114217..e84d56b 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ UUID uuid = Generators.nameBasedgenerator().generate("string to hash"); // Versi // With JUG 4.1+: support for https://github.com/uuid6/uuid6-ietf-draft versions 6 and 7: UUID uuid = Generators.timeBasedReorderedGenerator().generate(); // Version 6 UUID uuid = Generators.timeBasedEpochGenerator().generate(); // Version 7 -UUID uuid = Generators.timeBasedEpochRandomGenerator().generate(); // Version 7 with random values +UUID uuid = Generators.timeBasedEpochRandomGenerator().generate(); // Version 7 with per-call random values ``` If you want customize generators, you may also just want to hold on to generator instance: diff --git a/release-notes/VERSION b/release-notes/VERSION index f621b53..d7db8cd 100644 --- a/release-notes/VERSION +++ b/release-notes/VERSION @@ -13,6 +13,9 @@ Releases (contributed by @magdel) #85: Fix `LazyRandom` for native code generation tools (contributed by @Maia-Everett) +#94: Add alternate version to UUIDv7 generator that uses random values on every + call (not just for different timestamp) + (contributed by @magdel) 4.3.0 (12-Sep-2023) diff --git a/src/main/java/com/fasterxml/uuid/Generators.java b/src/main/java/com/fasterxml/uuid/Generators.java index 5968861..9a17506 100644 --- a/src/main/java/com/fasterxml/uuid/Generators.java +++ b/src/main/java/com/fasterxml/uuid/Generators.java @@ -136,8 +136,10 @@ public static TimeBasedEpochGenerator timeBasedEpochGenerator() * Factory method for constructing UUID generator that generates UUID using * version 7 (Unix Epoch time+random based), using specified {@link Random} * number generator. - * Calls within same millisecond produce very similar values what may be + *

+ * NOTE: calls within same millisecond produce very similar values; this may be * unsafe in some environments. + *

* No additional external synchronization is used. */ public static TimeBasedEpochGenerator timeBasedEpochGenerator(Random random) @@ -149,9 +151,11 @@ public static TimeBasedEpochGenerator timeBasedEpochGenerator(Random random) * Factory method for constructing UUID generator that generates UUID using * version 7 (Unix Epoch time+random based), using specified {@link Random} * number generator. - * Timestamp to use is accessed using specified {@link UUIDClock} - * Calls within same millisecond produce very similar values what may be + * Timestamp to use is accessed using specified {@link UUIDClock}. + *

+ * NOTE: calls within same millisecond produce very similar values; this may be * unsafe in some environments. + *

* No additional external synchronization is used. * * @since 4.3 @@ -166,8 +170,13 @@ public static TimeBasedEpochGenerator timeBasedEpochGenerator(Random random, * Factory method for constructing UUID generator that generates UUID using * version 7 (Unix Epoch time+random based), using specified {@link Random} * number generator. - * Calls within same millisecond produce as random as possible values. + *

+ * Calls within same millisecond use additional per-call randomness to try to create + * more distinct values, compared to {@link #timeBasedEpochGenerator(Random)} + *

* No additional external synchronization is used. + * + * @since 5.0 */ public static TimeBasedEpochRandomGenerator timeBasedEpochRandomGenerator(Random random) { @@ -177,13 +186,15 @@ public static TimeBasedEpochRandomGenerator timeBasedEpochRandomGenerator(Random /** * Factory method for constructing UUID generator that generates UUID using * version 7 (Unix Epoch time+random based), using specified {@link Random} - * number generato. + * number generator. * Timestamp to use is accessed using specified {@link UUIDClock} - * Calls within same millisecond produce as random as possible values. - * + *

+ * Calls within same millisecond use additional per-call randomness to try to create + * more distinct values, compared to {@link #timeBasedEpochGenerator(Random)} + *

* No additional external synchronization is used. * - * @since 4.3 + * @since 5.0 */ public static TimeBasedEpochRandomGenerator timeBasedEpochRandomGenerator(Random random, UUIDClock clock) diff --git a/src/main/java/com/fasterxml/uuid/impl/TimeBasedEpochRandomGenerator.java b/src/main/java/com/fasterxml/uuid/impl/TimeBasedEpochRandomGenerator.java index 8285c93..0a2c12f 100644 --- a/src/main/java/com/fasterxml/uuid/impl/TimeBasedEpochRandomGenerator.java +++ b/src/main/java/com/fasterxml/uuid/impl/TimeBasedEpochRandomGenerator.java @@ -25,7 +25,7 @@ * {@link com.fasterxml.uuid.ext.FileBasedTimestampSynchronizer} (or * equivalent). * - * @since 4.1 + * @since 5.0 */ public class TimeBasedEpochRandomGenerator extends NoArgGenerator { @@ -45,8 +45,6 @@ public class TimeBasedEpochRandomGenerator extends NoArgGenerator /** * Underlying {@link UUIDClock} used for accessing current time, to use for * generation. - * - * @since 4.3 */ protected final UUIDClock _clock; @@ -117,8 +115,6 @@ public UUID generate() * @param rawTimestamp unix epoch millis * * @return unix epoch time based UUID - * - * @since 4.3 */ public UUID construct(long rawTimestamp) { diff --git a/src/main/java/com/fasterxml/uuid/impl/UUIDUtil.java b/src/main/java/com/fasterxml/uuid/impl/UUIDUtil.java index 60ce671..fffea93 100644 --- a/src/main/java/com/fasterxml/uuid/impl/UUIDUtil.java +++ b/src/main/java/com/fasterxml/uuid/impl/UUIDUtil.java @@ -362,7 +362,7 @@ private final static void _checkUUIDByteArray(byte[] bytes, int offset) * * @return timestamp in milliseconds (since Epoch), or 0 if type does not support timestamps * - * @since 5.0.0 + * @since 5.0 */ public static long extractTimestamp(UUID uuid) {