diff --git a/CHANGELOG.md b/CHANGELOG.md index 97c4d74..5d10b50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,20 +20,20 @@ Now you call `UlidFactory.newInstance()` and it's variants to get a new `UlidFac ### Added -- Added `UlidFactory.newInstance()` -- Added `UlidFactory.newInstance(Random)` -- Added `UlidFactory.newInstance(Supplier)` -- Added `UlidFactory.newMonotonicInstance()` -- Added `UlidFactory.newMonotonicInstance(Random)` -- Added `UlidFactory.newMonotonicInstance(Supplier)` -- Added benchmark code to compare ULID with UUID +- Added `UlidFactory.newInstance()` +- Added `UlidFactory.newInstance(Random)` +- Added `UlidFactory.newInstance(Supplier)` +- Added `UlidFactory.newMonotonicInstance()` +- Added `UlidFactory.newMonotonicInstance(Random)` +- Added `UlidFactory.newMonotonicInstance(Supplier)` +- Added benchmark code to compare ULID with UUID ### Removed -- Removed `DefaultFactory` -- Removed `MonotonicFactory` -- Removed `Ulid.toUpperCase()` -- Removed `RandomGenerator` +- Removed `DefaultFactory` +- Removed `MonotonicFactory` +- Removed `Ulid.toUpperCase()` +- Removed `RandomGenerator` ## [3.2.0] - 2021-07-17 @@ -41,7 +41,7 @@ Simplified the use of `UlidFactory` with other random generators. ### Added -- Added constructors in `UlidFactory` for random generators. +- Added constructors in `UlidFactory` for random generators. ## [3.1.1] - 2021-07-17 @@ -49,7 +49,7 @@ Creates a module name be used in Java 9+. ### Added -- Added module name for Java 9+ +- Added module name for Java 9+ ## [3.1.0] - 2021-02-13 @@ -57,21 +57,21 @@ Adds static methods for extracting information from ULIDs. ### Added -- Added `CHANGELOG.md` -- Added static method `Ulid.getInstant(String)` -- Added static method `Ulid.getTime(String)` -- Added static method `Ulid.getRandom(String)` +- Added `CHANGELOG.md` +- Added static method `Ulid.getInstant(String)` +- Added static method `Ulid.getTime(String)` +- Added static method `Ulid.getRandom(String)` ### Changed -- Updated `README.md` -- Updated test cases +- Updated `README.md` +- Updated test cases ## [3.0.1] - 2021-01-30 ### Changed -- Renamed subpackage `creator` to `factory` +- Renamed subpackage `creator` to `factory` ## [3.0.0] - 2021-01-30 @@ -81,46 +81,46 @@ Now the `ulid-creator` can generate two types of ULID: default (non-monotonic) a ### Added -- Added class `Ulid` -- Added abstract class `UlidFactory` -- Added class `DefaultUlidFactory` -- Added class `MonotonicUlidFactory` -- Added functional interface `RandomGenerator` -- Added class `DefaultRandomGenerator` -- Added static method `UlidCreator.getUlid(): Ulid` -- Added static method `UlidCreator.getUlid(long): Ulid` -- Added static method `UlidCreator.getMonotonicUlid(): Ulid` -- Added static method `UlidCreator.getMonotonicUlid(long): Ulid` -- Added static method `UlidCreator.getDefaultFactory(): UlidFactory` -- Added static method `UlidCreator.getMonotonicFactory(): UlidFactory` +- Added class `Ulid` +- Added abstract class `UlidFactory` +- Added class `DefaultUlidFactory` +- Added class `MonotonicUlidFactory` +- Added functional interface `RandomGenerator` +- Added class `DefaultRandomGenerator` +- Added static method `UlidCreator.getUlid(): Ulid` +- Added static method `UlidCreator.getUlid(long): Ulid` +- Added static method `UlidCreator.getMonotonicUlid(): Ulid` +- Added static method `UlidCreator.getMonotonicUlid(long): Ulid` +- Added static method `UlidCreator.getDefaultFactory(): UlidFactory` +- Added static method `UlidCreator.getMonotonicFactory(): UlidFactory` ### Changed -- Rewrote `UlidCreator` -- Rewrote all `README.md` -- Rewrote all test cases +- Rewrote `UlidCreator` +- Rewrote all `README.md` +- Rewrote all test cases ### Removed -- Removed class `UlidStruct`, replaced by `Ulid` -- Removed class `UlidUtil`, use`Ulid` instead -- Removed class `UlidConverter`, use `Ulid` instead -- Removed class `UlidValidator`, use`Ulid` instead -- Removed class `UlidSpecCreator`, replaced by `UlidFactory` -- Removed class `InvalidUlidException`, replaced by `IllegalArgumentException` -- Removed interface `RandomStrategy`, replaced by `RandomGenerator` -- Removed class `DefaultRandomStrategy`, replaced by `DefaultRandomGenerator` -- Removed class `OtherRandomStrategy` -- Removed interface `TimestampStrategy` -- Removed class `DefaultTimestampStrategy` -- Removed class `FixedTimestampStrategy` -- Removed static method `UlidCreator.fromString(String): UUID` -- Removed static method `UlidCreator.toString(UUID): String` -- Removed static method `UlidCreator.getUlid(): UUID` -- Removed static method `UlidCreator.getUlid4(): UUID` -- Removed static method `UlidCreator.getUlidString(): String` -- Removed static method `UlidCreator.getUlidString4(): String` -- Removed static method `UlidCreator.getUlidSpecCreator(): UlidSpecCreator` +- Removed class `UlidStruct`, replaced by `Ulid` +- Removed class `UlidUtil`, use`Ulid` instead +- Removed class `UlidConverter`, use `Ulid` instead +- Removed class `UlidValidator`, use`Ulid` instead +- Removed class `UlidSpecCreator`, replaced by `UlidFactory` +- Removed class `InvalidUlidException`, replaced by `IllegalArgumentException` +- Removed interface `RandomStrategy`, replaced by `RandomGenerator` +- Removed class `DefaultRandomStrategy`, replaced by `DefaultRandomGenerator` +- Removed class `OtherRandomStrategy` +- Removed interface `TimestampStrategy` +- Removed class `DefaultTimestampStrategy` +- Removed class `FixedTimestampStrategy` +- Removed static method `UlidCreator.fromString(String): UUID` +- Removed static method `UlidCreator.toString(UUID): String` +- Removed static method `UlidCreator.getUlid(): UUID` +- Removed static method `UlidCreator.getUlid4(): UUID` +- Removed static method `UlidCreator.getUlidString(): String` +- Removed static method `UlidCreator.getUlidString4(): String` +- Removed static method `UlidCreator.getUlidSpecCreator(): UlidSpecCreator` ## [2.3.3] - 2020-11-16 @@ -128,16 +128,16 @@ Optimization and housekeeping. ### Added -- Added test cases +- Added test cases ### Changed -- Optimized `UlidSpecCreator` -- Updated `README.md` +- Optimized `UlidSpecCreator` +- Updated `README.md` ### Removed -- Removed unused code +- Removed unused code ## [2.3.2] - 2020-11-09 @@ -145,7 +145,7 @@ Only Optimization. ### Changed -- Optimized `UlidValidator` +- Optimized `UlidValidator` ## [2.3.1] - 2020-11-08 @@ -153,13 +153,13 @@ Added static methods for extracting Unix time. ### Added -- Added static method `UlidUtil.extractUnixMilliseconds(UUID)` -- Added static method `UlidUtil.extractUnixMilliseconds(String)` +- Added static method `UlidUtil.extractUnixMilliseconds(UUID)` +- Added static method `UlidUtil.extractUnixMilliseconds(String)` ### Changed -- Moved UUID v4 generation to `UlidStruct` -- Updated test cases +- Moved UUID v4 generation to `UlidStruct` +- Updated test cases ## [2.3.0] - 2020-11-08 @@ -167,15 +167,15 @@ Now it can generate UUIDs and ULIDs compatible with RFC-4122 UUID v4. ### Added -- Added static method `UlidCreator.getUlid4()` -- Added static method `UlidCreator.getUlidString4()` -- Added method `UlidSpecCreator.create4()` -- Added method `UlidSpecCreator.createString4()` +- Added static method `UlidCreator.getUlid4()` +- Added static method `UlidCreator.getUlidString4()` +- Added method `UlidSpecCreator.create4()` +- Added method `UlidSpecCreator.createString4()` ### Changed -- Updated `README.md` -- Updated test cases +- Updated `README.md` +- Updated test cases ## [2.2.0] - 2020-11-08 @@ -183,16 +183,16 @@ Now the generation of ULID in canonical string format is 2.5x faster than before ### Added -- Added `UlidStruct` for internal use -- Added test cases +- Added `UlidStruct` for internal use +- Added test cases ### Changed -- Optimized `UlidSpecCreator` by using `UlidStruct` -- Optimized `UlidConverter` by using `UlidStruct` -- Optimized `UlidValidator` -- Updated `README.md` -- Updated javadoc +- Optimized `UlidSpecCreator` by using `UlidStruct` +- Optimized `UlidConverter` by using `UlidStruct` +- Optimized `UlidValidator` +- Updated `README.md` +- Updated javadoc ## [2.1.0] - 2020-10-17 @@ -200,13 +200,13 @@ Removed the overrun exception because it is extremely unlikely to occur ### Changed -- Updated `README.md` -- Updated test cases -- Updated javadoc +- Updated `README.md` +- Updated test cases +- Updated javadoc ### Removed -- Removed `UlidCreatorException`, used in overruns +- Removed `UlidCreatorException`, used in overruns ## [2.0.0] - 2020-07-04 @@ -214,37 +214,37 @@ This version breaks compatibility. ### Added -- Added `RandomStrategy` -- Added `DefaultRandomStrategy` -- Added `OtherRandomStrategy` -- Added test cases +- Added `RandomStrategy` +- Added `DefaultRandomStrategy` +- Added `OtherRandomStrategy` +- Added test cases ### Changed -- Changed `UlidCreator` -- Renamed `UlidBasedGuidCreator` to `UlidSpecCreator` -- Changed JDK version from 11 to 8 for compatibility with Java 8 -- Optimized `UlidConverter.fromString(String)` -- Optimized `UlidConverter.toString(UUID)` -- Optimized `UlidValidator.isValid(String)` -- Updated `README.md` -- Updated `pom.xml` -- Updated test cases -- Updated javadoc +- Changed `UlidCreator` +- Renamed `UlidBasedGuidCreator` to `UlidSpecCreator` +- Changed JDK version from 11 to 8 for compatibility with Java 8 +- Optimized `UlidConverter.fromString(String)` +- Optimized `UlidConverter.toString(UUID)` +- Optimized `UlidValidator.isValid(String)` +- Updated `README.md` +- Updated `pom.xml` +- Updated test cases +- Updated javadoc ## [1.1.0] - 2020-04-18 ### Changed -- Renamed `GuidCreator` to `UlidBasedGuidCreator` -- Changed the overrun exception to be thrown when 2^80 requests occurs within the same msec -- Updated `README.md` -- Updated `pom.xml` -- Updated test cases +- Renamed `GuidCreator` to `UlidBasedGuidCreator` +- Changed the overrun exception to be thrown when 2^80 requests occurs within the same msec +- Updated `README.md` +- Updated `pom.xml` +- Updated test cases ### Removed -- Removed unused code +- Removed unused code ## [1.0.0] - 2020-02-23 @@ -252,23 +252,23 @@ Project created as an alternative Java implementation of [ULID spec](https://git ### Added -- Added `UlidCreator` -- Added `GuidCreator` -- Added `TimestampStrategy` -- Added `DefaultTimestampStrategy` -- Added `FixedTimestampStrategy` -- Added `XorshiftRandom` -- Added `Xorshift128PlusRandom` -- Added `Base32Util` -- Added `ByteUtil` -- Added `FingerprintUtil` -- Added `NetworkData` -- Added `UlidUtil` -- Added `UlidCreatorException` -- Added `README.md` -- Added `pom.xml` -- Added `LICENSE` -- Added test cases +- Added `UlidCreator` +- Added `GuidCreator` +- Added `TimestampStrategy` +- Added `DefaultTimestampStrategy` +- Added `FixedTimestampStrategy` +- Added `XorshiftRandom` +- Added `Xorshift128PlusRandom` +- Added `Base32Util` +- Added `ByteUtil` +- Added `FingerprintUtil` +- Added `NetworkData` +- Added `UlidUtil` +- Added `UlidCreatorException` +- Added `README.md` +- Added `pom.xml` +- Added `LICENSE` +- Added test cases [unreleased]: https://github.com/f4b6a3/ulid-creator/compare/ulid-creator-4.1.0...HEAD [4.1.0]: https://github.com/f4b6a3/ulid-creator/compare/ulid-creator-4.0.0...ulid-creator-4.1.0 diff --git a/benchmark/run.sh b/benchmark/run.sh index 011cab1..0914f40 100755 --- a/benchmark/run.sh +++ b/benchmark/run.sh @@ -3,16 +3,16 @@ ARTIFACT_ID=ulid-creator # find the script folder -SCRIPT_DIR=`dirname "$0"` +SCRIPT_DIR=$(dirname "$0") # go to the parent folder -cd ${SCRIPT_DIR}/.. +cd "${SCRIPT_DIR}/.." # compile the parent project mvn clean install -# create a symbolic link to be imported to the maven repository -cp ${PWD}/target/${ARTIFACT_ID}-*-SNAPSHOT.jar ${PWD}/target/${ARTIFACT_ID}-0.0.1-BENCHMARK.jar +# create a copy with the expected name +cp "${PWD}/target/${ARTIFACT_ID}"-*-SNAPSHOT.jar "${PWD}/target/${ARTIFACT_ID}"-0.0.1-BENCHMARK.jar # go to the benchmark folder cd benchmark @@ -25,4 +25,3 @@ mvn clean install # /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar target/benchmarks.jar java -jar target/benchmarks.jar - diff --git a/src/test/java/com/github/f4b6a3/ulid/UniquenessTest.java b/src/test/java/com/github/f4b6a3/ulid/UniquenessTest.java index 8aa809b..106ce1d 100644 --- a/src/test/java/com/github/f4b6a3/ulid/UniquenessTest.java +++ b/src/test/java/com/github/f4b6a3/ulid/UniquenessTest.java @@ -92,12 +92,10 @@ public class UniquenessTest { // Request a ULID Ulid ulid = factory.create(time); - if (verbose) { - if (i % (max / 100) == 0) { - // Calculate and show progress - progress = (int) ((i * 1.0 / max) * 100); - System.out.println(String.format("[Thread %06d] %s %s %s%%", id, ulid, i, (int) progress)); - } + if (verbose && (i % (max / 100) == 0)) { + // Calculate and show progress + progress = (int) ((i * 1.0 / max) * 100); + System.out.println(String.format("[Thread %06d] %s %s %s%%", id, ulid, i, (int) progress)); } synchronized (hashSet) { // Insert the value in cache, if it does not exist in it.