Class AbstractJdbcMessageIdRepository
java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.processor.idempotent.jdbc.AbstractJdbcMessageIdRepository
- All Implemented Interfaces:
AutoCloseable
,org.apache.camel.Service
,org.apache.camel.ShutdownableService
,org.apache.camel.spi.IdempotentRepository
,org.apache.camel.StatefulService
,org.apache.camel.SuspendableService
- Direct Known Subclasses:
JdbcMessageIdRepository
@ManagedResource(description="JDBC IdempotentRepository")
public abstract class AbstractJdbcMessageIdRepository
extends org.apache.camel.support.service.ServiceSupport
implements org.apache.camel.spi.IdempotentRepository
Base class for JDBC-based idempotent repositories that allows the schema to be changed.
Subclasses need only implement theses methods:
These methods should perform the named database operation.
Important: Implementations of this should use String as the generic type as that is what is required
by Camel to allow using the idempotent repository with the Idempotent Consumer EIP and also as file consumer
read-lock. It was a mistake to make
IdempotentRepository
parameterized, as it should have been a
pre-configured to use a String type.-
Field Summary
Modifier and TypeFieldDescriptionprotected DataSource
protected org.springframework.jdbc.core.JdbcTemplate
protected org.slf4j.Logger
protected String
protected org.springframework.transaction.support.TransactionTemplate
Fields inherited from class org.apache.camel.support.service.BaseService
BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
-
Constructor Summary
ConstructorDescriptionAbstractJdbcMessageIdRepository
(DataSource dataSource, String processorName) AbstractJdbcMessageIdRepository
(DataSource dataSource, org.springframework.transaction.support.TransactionTemplate transactionTemplate, String processorName) AbstractJdbcMessageIdRepository
(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, org.springframework.transaction.support.TransactionTemplate transactionTemplate) -
Method Summary
Modifier and TypeMethodDescriptionboolean
void
clear()
boolean
boolean
protected static org.springframework.transaction.support.TransactionTemplate
createTransactionTemplate
(DataSource dataSource) Creates the transaction templateprotected abstract int
delete()
Operations that deletes all the rowsprotected abstract int
Operations that deletes the key if it existsprotected void
doStart()
protected void
doStop()
org.springframework.jdbc.core.JdbcTemplate
org.springframework.transaction.support.TransactionTemplate
protected abstract int
Operation that inserts the key if it does not already existprotected abstract int
queryForInt
(String key) Operation that returns the number of rows, if any, for the specified keyboolean
void
setDataSource
(DataSource dataSource) void
setJdbcTemplate
(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate) void
setProcessorName
(String processorName) void
setTransactionTemplate
(org.springframework.transaction.support.TransactionTemplate transactionTemplate) Methods inherited from class org.apache.camel.support.service.BaseService
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, suspend
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.camel.spi.IdempotentRepository
add, confirm, contains, remove
Methods inherited from interface org.apache.camel.Service
build, close, init, start, stop
Methods inherited from interface org.apache.camel.ShutdownableService
shutdown
Methods inherited from interface org.apache.camel.StatefulService
getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending
Methods inherited from interface org.apache.camel.SuspendableService
isSuspended, resume, suspend
-
Field Details
-
jdbcTemplate
protected org.springframework.jdbc.core.JdbcTemplate jdbcTemplate -
processorName
-
transactionTemplate
protected org.springframework.transaction.support.TransactionTemplate transactionTemplate -
dataSource
-
log
protected org.slf4j.Logger log
-
-
Constructor Details
-
AbstractJdbcMessageIdRepository
public AbstractJdbcMessageIdRepository() -
AbstractJdbcMessageIdRepository
public AbstractJdbcMessageIdRepository(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, org.springframework.transaction.support.TransactionTemplate transactionTemplate) -
AbstractJdbcMessageIdRepository
public AbstractJdbcMessageIdRepository(DataSource dataSource, org.springframework.transaction.support.TransactionTemplate transactionTemplate, String processorName) -
AbstractJdbcMessageIdRepository
-
-
Method Details
-
queryForInt
Operation that returns the number of rows, if any, for the specified key- Parameters:
key
- the key- Returns:
- int number of rows
-
insert
Operation that inserts the key if it does not already exist- Parameters:
key
- the key- Returns:
- int number of rows inserted
-
delete
Operations that deletes the key if it exists- Parameters:
key
- the key- Returns:
- int number of rows deleted
-
delete
protected abstract int delete()Operations that deletes all the rows- Returns:
- int number of rows deleted
-
createTransactionTemplate
protected static org.springframework.transaction.support.TransactionTemplate createTransactionTemplate(DataSource dataSource) Creates the transaction template -
doStart
- Overrides:
doStart
in classorg.apache.camel.support.service.BaseService
- Throws:
Exception
-
doStop
- Overrides:
doStop
in classorg.apache.camel.support.service.BaseService
- Throws:
Exception
-
add
- Specified by:
add
in interfaceorg.apache.camel.spi.IdempotentRepository
-
contains
@ManagedOperation(description="Does the store contain the given key") public boolean contains(String key) - Specified by:
contains
in interfaceorg.apache.camel.spi.IdempotentRepository
-
remove
- Specified by:
remove
in interfaceorg.apache.camel.spi.IdempotentRepository
-
clear
@ManagedOperation(description="Clear the store") public void clear()- Specified by:
clear
in interfaceorg.apache.camel.spi.IdempotentRepository
-
confirm
- Specified by:
confirm
in interfaceorg.apache.camel.spi.IdempotentRepository
-
getJdbcTemplate
public org.springframework.jdbc.core.JdbcTemplate getJdbcTemplate() -
setJdbcTemplate
public void setJdbcTemplate(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate) -
getProcessorName
-
setProcessorName
-
getTransactionTemplate
public org.springframework.transaction.support.TransactionTemplate getTransactionTemplate() -
setTransactionTemplate
public void setTransactionTemplate(org.springframework.transaction.support.TransactionTemplate transactionTemplate) -
getDataSource
-
setDataSource
-