@Override public JMSContext createContext(int sessionMode) { switch (sessionMode) { case Session.AUTO_ACKNOWLEDGE: case Session.CLIENT_ACKNOWLEDGE: case Session.DUPS_OK_ACKNOWLEDGE: case Session.SESSION_TRANSACTED: case ActiveMQJMSConstants.INDIVIDUAL_ACKNOWLEDGE: case ActiveMQJMSConstants.PRE_ACKNOWLEDGE: break; default: throw new JMSRuntimeException("Invalid ackmode: " + sessionMode); } refCounter.increment(); return new ActiveMQJMSContext(this, sessionMode, threadAwareContext); }
@Override public QueueBrowser createBrowser(Queue queue, String messageSelector) { checkSession(); try { QueueBrowser browser = session.createBrowser(queue, messageSelector); checkAutoStart(); return browser; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public JMSProducer send(Destination destination, byte[] body) { BytesMessage message = context.createBytesMessage(); if (body != null) { try { message.writeBytes(body); } catch (JMSException e) { throw new MessageFormatRuntimeException(e.getMessage()); } } send(destination, message); return this; }
@Override public void onMessage(Message message) { context.setLastMessage(ActiveMQJMSConsumer.this, message); context.getThreadAwareContext().setCurrentThread(false); try { wrapped.onMessage(message); } finally { context.getThreadAwareContext().clearCurrentThread(false); } } }
@Override public JMSProducer createProducer() { checkSession(); try { return new ActiveMQJMSProducer(this, getInnerProducer()); } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public Message receive() { try { return context.setLastMessage(this, consumer.receive()); } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public TextMessage createTextMessage(String text) { checkSession(); try { return session.createTextMessage(text); } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public void onCompletion(Message message) { context.getThreadAwareContext().setCurrentThread(true); try { wrapped.onCompletion(message); } finally { context.getThreadAwareContext().clearCurrentThread(true); } }
@Override public JMSProducer send(Destination destination, Serializable body) { ObjectMessage message = context.createObjectMessage(body); send(destination, message); return this; }
@Override public JMSProducer send(Destination destination, String body) { TextMessage message = context.createTextMessage(body); send(destination, message); return this; }
@Override public JMSProducer send(Destination destination, Map<String, Object> body) { MapMessage message = context.createMapMessage(); if (body != null) { try {
@Override public void onMessage(Message message) { context.setLastMessage(ActiveMQJMSConsumer.this, message); context.getThreadAwareContext().setCurrentThread(false); try { wrapped.onMessage(message); } finally { context.getThreadAwareContext().clearCurrentThread(false); } } }
@Override public Message receive(long timeout) { try { return context.setLastMessage(this, consumer.receive(timeout)); } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public JMSProducer createProducer() { checkSession(); try { return new ActiveMQJMSProducer(this, getInnerProducer()); } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public Queue createQueue(String queueName) { checkSession(); try { return session.createQueue(queueName); } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public void onException(Message message, Exception exception) { context.getThreadAwareContext().setCurrentThread(true); try { wrapped.onException(message, exception); } finally { context.getThreadAwareContext().clearCurrentThread(true); } } }
@Override public JMSProducer send(Destination destination, Serializable body) { ObjectMessage message = context.createObjectMessage(body); send(destination, message); return this; }
@Override public JMSProducer send(Destination destination, String body) { TextMessage message = context.createTextMessage(body); send(destination, message); return this; }
@Override public JMSProducer send(Destination destination, Map<String, Object> body) { MapMessage message = context.createMapMessage(); if (body != null) { try {
@Override public JMSConsumer createConsumer(Destination destination) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createConsumer(destination)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }