Commit Graph

19 Commits

Author SHA1 Message Date
Fabio Lima ebc145f52a Add a fast method to generate identifiers #22 2022-10-22 15:02:37 -03:00
Fabio Lima fbe1338ce9 Rewrite docs #21 2022-09-17 09:56:07 -03:00
Fabio Lima aad72e2f11 Optimize comparison and hash #20 2022-08-21 07:43:11 -03:00
Fabio Lima f80eb4029c Add support for RandomGenerator in Java 17 #19 2022-07-09 14:43:36 -03:00
Fabio Lima 28ece966b4 handle clock drift #18 2022-04-21 21:34:33 -03:00
Fabio Lima 745bd55ffc feat: handle clock drift #18
Added drift tolerance of 10 seconds to preserve monotonicity when the
system clock is adjusted by NTP after a small clock drift or when the
system clock jumps back by 1 second due to leap second.

The random component is incremented when the current time:
- is the same as the previous time;
- has moved backwards up to 10 seconds.

The time component is also incremented if the random component is
exceeded, which is quite rare.
2022-04-21 14:53:06 -03:00
Fabio Lima ced08d1a55 Compare internal fields as unsigned integers #17 2021-11-06 10:06:14 -03:00
Fabio Lima 7b4abe0f9c Merge branch 'master' of https://github.com/f4b6a3/ulid-creator 2021-10-03 23:11:26 -03:00
Fabio Lima e83a2fcf82 regular maintenance
Improve code quality after Codacy.com analysis.

Site: https://app.codacy.com
2021-10-02 09:31:19 -03:00
Fabio Lima 132ab99b77 Provide OSGI support #16
Added OSGi entries to `MANIFEST.MF`:

```
Bundle-ManifestVersion: 2
Bundle-Name: ulid-creator
Bundle-SymbolicName: com.github.f4b6a3.ulid
Bundle-Version: 4.1.0
Export-Package: com.github.f4b6a3.ulid
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
```

The OSGi symbolic name is the same as the root package name:
`com.github.f4b6a3.ulid`
2021-09-04 02:00:57 -03:00
Fabio Lima 27a4f60cb5 Version 4.0.0 #15
Now you call `UlidFactory.newInstance()` and it's variants to get a new
`UlidFactory`.

List of changes:

- Added `UlidFactory.newInstance()`
- Added `UlidFactory.newInstance(Random)`
- Added `UlidFactory.newInstance(Supplier<byte[]>)`
- Added `UlidFactory.newMonotonicInstance()`
- Added `UlidFactory.newMonotonicInstance(Random)`
- Added `UlidFactory.newMonotonicInstance(Supplier<byte[]>)`
- Added benchmark code to compare ULID with UUID
- Removed `DefaultFactory`
- Removed `MonotonicFactory`
- Removed `Ulid.toUpperCase()`
- Removed `RandomGenerator`
2021-08-08 01:35:40 -03:00
Fabio Lima 8a68ad617e Merge branch 'master' of https://github.com/f4b6a3/ulid-creator 2021-07-25 17:55:54 -03:00
Fabio Lima cd849c4e21 Add benchmark code to compare ULID with UUID #14
The benchmark code was created in the direcory `benchmark`.

To execute the benchmark, run the script `./benchmark/run.sh`.

Sorry, there is no `run.bat` file for Windows.
2021-07-25 17:55:29 -03:00
Fabio Lima b29807d831
Update CHANGELOG.md 2021-07-18 01:57:23 -03:00
Fabio Lima 0f431d01b1 Add constructors in UlidFactory for random generators #12
New constructors:

- public UlidFactory(Random random) { }
- public UlidFactory(RandomGenerator randomGenerator) { }
2021-07-18 01:21:41 -03:00
Fabio Lima 0e1fe3f162 Merge branch 'master' of https://github.com/f4b6a3/ulid-creator 2021-07-17 14:12:47 -03:00
Fabio Lima d3277fe372 Module name for Java 9+ #11
Add this line to MANIFEST.MF:

Automatic-Module-Name: com.github.f4b6a3.ulid
2021-07-17 14:02:34 -03:00
Fabio Lima e3f6e61f6b
Update CHANGELOG.md 2021-02-14 02:28:49 -03:00
Fabio Lima d739278138 Add a changelog file #10
Added CHANGELOG.md
2021-02-13 20:21:06 -03:00