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.IdempotentRepositoryBase 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 makeIdempotentRepositoryparameterized, as it should have been a pre-configured to use a String type.
-
-
Field Summary
Fields Modifier and Type Field Description protected DataSourcedataSourceprotected org.springframework.jdbc.core.JdbcTemplatejdbcTemplateprotected org.slf4j.Loggerlogprotected StringprocessorNameprotected org.springframework.transaction.support.TransactionTemplatetransactionTemplate
-
Constructor Summary
Constructors Constructor Description AbstractJdbcMessageIdRepository()AbstractJdbcMessageIdRepository(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
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleanadd(String key)voidclear()booleanconfirm(String key)booleancontains(String key)protected static org.springframework.transaction.support.TransactionTemplatecreateTransactionTemplate(DataSource dataSource)Creates the transaction templateprotected abstract intdelete()Operations that deletes all the rowsprotected abstract intdelete(String key)Operations that deletes the key if it existsprotected voiddoStart()protected voiddoStop()DataSourcegetDataSource()org.springframework.jdbc.core.JdbcTemplategetJdbcTemplate()StringgetProcessorName()org.springframework.transaction.support.TransactionTemplategetTransactionTemplate()protected abstract intinsert(String key)Operation that inserts the key if it does not already existprotected abstract intqueryForInt(String key)Operation that returns the number of rows, if any, for the specified keybooleanremove(String key)voidsetDataSource(DataSource dataSource)voidsetJdbcTemplate(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate)voidsetProcessorName(String processorName)voidsetTransactionTemplate(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
-
-
-
-
Field Detail
-
jdbcTemplate
protected org.springframework.jdbc.core.JdbcTemplate jdbcTemplate
-
processorName
protected String processorName
-
transactionTemplate
protected org.springframework.transaction.support.TransactionTemplate transactionTemplate
-
dataSource
protected DataSource dataSource
-
log
protected org.slf4j.Logger log
-
-
Constructor Detail
-
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
public AbstractJdbcMessageIdRepository(DataSource dataSource, String processorName)
-
-
Method Detail
-
queryForInt
protected abstract int queryForInt(String key)
Operation that returns the number of rows, if any, for the specified key- Parameters:
key- the key- Returns:
- int number of rows
-
insert
protected abstract int insert(String key)
Operation that inserts the key if it does not already exist- Parameters:
key- the key- Returns:
- int number of rows inserted
-
delete
protected abstract int delete(String key)
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
protected void doStart() throws Exception- Overrides:
doStartin classorg.apache.camel.support.service.BaseService- Throws:
Exception
-
doStop
protected void doStop() throws Exception- Overrides:
doStopin classorg.apache.camel.support.service.BaseService- Throws:
Exception
-
add
@ManagedOperation(description="Adds the key to the store") public boolean add(String key)
- Specified by:
addin interfaceorg.apache.camel.spi.IdempotentRepository
-
contains
@ManagedOperation(description="Does the store contain the given key") public boolean contains(String key)
- Specified by:
containsin interfaceorg.apache.camel.spi.IdempotentRepository
-
remove
@ManagedOperation(description="Remove the key from the store") public boolean remove(String key)
- Specified by:
removein interfaceorg.apache.camel.spi.IdempotentRepository
-
clear
@ManagedOperation(description="Clear the store") public void clear()
- Specified by:
clearin interfaceorg.apache.camel.spi.IdempotentRepository
-
confirm
public boolean confirm(String key)
- Specified by:
confirmin interfaceorg.apache.camel.spi.IdempotentRepository
-
getJdbcTemplate
public org.springframework.jdbc.core.JdbcTemplate getJdbcTemplate()
-
setJdbcTemplate
public void setJdbcTemplate(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate)
-
getProcessorName
public String getProcessorName()
-
setProcessorName
public void setProcessorName(String processorName)
-
getTransactionTemplate
public org.springframework.transaction.support.TransactionTemplate getTransactionTemplate()
-
setTransactionTemplate
public void setTransactionTemplate(org.springframework.transaction.support.TransactionTemplate transactionTemplate)
-
getDataSource
public DataSource getDataSource()
-
setDataSource
public void setDataSource(DataSource dataSource)
-
-