1 /***
2 *
3 * Copyright 2004 Protique Ltd
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 **/
18 package org.codehaus.activemq.service;
19
20 import org.codehaus.activemq.message.ActiveMQDestination;
21 import org.codehaus.activemq.message.ActiveMQMessage;
22 import org.codehaus.activemq.message.ActiveMQQueue;
23 import org.codehaus.activemq.message.MessageAck;
24
25 import javax.jms.JMSException;
26 import java.util.ArrayList;
27 import java.util.List;
28
29 /***
30 * @version $Revision: 1.3 $
31 */
32 public abstract class QueueMessageStoreTestSupport extends MessageStoreTestSupport {
33
34 protected void acknowledgeMessage(int i) throws JMSException {
35 getQueueMessageContainer().delete(getMessage(i).getJMSMessageIdentity(), createMessageAck(getMessage(i).getJMSMessageIdentity()));
36 }
37
38 protected QueueMessageContainer getQueueMessageContainer() {
39 return (QueueMessageContainer) container;
40 }
41
42 protected ActiveMQDestination createDestination() {
43 return new ActiveMQQueue(getSubject());
44 }
45
46 protected void recover() throws JMSException {
47 }
48
49 protected MessageAck createMessageAck(MessageIdentity messageIdentity) {
50 MessageAck answer = new MessageAck();
51 answer.setConsumerId("James");
52 answer.setMessageID(messageIdentity.getMessageID());
53 answer.setMessageRead(true);
54 return answer;
55 }
56
57 protected ActiveMQMessage[] getMessagesToDispatch() throws JMSException {
58 List list = new ArrayList();
59 while (true) {
60 ActiveMQMessage message = getQueueMessageContainer().poll();
61 if (message == null) {
62 break;
63 }
64 list.add(message);
65 }
66 ActiveMQMessage[] answer = new ActiveMQMessage[list.size()];
67 list.toArray(answer);
68 return answer;
69 }
70 }