1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.submit.transports.jms;
14
15 import javax.jms.JMSException;
16 import javax.jms.Message;
17 import javax.jms.MessageConsumer;
18 import javax.jms.Queue;
19 import javax.jms.Session;
20
21 import com.eviware.soapui.SoapUI;
22 import com.eviware.soapui.model.iface.Request;
23 import com.eviware.soapui.model.iface.Response;
24 import com.eviware.soapui.model.iface.SubmitContext;
25
26 public class HermesJmsRequestSendReceiveTransport extends HermesJmsRequestTransport
27 {
28
29 public Response execute( SubmitContext submitContext, Request request, long timeStarted ) throws Exception
30 {
31 Session queueSession = null;
32 JMSConnectionHolder jmsConnectionHolder = null;
33 try
34 {
35 init( submitContext, request );
36 jmsConnectionHolder = new JMSConnectionHolder( jmsEndpoint, hermes, false, clientID, username, password );
37
38
39 queueSession = jmsConnectionHolder.getSession();
40
41
42 Queue queueSend = jmsConnectionHolder.getQueue( jmsConnectionHolder.getJmsEndpoint().getSend() );
43 Queue queueReceive = jmsConnectionHolder.getQueue( jmsConnectionHolder.getJmsEndpoint().getReceive() );
44
45 Message messageSend = messageSend( submitContext, request, queueSession, jmsConnectionHolder.getHermes(),
46 queueSend, queueReceive );
47 MessageConsumer messageConsumer = queueSession.createConsumer( queueReceive, submitContext.expand(messageSelector));
48
49 return makeResponse( submitContext, request, timeStarted, messageSend, messageConsumer );
50 }
51 catch( JMSException jmse )
52 {
53 return errorResponse( submitContext, request, timeStarted, jmse );
54 }
55 catch( Throwable t )
56 {
57 SoapUI.logError( t );
58 }
59 finally
60 {
61 jmsConnectionHolder.closeAll();
62 closeSessionAndConnection( jmsConnectionHolder != null ? jmsConnectionHolder.getConnection() : null,queueSession );
63 }
64 return null;
65 }
66 }