Releases: pmalirz/dlock
Releases · pmalirz/dlock
3.0.0
🚀 dlock 3.0.0
DLock 3.0.0 is a major milestone release that brings a complete technical foundation overhaul, powerful API refinements, and modernized tooling. The entire library has been transitioned to pure Java to enhance ecosystem alignment.
🛠️ Major Architectural Changes
- Complete Rewrite in Java: The entire codebase has been migrated from Kotlin to pure Java (maintaining 1:1 logic and functionality) to provide seamless integration and a highly robust foundation for Java environments.
- Modernized Ecosystem: Baseline bumped to require Java 17+ and upgraded integrations to Spring Boot 3 / Spring Framework 6.
- Maven Central Publishing: Configured the build pipeline and GitHub Actions to automatically publish signed artifacts to Maven Central.
✨ Features & API Refinements
- Simplified
KeyLockAPI: RefactoredKeyLockby making the consumer-basedtryLocka default method on the interface. This completely removes the need forClosableKeyLockProviderand simplifies the configuration surface area. - Database Time Synchronization: Upgraded the
dlock-jdbc(PostgreSQL) engine to use database-native time for expiration/reclaims. This drastically improves lock expiration safety without relying on application node system clocks. - Better Integration Testing: Split the automated test infrastructure by introducing a dedicated
src/intTestsuite using the JVM Test Suite Gradle plugin. - Refreshed Documentation & Benchmarks: Expanded READMEs to detail JDBC safety guarantees and updated JMH benchmark scores for transparent performance metrics.
🐛 Bug Fixes & Stability
- Concurrency Issue Avoided: Fixed a potential race condition and concurrency issue in
LocalLockRepositoryregarding the expiration reclaim mechanism. - Strong Type Safety: Resolved unchecked annotation and null-type safety warnings within
LockAspectsUtil. - CI/CD Reliability: Fixed failing jobs across GitHub Actions to ensure strict type checking and automated build stability.