@JMS2_0 public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException { MessageConsumer mc = delegate.createDurableConsumer(topic, name, messageSelector, noLocal); return TracingMessageConsumer.create(mc, jmsTracing); }
@JMS2_0 public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { return TracingMessageConsumer.create(delegate.createDurableConsumer(topic, name), jmsTracing); }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name, messageSelector, noLocal)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
private MessageConsumer createMessageConsumer(final Session session, final String destinationName, final boolean durable, final boolean shared, final String subscriberName) throws JMSException { final boolean isPubSub = JMSConsumer.this.jmsTemplate.isPubSubDomain(); final Destination destination = JMSConsumer.this.jmsTemplate.getDestinationResolver().resolveDestinationName(session, destinationName, isPubSub); if (isPubSub) { if (shared) { try { if (durable) { return session.createSharedDurableConsumer((Topic) destination, subscriberName); } else { return session.createSharedConsumer((Topic) destination, subscriberName); } } catch (AbstractMethodError e) { throw new ProcessException("Failed to create a shared consumer. Make sure the target broker is JMS 2.0 compliant.", e); } } else { if (durable) { return session.createDurableConsumer((Topic) destination, subscriberName, null, JMSConsumer.this.jmsTemplate.isPubSubDomain()); } else { return session.createConsumer(destination, null, JMSConsumer.this.jmsTemplate.isPubSubDomain()); } } } else { return session.createConsumer(destination, null, JMSConsumer.this.jmsTemplate.isPubSubDomain()); } }
@Override public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { return session.createDurableConsumer(topic, name); }
@Override public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException { return session.createDurableConsumer(topic, name, messageSelector, noLocal); }
@Override public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException { return session.createDurableConsumer(topic, name, messageSelector, noLocal); }
@Override public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { return session.createDurableConsumer(topic, name); }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
/** * Delegates the call to the wrapped JMS session. */ public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException { if (logger.isLoggable(BasicLevel.DEBUG)) logger.log(BasicLevel.DEBUG, this + " createDurableConsumer(" + topic + ", " + name + ")"); checkValidity(); return new OutboundConsumer(sess.createDurableConsumer(topic, name), this); }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name, messageSelector, noLocal)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name, messageSelector, noLocal)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name, messageSelector, noLocal)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
/** * Delegates the call to the wrapped JMS session. */ public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException { if (logger.isLoggable(BasicLevel.DEBUG)) logger.log(BasicLevel.DEBUG, this + " createDurableConsumer(" + topic + ", " + name + ", " + messageSelector + ", " + noLocal + ")"); checkValidity(); return new OutboundConsumer(sess.createDurableConsumer(topic, name, messageSelector, noLocal), this); }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) { checkSession(); try { ActiveMQJMSConsumer consumer = new ActiveMQJMSConsumer(this, session.createDurableConsumer(topic, name, messageSelector, noLocal)); checkAutoStart(); return consumer; } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Test public void testAutoCreateOnDurableSubscribeToTopic() throws Exception { Connection connection = cf.createConnection(); connection.setClientID("myClientID"); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); javax.jms.Topic topic = ActiveMQJMSClient.createTopic(QUEUE_NAME); MessageConsumer consumer = session.createDurableConsumer(topic, "myDurableSub"); MessageProducer producer = session.createProducer(topic); producer.send(session.createTextMessage("msg")); connection.start(); assertNotNull(consumer.receive(500)); connection.close(); assertNotNull(server.getManagementService().getResource(ResourceNames.ADDRESS + "test")); assertNotNull(server.locateQueue(SimpleString.toSimpleString("myClientID.myDurableSub"))); }