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/05/10 22:39:17 UTC
qpid-jms git commit: QPIDJMS-173 remove the presettle option for
consumer in TX from the policy.
Repository: qpid-jms
Updated Branches:
refs/heads/master 0fe6b0471 -> 895b3a826
QPIDJMS-173 remove the presettle option for consumer in TX from the
policy.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/895b3a82
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/895b3a82
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/895b3a82
Branch: refs/heads/master
Commit: 895b3a826c55ab91a624f0ba44086f684c70f838
Parents: 0fe6b04
Author: Timothy Bish <ta...@gmail.com>
Authored: Tue May 10 18:29:37 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Tue May 10 18:29:37 2016 -0400
----------------------------------------------------------------------
.../org/apache/qpid/jms/JmsPresettlePolicy.java | 27 +-----
.../PresettledConsumerIntegrationTest.java | 93 +++++++++++---------
2 files changed, 56 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/895b3a82/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsPresettlePolicy.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsPresettlePolicy.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsPresettlePolicy.java
index bf15ef0..30ab9ea 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsPresettlePolicy.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsPresettlePolicy.java
@@ -32,7 +32,6 @@ public class JmsPresettlePolicy {
private boolean presettleConsumers;
private boolean presettleTopicConsumers;
private boolean presettleQueueConsumers;
- private boolean presettleTransactedConsumers;
public JmsPresettlePolicy() {
}
@@ -46,7 +45,6 @@ public class JmsPresettlePolicy {
this.presettleConsumers = source.presettleConsumers;
this.presettleTopicConsumers = source.presettleTopicConsumers;
this.presettleQueueConsumers = source.presettleQueueConsumers;
- this.presettleTransactedConsumers = source.presettleTransactedConsumers;
}
public JmsPresettlePolicy copy() {
@@ -232,25 +230,6 @@ public class JmsPresettlePolicy {
}
/**
- * @return the presettleTransactedConsumers setting for this policy.
- */
- public boolean isPresettleTransactedConsumers() {
- return presettleTransactedConsumers;
- }
-
- /**
- * The presettle consumers inside a transaction value to apply. When true all the
- * MessageConsumer created in a transacted Session will indicate that presettled
- * messages are requested.
- *
- * @param presettleTransactedConsumers
- * the presettleTransactedConsumers value to apply to this policy.
- */
- public void setPresettleTransactedConsumers(boolean presettleTransactedConsumers) {
- this.presettleTransactedConsumers = presettleTransactedConsumers;
- }
-
- /**
* Determines when a consumer will be created with the settlement mode set to presettled.
* <p>
* Called when the a consumer is being created to determine whether the consumer will
@@ -266,9 +245,9 @@ public class JmsPresettlePolicy {
*/
public boolean isConsumerPresttled(JmsDestination destination, JmsSession session) {
- if (presettleAll || presettleConsumers) {
- return true;
- } else if (session.isTransacted() && presettleTransactedConsumers) {
+ if (session.isTransacted()) {
+ return false;
+ } else if (presettleAll || presettleConsumers) {
return true;
} else if (destination != null && destination.isQueue() && presettleQueueConsumers) {
return true;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/895b3a82/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/PresettledConsumerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/PresettledConsumerIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/PresettledConsumerIntegrationTest.java
index 6603320..469d30b 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/PresettledConsumerIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/PresettledConsumerIntegrationTest.java
@@ -17,6 +17,7 @@
package org.apache.qpid.jms.integration;
import static org.hamcrest.Matchers.arrayContaining;
+import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
@@ -32,7 +33,9 @@ import javax.jms.Topic;
import org.apache.qpid.jms.test.QpidJmsTestCase;
import org.apache.qpid.jms.test.testpeer.TestAmqpPeer;
import org.apache.qpid.jms.test.testpeer.describedtypes.sections.AmqpValueDescribedType;
+import org.apache.qpid.jms.test.testpeer.matchers.AcceptedMatcher;
import org.apache.qpid.jms.test.testpeer.matchers.CoordinatorMatcher;
+import org.apache.qpid.jms.test.testpeer.matchers.TransactionalStateMatcher;
import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.DescribedType;
import org.apache.qpid.proton.amqp.transaction.TxnCapability;
@@ -149,80 +152,80 @@ public class PresettledConsumerIntegrationTest extends QpidJmsTestCase {
doTestConsumerWithPresettleOptions(presettleConfig, false, true, true, TemporaryQueue.class);
}
- //----- Test the jms.presettlePolicy.presettleTransactedConsumers option -//
+ //----- Test the presettled consumer still settles if needed -------------//
@Test(timeout = 20000)
- public void testPresettleTransactedConsumersConfigurationAppliedToTopic() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleTransactedConsumers=true";
- doTestConsumerWithPresettleOptions(presettleConfig, true, true, true, Topic.class);
+ public void testPresettledTopicConsumerSettlesWhenNeeded() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, false, true, false, Topic.class);
}
@Test(timeout = 20000)
- public void testPresettledTransactedConsumersConfigurationAppliedToQueue() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleTransactedConsumers=true";
- doTestConsumerWithPresettleOptions(presettleConfig, true, true, true, Queue.class);
+ public void testPresettledQueueConsumerSettlesWhenNeeded() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, false, true, false, Queue.class);
}
@Test(timeout = 20000)
- public void testPresettledTransactedConsumersConfigurationAppliedToTempTopic() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleTransactedConsumers=true";
- doTestConsumerWithPresettleOptions(presettleConfig, true, true, true, TemporaryTopic.class);
+ public void testPresettledTempTopicConsumerSettlesWhenNeeded() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, false, true, false, TemporaryTopic.class);
}
@Test(timeout = 20000)
- public void testPresettledTransactedConsumersConfigurationAppliedToTempQueue() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleTransactedConsumers=true";
- doTestConsumerWithPresettleOptions(presettleConfig, true, true, true, TemporaryQueue.class);
+ public void testPresettledTempQueueConsumerSettlesWhenNeeded() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, false, true, false, TemporaryQueue.class);
}
+ //----- Test that transacted consumers always send unsettled -------------//
+
@Test(timeout = 20000)
- public void testPresettleTransactedConsumersConfigurationAppliedToTopicNoTX() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleTransactedConsumers=true";
- doTestConsumerWithPresettleOptions(presettleConfig, false, false, false, Topic.class);
+ public void testTransactedTopicConsumerNotSettledPresettleAll() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, true, false, false, Topic.class);
}
@Test(timeout = 20000)
- public void testPresettledTransactedConsumersConfigurationAppliedToQueueNoTX() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleTransactedConsumers=true";
- doTestConsumerWithPresettleOptions(presettleConfig, false, false, false, Queue.class);
+ public void testTransactedQueueConsumerNotSettledPresettleAll() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, true, false, false, Queue.class);
}
@Test(timeout = 20000)
- public void testPresettledTransactedConsumersConfigurationAppliedToTempTopicNoTX() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleTransactedConsumers=true";
- doTestConsumerWithPresettleOptions(presettleConfig, false, false, false, TemporaryTopic.class);
+ public void testTransactedTempTopicConsumerNotSettledPresettleAll() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, true, false, false, TemporaryTopic.class);
}
@Test(timeout = 20000)
- public void testPresettledTransactedConsumersConfigurationAppliedToTempQueueNoTX() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleTransactedConsumers=true";
- doTestConsumerWithPresettleOptions(presettleConfig, false, false, false, TemporaryQueue.class);
+ public void testTransactedTempQueueConsumerNotSettledPresettleAll() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, true, false, false, TemporaryQueue.class);
}
- //----- Test the presettled consumer still settles if needed -------------//
-
@Test(timeout = 20000)
- public void testPresettledTopicConsumerSettlesWhenNeeded() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
- doTestConsumerWithPresettleOptions(presettleConfig, false, true, false, Topic.class);
+ public void testTransactedTopicConsumerNotSettledPresettleTopicConsumers() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleTopicConsumers=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, true, false, false, Topic.class);
}
@Test(timeout = 20000)
- public void testPresettledQueueConsumerSettlesWhenNeeded() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
- doTestConsumerWithPresettleOptions(presettleConfig, false, true, false, Queue.class);
+ public void testTransactedQueueConsumerNotSettledPresettleQueueConsumers() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleQueueConsumers=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, true, false, false, Queue.class);
}
@Test(timeout = 20000)
- public void testPresettledTempTopicConsumerSettlesWhenNeeded() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
- doTestConsumerWithPresettleOptions(presettleConfig, false, true, false, TemporaryTopic.class);
+ public void testTransactedTempTopicConsumerNotSettledPresettleTopicConsumers() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleTopicConsumers=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, true, false, false, TemporaryTopic.class);
}
@Test(timeout = 20000)
- public void testPresettledTempQueueConsumerSettlesWhenNeeded() throws Exception {
- String presettleConfig = "?jms.presettlePolicy.presettleAll=true";
- doTestConsumerWithPresettleOptions(presettleConfig, false, true, false, TemporaryQueue.class);
+ public void testTransactedTempQueueConsumerNotSettledPresettleQueueConsumers() throws Exception {
+ String presettleConfig = "?jms.presettlePolicy.presettleQueueConsumers=true";
+ doTestConsumerWithPresettleOptions(presettleConfig, true, false, false, TemporaryQueue.class);
}
//----- Test Method implementation ---------------------------------------//
@@ -282,7 +285,17 @@ public class PresettledConsumerIntegrationTest extends QpidJmsTestCase {
// Send a settled transfer, client should not send any dispositions
testPeer.expectLinkFlowRespondWithTransfer(null, null, null, null, amqpValueNullContent, transferSettled);
if (!transferSettled) {
- testPeer.expectDispositionThatIsAcceptedAndSettled();
+ if (!transacted) {
+ testPeer.expectDispositionThatIsAcceptedAndSettled();
+ } else {
+ // Then expect an *settled* TransactionalState disposition for each message
+ // once received by the consumer
+ TransactionalStateMatcher stateMatcher = new TransactionalStateMatcher();
+ stateMatcher.withTxnId(equalTo(txnId));
+ stateMatcher.withOutcome(new AcceptedMatcher());
+
+ testPeer.expectDisposition(true, stateMatcher);
+ }
}
MessageConsumer consumer = session.createConsumer(destination);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org