From: Mathieu Baudier Date: Sat, 22 Jan 2022 13:55:09 +0000 (+0100) Subject: Move default UUID factory to the implementation X-Git-Tag: argeo-commons-2.3.5~74 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=d4be864e93621304bc55a251ccc9bd4d7aab6302 Move default UUID factory to the implementation --- diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/uuid/SimpleUuidFactory.java b/org.argeo.api.acr/src/org/argeo/api/acr/uuid/SimpleUuidFactory.java index 629e10435..9e86b0bd2 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/uuid/SimpleUuidFactory.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/uuid/SimpleUuidFactory.java @@ -27,6 +27,7 @@ import java.util.UUID; */ public class SimpleUuidFactory implements UuidFactory { private final static Logger logger = System.getLogger(SimpleUuidFactory.class.getName()); + public final static UuidFactory DEFAULT = new SimpleUuidFactory(null, -1, null); // private final static int MAX_CLOCKSEQUENCE = 16384; private SecureRandom secureRandom; @@ -40,6 +41,7 @@ public class SimpleUuidFactory implements UuidFactory { private final TimeUuidState macAddressTimeUuidState; private final TimeUuidState defaultTimeUuidState; + public SimpleUuidFactory(byte[] nodeId, int offset, Clock clock) { try { secureRandom = SecureRandom.getInstance("DRBG", diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/uuid/UuidFactory.java b/org.argeo.api.acr/src/org/argeo/api/acr/uuid/UuidFactory.java index eb46c302d..e99cd71eb 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/uuid/UuidFactory.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/uuid/UuidFactory.java @@ -4,6 +4,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; import java.util.Random; import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; import java.util.function.Supplier; /** @@ -52,6 +53,10 @@ public interface UuidFactory extends Supplier { return UUID.randomUUID(); } + default UUID randomUUIDWeak() { + return randomUUID(ThreadLocalRandom.current()); + } + @Override default UUID get() { return randomUUID(); @@ -112,9 +117,4 @@ public interface UuidFactory extends Supplier { static boolean isNameBased(UUID uuid) { return uuid.version() == 3 || uuid.version() == 5; } - - /* - * DEFAULT - */ - final static UuidFactory DEFAULT = new SimpleUuidFactory(null, -1, null); }