Class RotatingServerAdvice
java.lang.Object
org.springframework.integration.file.remote.aop.RotatingServerAdvice
- All Implemented Interfaces:
Advice, Interceptor, MethodInterceptor, MessageSourceMutator, ReceiveMessageAdvice
A smart poller advice that rotates across multiple remote servers/directories.
- Since:
- 5.0.7
- Author:
- Gary Russell, Michael Forstner, Artem Bilan, David Turanski
-
Constructor Summary
ConstructorsConstructorDescriptionRotatingServerAdvice(RotationPolicy rotationPolicy) Construct an instance that rotates according to the suppliedRotationPolicy.RotatingServerAdvice(DelegatingSessionFactory<?> factory, List<RotationPolicy.KeyDirectory> keyDirectories) Create an instance that rotates to the next server/directory if no message is received.RotatingServerAdvice(DelegatingSessionFactory<?> factory, List<RotationPolicy.KeyDirectory> keyDirectories, boolean fair) Create an instance that rotates to the next server/directory depending on the fair argument. -
Method Summary
Modifier and TypeMethodDescription@Nullable Message<?> afterReceive(@Nullable Message<?> result, MessageSource<?> source) Subclasses can take actions based on the result of the poll; e.g.booleanbeforeReceive(MessageSource<?> source) Subclasses can decide whether to proceed with this poll.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface MessageSourceMutator
afterReceive, beforeReceiveMethods inherited from interface ReceiveMessageAdvice
invoke
-
Constructor Details
-
RotatingServerAdvice
public RotatingServerAdvice(DelegatingSessionFactory<?> factory, List<RotationPolicy.KeyDirectory> keyDirectories) Create an instance that rotates to the next server/directory if no message is received.- Parameters:
factory- theDelegatingSessionFactory.keyDirectories- a list ofRotationPolicy.KeyDirectory.
-
RotatingServerAdvice
public RotatingServerAdvice(DelegatingSessionFactory<?> factory, List<RotationPolicy.KeyDirectory> keyDirectories, boolean fair) Create an instance that rotates to the next server/directory depending on the fair argument.- Parameters:
factory- theDelegatingSessionFactory.keyDirectories- a list ofRotationPolicy.KeyDirectory.fair- true to rotate on every poll, false to rotate when no message is received.
-
RotatingServerAdvice
Construct an instance that rotates according to the suppliedRotationPolicy.- Parameters:
rotationPolicy- the policy.
-
-
Method Details
-
beforeReceive
Description copied from interface:MessageSourceMutatorSubclasses can decide whether to proceed with this poll.- Specified by:
beforeReceivein interfaceMessageSourceMutator- Parameters:
source- the message source.- Returns:
- true to proceed (default).
-
afterReceive
Description copied from interface:MessageSourceMutatorSubclasses can take actions based on the result of the poll; e.g. adjust thetrigger. The message can also be replaced with a new one.- Specified by:
afterReceivein interfaceMessageSourceMutator- Parameters:
result- the received message.source- the message source.- Returns:
- a message to continue to process the result, null to discard whatever the poll returned.
-