org.springframework.integration.store
Class MessageGroupQueue
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<Message<?>>
org.springframework.integration.store.MessageGroupQueue
- All Implemented Interfaces:
- java.lang.Iterable<Message<?>>, java.util.Collection<Message<?>>, java.util.concurrent.BlockingQueue<Message<?>>, java.util.Queue<Message<?>>
public class MessageGroupQueue
- extends java.util.AbstractQueue<Message<?>>
- implements java.util.concurrent.BlockingQueue<Message<?>>
A BlockingQueue
that is backed by a MessageGroupStore
. Can be used to ensure guaranteed delivery in
the face of transaction rollback (assuming the store is transactional) and also to ensure messages are not lost if
the process dies (assuming the store is durable). To use the queue across process re-starts, the same group id
must be provided, so it needs to be unique but identifiable with a single logical instance of the queue.
- Since:
- 2.0
- Author:
- Dave Syer, Oleg Zhurakousky, Gunnar Hillert
Methods inherited from class java.util.AbstractQueue |
add, addAll, clear, element, remove |
Methods inherited from class java.util.AbstractCollection |
contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.concurrent.BlockingQueue |
add, contains, remove |
Methods inherited from interface java.util.Queue |
element, remove |
Methods inherited from interface java.util.Collection |
addAll, clear, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, toArray, toArray |
MessageGroupQueue
public MessageGroupQueue(MessageGroupStore messageGroupStore,
java.lang.Object groupId)
MessageGroupQueue
public MessageGroupQueue(MessageGroupStore messageGroupStore,
java.lang.Object groupId,
int capacity)
MessageGroupQueue
public MessageGroupQueue(MessageGroupStore messageGroupStore,
java.lang.Object groupId,
java.util.concurrent.locks.Lock storeLock)
MessageGroupQueue
public MessageGroupQueue(MessageGroupStore messageGroupStore,
java.lang.Object groupId,
int capacity,
java.util.concurrent.locks.Lock storeLock)
iterator
public java.util.Iterator<Message<?>> iterator()
- Specified by:
iterator
in interface java.lang.Iterable<Message<?>>
- Specified by:
iterator
in interface java.util.Collection<Message<?>>
- Specified by:
iterator
in class java.util.AbstractCollection<Message<?>>
size
public int size()
- Specified by:
size
in interface java.util.Collection<Message<?>>
- Specified by:
size
in class java.util.AbstractCollection<Message<?>>
peek
public Message<?> peek()
- Specified by:
peek
in interface java.util.Queue<Message<?>>
poll
public Message<?> poll(long timeout,
java.util.concurrent.TimeUnit unit)
throws java.lang.InterruptedException
- Specified by:
poll
in interface java.util.concurrent.BlockingQueue<Message<?>>
- Throws:
java.lang.InterruptedException
poll
public Message<?> poll()
- Specified by:
poll
in interface java.util.Queue<Message<?>>
drainTo
public int drainTo(java.util.Collection<? super Message<?>> c)
- Specified by:
drainTo
in interface java.util.concurrent.BlockingQueue<Message<?>>
drainTo
public int drainTo(java.util.Collection<? super Message<?>> collection,
int maxElements)
- Specified by:
drainTo
in interface java.util.concurrent.BlockingQueue<Message<?>>
offer
public boolean offer(Message<?> message)
- Specified by:
offer
in interface java.util.concurrent.BlockingQueue<Message<?>>
- Specified by:
offer
in interface java.util.Queue<Message<?>>
offer
public boolean offer(Message<?> message,
long timeout,
java.util.concurrent.TimeUnit unit)
throws java.lang.InterruptedException
- Specified by:
offer
in interface java.util.concurrent.BlockingQueue<Message<?>>
- Throws:
java.lang.InterruptedException
put
public void put(Message<?> message)
throws java.lang.InterruptedException
- Specified by:
put
in interface java.util.concurrent.BlockingQueue<Message<?>>
- Throws:
java.lang.InterruptedException
remainingCapacity
public int remainingCapacity()
- Specified by:
remainingCapacity
in interface java.util.concurrent.BlockingQueue<Message<?>>
take
public Message<?> take()
throws java.lang.InterruptedException
- Specified by:
take
in interface java.util.concurrent.BlockingQueue<Message<?>>
- Throws:
java.lang.InterruptedException