You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2016/04/27 20:07:57 UTC
qpid-jms git commit: QPIDJMS-131
Repository: qpid-jms
Updated Branches:
refs/heads/master c33e2d687 -> 4915a8fdf
QPIDJMS-131
Fix and test to get presettleProducers option working
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/4915a8fd
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/4915a8fd
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/4915a8fd
Branch: refs/heads/master
Commit: 4915a8fdfd360cf055d387f4ec971361a48398a3
Parents: c33e2d6
Author: Timothy Bish <ta...@gmail.com>
Authored: Wed Apr 27 14:07:23 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Wed Apr 27 14:07:23 2016 -0400
----------------------------------------------------------------------
.../amqp/builders/AmqpProducerBuilder.java | 8 ++++-
.../integration/ProducerIntegrationTest.java | 32 ++++++++++++++++++++
.../qpid/jms/test/testpeer/TestAmqpPeer.java | 14 +++++++--
3 files changed, 51 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/4915a8fd/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 d017921..74fe18d 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
@@ -78,7 +78,13 @@ public class AmqpProducerBuilder extends AmqpResourceBuilder<AmqpProducer, AmqpS
@Override
protected AmqpProducer createResource(AmqpSession parent, JmsProducerInfo resourceInfo, Sender endpoint) {
- return new AmqpFixedProducer(getParent(), getResourceInfo(), endpoint);
+ AmqpProducer producer = new AmqpFixedProducer(getParent(), getResourceInfo(), endpoint);
+
+ if (getParent().getConnection().isPresettleProducers()) {
+ producer.setPresettle(true);
+ }
+
+ return producer;
}
@Override
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/4915a8fd/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ProducerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ProducerIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ProducerIntegrationTest.java
index 2e49080..9625cd1 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ProducerIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ProducerIntegrationTest.java
@@ -1602,4 +1602,36 @@ public class ProducerIntegrationTest extends QpidJmsTestCase {
testPeer.waitForAllHandlersToComplete(1000);
}
}
+
+ @Test(timeout = 20000)
+ public void testPresettledProducersConfigurationApplied() throws Exception {
+ try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
+ Connection connection = testFixture.establishConnecton(testPeer, "?amqp.presettleProducers=true");
+ testPeer.expectBegin();
+ testPeer.expectSettledSenderAttach();
+
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Queue queue = session.createQueue("myQueue");
+ MessageProducer producer = session.createProducer(queue);
+
+ // Create and transfer a new message
+ MessageHeaderSectionMatcher headersMatcher = new MessageHeaderSectionMatcher(true)
+ .withDurable(equalTo(true));
+ MessageAnnotationsSectionMatcher msgAnnotationsMatcher = new MessageAnnotationsSectionMatcher(true);
+ TransferPayloadCompositeMatcher messageMatcher = new TransferPayloadCompositeMatcher();
+ messageMatcher.setHeadersMatcher(headersMatcher);
+ messageMatcher.setMessageAnnotationsMatcher(msgAnnotationsMatcher);
+ testPeer.expectTransfer(messageMatcher, nullValue(), true, false, null, false);
+ testPeer.expectClose();
+
+ Message message = session.createTextMessage();
+
+ producer.send(message);
+ assertEquals(DeliveryMode.PERSISTENT, message.getJMSDeliveryMode());
+
+ connection.close();
+
+ testPeer.waitForAllHandlersToComplete(1000);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/4915a8fd/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
index b4cf921..eb9cba4 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
@@ -867,6 +867,11 @@ public class TestAmqpPeer implements AutoCloseable
expectSenderAttach(notNullValue(), false, false);
}
+ public void expectSettledSenderAttach()
+ {
+ expectSenderAttach(notNullValue(), notNullValue(), true, false, false, false, 0, DEFAULT_PRODUCER_CREDIT, null, null);
+ }
+
public void expectSenderAttachWithoutGrantingCredit()
{
expectSenderAttach(notNullValue(), notNullValue(), false, false, false, 0, 0, null, null);
@@ -894,18 +899,23 @@ public class TestAmqpPeer implements AutoCloseable
public void expectSenderAttach(final Matcher<?> sourceMatcher, final Matcher<?> targetMatcher, final boolean refuseLink, boolean omitDetach, boolean deferAttachResponseWrite, long creditFlowDelay, int creditAmount, Symbol errorType, String errorMessage)
{
+ expectSenderAttach(sourceMatcher, targetMatcher, false, refuseLink, omitDetach, deferAttachResponseWrite, creditFlowDelay, creditAmount, errorType, errorMessage);
+ }
+
+ public void expectSenderAttach(final Matcher<?> sourceMatcher, final Matcher<?> targetMatcher, final boolean senderSettled, final boolean refuseLink, boolean omitDetach, boolean deferAttachResponseWrite, long creditFlowDelay, int creditAmount, Symbol errorType, String errorMessage)
+ {
final AttachMatcher attachMatcher = new AttachMatcher()
.withName(notNullValue())
.withHandle(notNullValue())
.withRole(equalTo(Role.SENDER))
- .withSndSettleMode(equalTo(SenderSettleMode.UNSETTLED))
+ .withSndSettleMode(equalTo(senderSettled ? SenderSettleMode.SETTLED : SenderSettleMode.UNSETTLED))
.withRcvSettleMode(equalTo(ReceiverSettleMode.FIRST))
.withSource(sourceMatcher)
.withTarget(targetMatcher);
final AttachFrame attachResponse = new AttachFrame()
.setRole(Role.RECEIVER)
- .setSndSettleMode(SenderSettleMode.UNSETTLED)
+ .setSndSettleMode(senderSettled ? SenderSettleMode.SETTLED : SenderSettleMode.UNSETTLED)
.setRcvSettleMode(ReceiverSettleMode.FIRST);
// The response frame channel will be dynamically set based on the incoming frame. Using the -1 is an illegal placeholder.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org