Named Locks using Redisson

This module implement named locks using Redisson. It provides two implementations, that are distributed and rely on Redisson distributed objects feature.

Out of the box “redisson” (distributed) named lock implementations are the following:

  • rwlock-redisson implemented in org.eclipse.aether.named.redisson.RedissonReadWriteLockNamedLockFactory that uses Redisson-backed org.redisson.api.RReadWriteLock.
  • semaphore-redisson implemented in org.eclipse.aether.named.redisson.RedissonSemaphoreNamedLockFactory that uses Redisson-backed org.redisson.api.RSemaphore.

Open Issues/Notes

  • Usage from plugins and extensions hasn't been fully tested yet.

Open Issues/Notes for Maven Resolver integrators

To use this implementation within your project, depending on how you integrate, you have following options:

  • If you use Sisu DI, then all you need is to provide this module (and its dependencies) on classpath and you are done.
  • If you use Guice, you need to add this module (and its dependencies) upfront, and bind them explicitly.
  • If you use ServiceLocator, this module will not work.

Installation/Testing

  • Create the directory ${maven.home}/lib/ext/redisson/ (if it does not exist).
  • Unzip the following bundle from Maven Central to ${maven.home}/lib/ext/redisson/:
  • Start your Redis instance on localhost or configure a remote instance with ${maven.conf}/maven-resolver-redisson.yaml.
  • Now start a multithreaded Maven build or multiple builds (e.g., CI server) on your project.