org.springframework.integration.channel
Class PriorityChannel
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.channel.AbstractMessageChannel
org.springframework.integration.channel.AbstractPollableChannel
org.springframework.integration.channel.QueueChannel
org.springframework.integration.channel.PriorityChannel
- All Implemented Interfaces:
- BeanFactoryAware, BeanNameAware, InitializingBean, NamedComponent, PollableChannel, TrackableComponent, MessageChannel
public class PriorityChannel
- extends QueueChannel
A message channel that prioritizes messages based on a Comparator.
The default comparator is based upon the message header's 'priority'.
|
Constructor Summary |
PriorityChannel()
Create a channel with an unbounded queue. |
PriorityChannel(java.util.Comparator<Message<?>> comparator)
Create a channel with an unbounded queue. |
PriorityChannel(int capacity)
Create a channel with the specified queue capacity. |
PriorityChannel(int capacity,
java.util.Comparator<Message<?>> comparator)
Create a channel with the specified queue capacity. |
|
Method Summary |
protected Message<?> |
doReceive(long timeout)
Subclasses must implement this method. |
protected boolean |
doSend(Message<?> message,
long timeout)
Subclasses must implement this method. |
| Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport |
afterPropertiesSet, getBeanFactory, getComponentName, getConversionService, getTaskScheduler, onInit, setBeanFactory, setBeanName, setComponentName, setTaskScheduler, toString |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
PriorityChannel
public PriorityChannel(int capacity,
java.util.Comparator<Message<?>> comparator)
- Create a channel with the specified queue capacity. If the capacity
is a non-positive value, the queue will be unbounded. Message priority
will be determined by the provided
Comparator. If the comparator
is null, the priority will be based upon the value of
MessageHeaders.getPriority().
PriorityChannel
public PriorityChannel(int capacity)
- Create a channel with the specified queue capacity. Message priority
will be based upon the value of
MessageHeaders.getPriority().
PriorityChannel
public PriorityChannel(java.util.Comparator<Message<?>> comparator)
- Create a channel with an unbounded queue. Message priority will be
determined by the provided
Comparator. If the comparator
is null, the priority will be based upon the value of
MessageHeaders.getPriority().
PriorityChannel
public PriorityChannel()
- Create a channel with an unbounded queue. Message priority will be
based on the value of
MessageHeaders.getPriority().
doSend
protected boolean doSend(Message<?> message,
long timeout)
- Description copied from class:
AbstractMessageChannel
- Subclasses must implement this method. A non-negative timeout indicates
how long to wait if the channel is at capacity (if the value is 0, it
must return immediately with or without success). A negative timeout
value indicates that the method should block until either the message is
accepted or the blocking thread is interrupted.
- Overrides:
doSend in class QueueChannel
doReceive
protected Message<?> doReceive(long timeout)
- Description copied from class:
AbstractPollableChannel
- Subclasses must implement this method. A non-negative timeout indicates
how long to wait if the channel is empty (if the value is 0, it must
return immediately with or without success). A negative timeout value
indicates that the method should block until either a message is
available or the blocking thread is interrupted.
- Overrides:
doReceive in class QueueChannel