Move default UUID factory to the implementation
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 22 Jan 2022 13:55:09 +0000 (14:55 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 22 Jan 2022 13:55:09 +0000 (14:55 +0100)
org.argeo.api.acr/src/org/argeo/api/acr/uuid/SimpleUuidFactory.java
org.argeo.api.acr/src/org/argeo/api/acr/uuid/UuidFactory.java

index 629e1043553e7729ab51866d975bdffbdf8a1864..9e86b0bd2f130f553ea3dd45d8aa6b5f59ed84c2 100644 (file)
@@ -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",
index eb46c302dabcb141b15b9bb697690bcbbfe99425..e99cd71ebe42f7135fdc8ad6d981c768f643ede3 100644 (file)
@@ -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<UUID> {
                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<UUID> {
        static boolean isNameBased(UUID uuid) {
                return uuid.version() == 3 || uuid.version() == 5;
        }
-
-       /*
-        * DEFAULT
-        */
-       final static UuidFactory DEFAULT = new SimpleUuidFactory(null, -1, null);
 }