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.usecases;
19
20 import junit.framework.TestCase;
21 import org.codehaus.activemq.ActiveMQConnectionFactory;
22 import org.codehaus.activemq.broker.impl.BrokerConnectorImpl;
23 import org.codehaus.activemq.broker.impl.BrokerContainerImpl;
24 import org.codehaus.activemq.message.DefaultWireFormat;
25
26 import javax.jms.Connection;
27 import javax.jms.Destination;
28 import javax.jms.ExceptionListener;
29 import javax.jms.JMSException;
30 import javax.jms.MessageProducer;
31 import javax.jms.Session;
32
33 /***
34 * @author Oliver Belikan
35 * @version $Revision: 1.2 $
36 */
37 public class ExceptionListenerTest extends TestCase implements ExceptionListener {
38 boolean isException = false;
39
40
41 public ExceptionListenerTest(String arg) {
42 super(arg);
43 }
44
45
46 public void testOnException() throws Exception {
47 /* TODO not sure yet if this is a valid test
48
49 System.setProperty("activemq.persistenceAdapter",
50 "org.codehaus.activemq.store.vm.VMPersistenceAdapter");
51 // configuration of container and all protocolls
52 BrokerContainerImpl container = new
53 BrokerContainerImpl("DefaultBroker");
54 BrokerConnectorImpl connector = new
55 BrokerConnectorImpl(container,
56 "vm://localhost", new DefaultWireFormat());
57 container.start();
58
59 ActiveMQConnectionFactory factory = new
60 ActiveMQConnectionFactory("vm://localhost");
61 factory.start();
62
63 Connection connection = factory.createConnection();
64 connection.setExceptionListener(this);
65 connection.start();
66 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
67 Destination destination = session.createTopic(getClass().getName());
68 MessageProducer producer = session.createProducer(destination);
69
70 try {
71 Thread.currentThread().sleep(1000);
72 }
73 catch (Exception e) {
74 }
75
76 container.stop();
77
78 // now lets try send
79 try {
80 producer.send(session.createTextMessage("This will never get anywhere"));
81 }
82 catch (JMSException e) {
83 System.out.println("Caught: " + e);
84 }
85
86 try {
87 Thread.currentThread().sleep(1000);
88 }
89 catch (Exception e) {
90 }
91
92 assertTrue("Should have received an exception", isException);
93 */
94 }
95
96
97 public void onException(JMSException e) {
98 isException = true;
99 }
100 }