Package org.eclipse.aether.named.support
Class NamedLockFactorySupport
- java.lang.Object
-
- org.eclipse.aether.named.support.NamedLockFactorySupport
-
- All Implemented Interfaces:
NamedLockFactory
- Direct Known Subclasses:
FileLockNamedLockFactory
,LocalReadWriteLockNamedLockFactory
,LocalSemaphoreNamedLockFactory
,NoopNamedLockFactory
public abstract class NamedLockFactorySupport extends java.lang.Object implements NamedLockFactory
Support class forNamedLockFactory
implementations providing reference counting.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
NamedLockFactorySupport.NamedLockHolder
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ConcurrentMap<java.lang.String,NamedLockFactorySupport.NamedLockHolder>
locks
protected org.slf4j.Logger
logger
-
Constructor Summary
Constructors Constructor Description NamedLockFactorySupport()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
closeLock(java.lang.String name)
protected abstract NamedLockSupport
createLock(java.lang.String name)
Implementations shall create and returnNamedLockSupport
for givenname
, this method must never returnnull
.protected void
destroyLock(java.lang.String name)
Implementation may override this (empty) method to perform some sort of implementation specific cleanup for given lock name.protected void
finalize()
NamedLockSupport
getLock(java.lang.String name)
Creates or reuses existingNamedLock
.void
shutdown()
Performs a clean shut down of the factory.
-
-
-
Field Detail
-
logger
protected final org.slf4j.Logger logger
-
locks
private final java.util.concurrent.ConcurrentMap<java.lang.String,NamedLockFactorySupport.NamedLockHolder> locks
-
-
Method Detail
-
getLock
public NamedLockSupport getLock(java.lang.String name)
Description copied from interface:NamedLockFactory
Creates or reuses existingNamedLock
. Returns instance MUST BE treated as "resource", best in try-with-resource block.- Specified by:
getLock
in interfaceNamedLockFactory
- Parameters:
name
- the lock name, must not benull
.- Returns:
- named lock instance, never
null
.
-
shutdown
public void shutdown()
Description copied from interface:NamedLockFactory
Performs a clean shut down of the factory.- Specified by:
shutdown
in interfaceNamedLockFactory
-
closeLock
public void closeLock(java.lang.String name)
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
createLock
protected abstract NamedLockSupport createLock(java.lang.String name)
Implementations shall create and returnNamedLockSupport
for givenname
, this method must never returnnull
.
-
destroyLock
protected void destroyLock(java.lang.String name)
Implementation may override this (empty) method to perform some sort of implementation specific cleanup for given lock name. Invoked when reference count for given name drops to zero and named lock was removed.
-
-