Class ReplicatedHazelcastAggregationRepository
- java.lang.Object
-
- org.apache.camel.support.service.BaseService
-
- org.apache.camel.support.service.ServiceSupport
-
- org.apache.camel.processor.aggregate.hazelcast.HazelcastAggregationRepository
-
- org.apache.camel.processor.aggregate.hazelcast.ReplicatedHazelcastAggregationRepository
-
- All Implemented Interfaces:
AutoCloseable,org.apache.camel.Service,org.apache.camel.ShutdownableService,org.apache.camel.spi.AggregationRepository,org.apache.camel.spi.OptimisticLockingAggregationRepository,org.apache.camel.spi.RecoverableAggregationRepository,org.apache.camel.StatefulService,org.apache.camel.SuspendableService
public class ReplicatedHazelcastAggregationRepository extends HazelcastAggregationRepository
A Hazelcast-based AggregationRepository implementingRecoverableAggregationRepositoryandOptimisticLockingAggregationRepository. Defaults to thread-safe (non-optimistic) locking and recoverable strategy. Hazelcast settings are given to an end-user and can be controlled with repositoryName and persistentRespositoryName, both areIMap<String, Exchange>. However ReplicatedHazelcastAggregationRepository can run it's own Hazelcast instance, but obviously no benefits of Hazelcast clustering are gained this way. If theReplicatedHazelcastAggregationRepositoryuses it's own localHazelcastInstanceit will DESTROY this instance onHazelcastAggregationRepository.doStop(). You should controlHazelcastInstancelifecycle yourself whenever you instantiateReplicatedHazelcastAggregationRepositorypassing a reference to the instance.
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,org.apache.camel.support.DefaultExchangeHolder>replicatedCacheprotected Map<String,org.apache.camel.support.DefaultExchangeHolder>replicatedPersistedCache-
Fields inherited from class org.apache.camel.processor.aggregate.hazelcast.HazelcastAggregationRepository
allowSerializedHeaders, cache, COMPLETED_SUFFIX, deadLetterChannel, hzInstance, mapName, maximumRedeliveries, optimistic, persistedCache, persistenceMapName, recoveryInterval, useLocalHzInstance, useRecovery
-
-
Constructor Summary
Constructors Constructor Description ReplicatedHazelcastAggregationRepository(String repositoryName)Creates newReplicatedHazelcastAggregationRepositorythat defaults to non-optimistic locking with recoverable behavior and a local Hazelcast instance.ReplicatedHazelcastAggregationRepository(String repositoryName, boolean optimistic)Creates newReplicatedHazelcastAggregationRepositorywith recoverable behavior and a local Hazelcast instance.ReplicatedHazelcastAggregationRepository(String repositoryName, boolean optimistic, com.hazelcast.core.HazelcastInstance hzInstance)Creates newReplicatedHazelcastAggregationRepositorywith recoverable behavior.ReplicatedHazelcastAggregationRepository(String repositoryName, com.hazelcast.core.HazelcastInstance hzInstanse)Creates newReplicatedHazelcastAggregationRepositorythat defaults to non-optimistic locking with recoverable behavior.ReplicatedHazelcastAggregationRepository(String repositoryName, String persistentRepositoryName)Creates newReplicatedHazelcastAggregationRepositorythat defaults to non-optimistic locking with recoverable behavior and a local Hazelcast instance.ReplicatedHazelcastAggregationRepository(String repositoryName, String persistentRepositoryName, boolean optimistic)Creates newReplicatedHazelcastAggregationRepositorywith recoverable behavior and a local Hazelcast instance.ReplicatedHazelcastAggregationRepository(String repositoryName, String persistentRepositoryName, boolean optimistic, com.hazelcast.core.HazelcastInstance hzInstance)Creates newReplicatedHazelcastAggregationRepositorywith recoverable behavior.ReplicatedHazelcastAggregationRepository(String repositoryName, String persistentRepositoryName, com.hazelcast.core.HazelcastInstance hzInstanse)Creates newReplicatedHazelcastAggregationRepositorythat defaults to non-optimistic locking with recoverable behavior.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.camel.Exchangeadd(org.apache.camel.CamelContext camelContext, String key, org.apache.camel.Exchange exchange)org.apache.camel.Exchangeadd(org.apache.camel.CamelContext camelContext, String key, org.apache.camel.Exchange oldExchange, org.apache.camel.Exchange newExchange)voidconfirm(org.apache.camel.CamelContext camelContext, String exchangeId)booleancontainsKey(Object key)Checks if the key in question is in the repository.protected voiddoStart()org.apache.camel.Exchangeget(org.apache.camel.CamelContext camelContext, String key)Set<String>getKeys()org.apache.camel.Exchangerecover(org.apache.camel.CamelContext camelContext, String exchangeId)voidremove(org.apache.camel.CamelContext camelContext, String key, org.apache.camel.Exchange exchange)This method performs transactional operation on removing theexchangefrom the operational storage and moving it into the persistent one if theHazelcastAggregationRepositoryruns in recoverable mode andoptimisticis false.Set<String>scan(org.apache.camel.CamelContext camelContext)-
Methods inherited from class org.apache.camel.processor.aggregate.hazelcast.HazelcastAggregationRepository
doStop, getDeadLetterUri, getMaximumRedeliveries, getPersistentRepositoryName, getRecoveryIntervalInMillis, isAllowSerializedHeaders, isUseRecovery, setAllowSerializedHeaders, setDeadLetterUri, setMaximumRedeliveries, setRecoveryInterval, setRecoveryInterval, setUseRecovery, unmarshallExchange
-
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.RecoverableAggregationRepository
confirmWithResult
-
-
-
-
Constructor Detail
-
ReplicatedHazelcastAggregationRepository
public ReplicatedHazelcastAggregationRepository(String repositoryName)
Creates newReplicatedHazelcastAggregationRepositorythat defaults to non-optimistic locking with recoverable behavior and a local Hazelcast instance. Recoverable repository name defaults torepositoryName+ "-compeleted".- Parameters:
repositoryName-IMaprepository name;
-
ReplicatedHazelcastAggregationRepository
public ReplicatedHazelcastAggregationRepository(String repositoryName, String persistentRepositoryName)
Creates newReplicatedHazelcastAggregationRepositorythat defaults to non-optimistic locking with recoverable behavior and a local Hazelcast instance.- Parameters:
repositoryName-IMaprepository name;persistentRepositoryName-IMaprecoverable repository name;
-
ReplicatedHazelcastAggregationRepository
public ReplicatedHazelcastAggregationRepository(String repositoryName, boolean optimistic)
Creates newReplicatedHazelcastAggregationRepositorywith recoverable behavior and a local Hazelcast instance. Recoverable repository name defaults torepositoryName+ "-compeleted".- Parameters:
repositoryName-IMaprepository name;optimistic- whether to use optimistic locking manner.
-
ReplicatedHazelcastAggregationRepository
public ReplicatedHazelcastAggregationRepository(String repositoryName, String persistentRepositoryName, boolean optimistic)
Creates newReplicatedHazelcastAggregationRepositorywith recoverable behavior and a local Hazelcast instance.- Parameters:
repositoryName-IMaprepository name;persistentRepositoryName-IMaprecoverable repository name;optimistic- whether to use optimistic locking manner.
-
ReplicatedHazelcastAggregationRepository
public ReplicatedHazelcastAggregationRepository(String repositoryName, com.hazelcast.core.HazelcastInstance hzInstanse)
Creates newReplicatedHazelcastAggregationRepositorythat defaults to non-optimistic locking with recoverable behavior. Recoverable repository name defaults torepositoryName+ "-compeleted".- Parameters:
repositoryName-IMaprepository name;hzInstanse- externally configuredHazelcastInstance.
-
ReplicatedHazelcastAggregationRepository
public ReplicatedHazelcastAggregationRepository(String repositoryName, String persistentRepositoryName, com.hazelcast.core.HazelcastInstance hzInstanse)
Creates newReplicatedHazelcastAggregationRepositorythat defaults to non-optimistic locking with recoverable behavior.- Parameters:
repositoryName-IMaprepository name;persistentRepositoryName-IMaprecoverable repository name;hzInstanse- externally configuredHazelcastInstance.
-
ReplicatedHazelcastAggregationRepository
public ReplicatedHazelcastAggregationRepository(String repositoryName, boolean optimistic, com.hazelcast.core.HazelcastInstance hzInstance)
Creates newReplicatedHazelcastAggregationRepositorywith recoverable behavior. Recoverable repository name defaults torepositoryName+ "-compeleted".- Parameters:
repositoryName-IMaprepository name;optimistic- whether to use optimistic locking manner;hzInstance- externally configuredHazelcastInstance.
-
ReplicatedHazelcastAggregationRepository
public ReplicatedHazelcastAggregationRepository(String repositoryName, String persistentRepositoryName, boolean optimistic, com.hazelcast.core.HazelcastInstance hzInstance)
Creates newReplicatedHazelcastAggregationRepositorywith recoverable behavior.- Parameters:
repositoryName-IMaprepository name;optimistic- whether to use optimistic locking manner;persistentRepositoryName-IMaprecoverable repository name;hzInstance- externally configuredHazelcastInstance.
-
-
Method Detail
-
add
public org.apache.camel.Exchange add(org.apache.camel.CamelContext camelContext, String key, org.apache.camel.Exchange oldExchange, org.apache.camel.Exchange newExchange) throws org.apache.camel.spi.OptimisticLockingAggregationRepository.OptimisticLockingException- Specified by:
addin interfaceorg.apache.camel.spi.OptimisticLockingAggregationRepository- Overrides:
addin classHazelcastAggregationRepository- Throws:
org.apache.camel.spi.OptimisticLockingAggregationRepository.OptimisticLockingException
-
add
public org.apache.camel.Exchange add(org.apache.camel.CamelContext camelContext, String key, org.apache.camel.Exchange exchange)- Specified by:
addin interfaceorg.apache.camel.spi.AggregationRepository- Overrides:
addin classHazelcastAggregationRepository
-
scan
public Set<String> scan(org.apache.camel.CamelContext camelContext)
- Specified by:
scanin interfaceorg.apache.camel.spi.RecoverableAggregationRepository- Overrides:
scanin classHazelcastAggregationRepository
-
recover
public org.apache.camel.Exchange recover(org.apache.camel.CamelContext camelContext, String exchangeId)- Specified by:
recoverin interfaceorg.apache.camel.spi.RecoverableAggregationRepository- Overrides:
recoverin classHazelcastAggregationRepository
-
get
public org.apache.camel.Exchange get(org.apache.camel.CamelContext camelContext, String key)- Specified by:
getin interfaceorg.apache.camel.spi.AggregationRepository- Overrides:
getin classHazelcastAggregationRepository
-
containsKey
public boolean containsKey(Object key)
Checks if the key in question is in the repository.- Overrides:
containsKeyin classHazelcastAggregationRepository- Parameters:
key- Object - key in question
-
remove
public void remove(org.apache.camel.CamelContext camelContext, String key, org.apache.camel.Exchange exchange)This method performs transactional operation on removing theexchangefrom the operational storage and moving it into the persistent one if theHazelcastAggregationRepositoryruns in recoverable mode andoptimisticis false. It will act at your own risk otherwise.- Specified by:
removein interfaceorg.apache.camel.spi.AggregationRepository- Specified by:
removein interfaceorg.apache.camel.spi.OptimisticLockingAggregationRepository- Overrides:
removein classHazelcastAggregationRepository- Parameters:
camelContext- the current CamelContextkey- the correlation keyexchange- the exchange to remove
-
confirm
public void confirm(org.apache.camel.CamelContext camelContext, String exchangeId)- Specified by:
confirmin interfaceorg.apache.camel.spi.AggregationRepository- Overrides:
confirmin classHazelcastAggregationRepository
-
getKeys
public Set<String> getKeys()
- Specified by:
getKeysin interfaceorg.apache.camel.spi.AggregationRepository- Overrides:
getKeysin classHazelcastAggregationRepository
-
doStart
protected void doStart() throws Exception- Overrides:
doStartin classHazelcastAggregationRepository- Throws:
Exception
-
-