public class FileIdempotentRenameRepositoryReadLockStrategy extends org.apache.camel.support.service.ServiceSupport implements GenericFileExclusiveReadLockStrategy<File>, org.apache.camel.CamelContextAware
IdempotentRepository and
rename as the lock strategy. This
allows to plugin and use existing idempotent repositories that for example
supports clustering. The other read lock strategies that are using marker
files or file locks, are not guaranteed to work in clustered setup with
various platform and file systems.| Constructor and Description |
|---|
FileIdempotentRenameRepositoryReadLockStrategy() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
acquireExclusiveReadLock(GenericFileOperations<File> operations,
GenericFile<File> file,
org.apache.camel.Exchange exchange)
Acquires exclusive read lock to the file.
|
protected String |
asKey(GenericFile<File> file) |
protected void |
doStart() |
protected void |
doStop() |
org.apache.camel.CamelContext |
getCamelContext() |
org.apache.camel.spi.IdempotentRepository |
getIdempotentRepository()
The idempotent repository to use as the store for the read locks.
|
boolean |
isRemoveOnCommit()
Whether to remove the file from the idempotent repository when doing a
commit.
|
boolean |
isRemoveOnRollback()
Whether to remove the file from the idempotent repository when doing a
rollback.
|
void |
prepareOnStartup(GenericFileOperations<File> operations,
GenericFileEndpoint<File> endpoint)
Allows custom logic to be run on startup preparing the strategy, such as
removing old lock files etc.
|
void |
releaseExclusiveReadLockOnAbort(GenericFileOperations<File> operations,
GenericFile<File> file,
org.apache.camel.Exchange exchange)
Releases the exclusive read lock granted by the
acquireExclusiveReadLock method due an abort operation
(acquireExclusiveReadLock returned false).
|
void |
releaseExclusiveReadLockOnCommit(GenericFileOperations<File> operations,
GenericFile<File> file,
org.apache.camel.Exchange exchange)
Releases the exclusive read lock granted by the
acquireExclusiveReadLock method due a commit operation (Exchange
processing succeeded)
|
void |
releaseExclusiveReadLockOnRollback(GenericFileOperations<File> operations,
GenericFile<File> file,
org.apache.camel.Exchange exchange)
Releases the exclusive read lock granted by the
acquireExclusiveReadLock method due a rollback operation
(Exchange processing failed)
|
void |
setCamelContext(org.apache.camel.CamelContext camelContext) |
void |
setCheckInterval(long checkInterval)
Sets the check interval period.
|
void |
setDeleteOrphanLockFiles(boolean deleteOrphanLockFiles)
Sets whether orphan marker files should be deleted upon startup
|
void |
setIdempotentRepository(org.apache.camel.spi.IdempotentRepository idempotentRepository)
The idempotent repository to use as the store for the read locks.
|
void |
setMarkerFiler(boolean markerFile)
Sets whether marker file should be used or not.
|
void |
setReadLockLoggingLevel(org.apache.camel.LoggingLevel readLockLoggingLevel)
Sets logging level used when a read lock could not be acquired.
|
void |
setRemoveOnCommit(boolean removeOnCommit)
Whether to remove the file from the idempotent repository when doing a
commit.
|
void |
setRemoveOnRollback(boolean removeOnRollback)
Whether to remove the file from the idempotent repository when doing a
rollback.
|
void |
setTimeout(long timeout)
Sets an optional timeout period.
|
build, doBuild, doFail, doInit, doLifecycleChange, doResume, doShutdown, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspendclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpublic FileIdempotentRenameRepositoryReadLockStrategy()
public void prepareOnStartup(GenericFileOperations<File> operations, GenericFileEndpoint<File> endpoint) throws Exception
GenericFileExclusiveReadLockStrategyprepareOnStartup in interface GenericFileExclusiveReadLockStrategy<File>operations - generic file operationsendpoint - the endpointException - can be thrown in case of errorspublic boolean acquireExclusiveReadLock(GenericFileOperations<File> operations, GenericFile<File> file, org.apache.camel.Exchange exchange) throws Exception
GenericFileExclusiveReadLockStrategyacquireExclusiveReadLock in interface GenericFileExclusiveReadLockStrategy<File>operations - generic file operationsfile - the fileexchange - the exchangeException - can be thrown in case of errorspublic void releaseExclusiveReadLockOnAbort(GenericFileOperations<File> operations, GenericFile<File> file, org.apache.camel.Exchange exchange) throws Exception
GenericFileExclusiveReadLockStrategyreleaseExclusiveReadLockOnAbort in interface GenericFileExclusiveReadLockStrategy<File>operations - generic file operationsfile - the fileexchange - the exchangeException - can be thrown in case of errorspublic void releaseExclusiveReadLockOnRollback(GenericFileOperations<File> operations, GenericFile<File> file, org.apache.camel.Exchange exchange) throws Exception
GenericFileExclusiveReadLockStrategyreleaseExclusiveReadLockOnRollback in interface GenericFileExclusiveReadLockStrategy<File>operations - generic file operationsfile - the fileexchange - the exchangeException - can be thrown in case of errorspublic void releaseExclusiveReadLockOnCommit(GenericFileOperations<File> operations, GenericFile<File> file, org.apache.camel.Exchange exchange) throws Exception
GenericFileExclusiveReadLockStrategyreleaseExclusiveReadLockOnCommit in interface GenericFileExclusiveReadLockStrategy<File>operations - generic file operationsfile - the fileexchange - the exchangeException - can be thrown in case of errorspublic void setTimeout(long timeout)
GenericFileExclusiveReadLockStrategysetTimeout in interface GenericFileExclusiveReadLockStrategy<File>timeout - period in millispublic void setCheckInterval(long checkInterval)
GenericFileExclusiveReadLockStrategysetCheckInterval in interface GenericFileExclusiveReadLockStrategy<File>checkInterval - interval in millispublic void setReadLockLoggingLevel(org.apache.camel.LoggingLevel readLockLoggingLevel)
GenericFileExclusiveReadLockStrategysetReadLockLoggingLevel in interface GenericFileExclusiveReadLockStrategy<File>readLockLoggingLevel - LoggingLevelpublic void setMarkerFiler(boolean markerFile)
GenericFileExclusiveReadLockStrategysetMarkerFiler in interface GenericFileExclusiveReadLockStrategy<File>markerFile - true to use marker files.public void setDeleteOrphanLockFiles(boolean deleteOrphanLockFiles)
GenericFileExclusiveReadLockStrategysetDeleteOrphanLockFiles in interface GenericFileExclusiveReadLockStrategy<File>deleteOrphanLockFiles - true to delete files,
false to skip this checkpublic org.apache.camel.CamelContext getCamelContext()
getCamelContext in interface org.apache.camel.CamelContextAwarepublic void setCamelContext(org.apache.camel.CamelContext camelContext)
setCamelContext in interface org.apache.camel.CamelContextAwarepublic org.apache.camel.spi.IdempotentRepository getIdempotentRepository()
public void setIdempotentRepository(org.apache.camel.spi.IdempotentRepository idempotentRepository)
public boolean isRemoveOnRollback()
public void setRemoveOnRollback(boolean removeOnRollback)
public boolean isRemoveOnCommit()
public void setRemoveOnCommit(boolean removeOnCommit)
protected String asKey(GenericFile<File> file)
protected void doStart()
throws Exception
doStart in class org.apache.camel.support.service.BaseServiceExceptionApache Camel