Repository: qpid-jms Updated Branches: refs/heads/master 181b6dd04 -> ff7f49fe6
QPIDJMS-176 Let the producer build handle building all types of producers. Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/ff7f49fe Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/ff7f49fe Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/ff7f49fe Branch: refs/heads/master Commit: ff7f49fe66313ef696be8c18f953212f140df094 Parents: 181b6dd Author: Timothy Bish <[email protected]> Authored: Mon May 16 14:24:57 2016 -0400 Committer: Timothy Bish <[email protected]> Committed: Mon May 16 14:24:57 2016 -0400 ---------------------------------------------------------------------- .../qpid/jms/provider/amqp/AmqpSession.java | 13 ++----------- .../amqp/builders/AmqpProducerBuilder.java | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ff7f49fe/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpSession.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpSession.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpSession.java index ff7f0ee..24f9db1 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpSession.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpSession.java @@ -86,17 +86,8 @@ public class AmqpSession extends AmqpAbstractResource<JmsSessionInfo, Session> i } public void createProducer(JmsProducerInfo producerInfo, AsyncResult request) { - if (producerInfo.getDestination() == null && !getConnection().getProperties().isAnonymousRelaySupported()) { - LOG.debug("Creating an AmqpAnonymousFallbackProducer"); - new AmqpAnonymousFallbackProducer(this, producerInfo); - - // No producer is created yet so this is always successful. - request.onSuccess(); - } else { - LOG.debug("Creating AmqpFixedProducer for: {}", producerInfo.getDestination()); - AmqpProducerBuilder builder = new AmqpProducerBuilder(this, producerInfo); - builder.buildResource(request); - } + AmqpProducerBuilder builder = new AmqpProducerBuilder(this, producerInfo); + builder.buildResource(request); } public AmqpProducer getProducer(JmsProducerInfo producerInfo) { http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ff7f49fe/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/builders/AmqpProducerBuilder.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/builders/AmqpProducerBuilder.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/builders/AmqpProducerBuilder.java index 0875c56..e04d819 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/builders/AmqpProducerBuilder.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/builders/AmqpProducerBuilder.java @@ -20,6 +20,8 @@ import javax.jms.InvalidDestinationException; import org.apache.qpid.jms.JmsDestination; import org.apache.qpid.jms.meta.JmsProducerInfo; +import org.apache.qpid.jms.provider.AsyncResult; +import org.apache.qpid.jms.provider.amqp.AmqpAnonymousFallbackProducer; import org.apache.qpid.jms.provider.amqp.AmqpFixedProducer; import org.apache.qpid.jms.provider.amqp.AmqpProducer; import org.apache.qpid.jms.provider.amqp.AmqpSession; @@ -32,17 +34,33 @@ import org.apache.qpid.proton.amqp.messaging.Target; import org.apache.qpid.proton.amqp.transport.ReceiverSettleMode; import org.apache.qpid.proton.amqp.transport.SenderSettleMode; import org.apache.qpid.proton.engine.Sender; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Resource builder responsible for creating and opening an AmqpProducer instance. */ public class AmqpProducerBuilder extends AmqpResourceBuilder<AmqpProducer, AmqpSession, JmsProducerInfo, Sender> { + private static final Logger LOG = LoggerFactory.getLogger(AmqpProducerBuilder.class); + public AmqpProducerBuilder(AmqpSession parent, JmsProducerInfo resourceInfo) { super(parent, resourceInfo); } @Override + public void buildResource(final AsyncResult request) { + if (getResourceInfo().getDestination() == null && !getParent().getConnection().getProperties().isAnonymousRelaySupported()) { + LOG.debug("Creating an AmqpAnonymousFallbackProducer"); + new AmqpAnonymousFallbackProducer(getParent(), getResourceInfo()); + request.onSuccess(); + } else { + LOG.debug("Creating AmqpFixedProducer for: {}", getResourceInfo().getDestination()); + super.buildResource(request); + } + } + + @Override protected Sender createEndpoint(JmsProducerInfo resourceInfo) { JmsDestination destination = resourceInfo.getDestination(); String targetAddress = AmqpDestinationHelper.INSTANCE.getDestinationAddress(destination, getParent().getConnection()); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
