You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by cc...@apache.org on 2009/06/12 09:54:57 UTC
svn commit: r784020 - in
/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src:
main/java/org/apache/servicemix/jms/endpoints/
test/java/org/apache/servicemix/jms/
Author: ccustine
Date: Fri Jun 12 07:54:56 2009
New Revision: 784020
URL: http://svn.apache.org/viewvc?rev=784020&view=rev
Log:
SMXCOMP-565 - JMS consumer marshaler rollBackOnError flag is overwritten
Modified:
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/DefaultConsumerMarshaler.java
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/JmsConsumerEndpoint.java
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsProviderConsumerEndpointTest.java
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/DefaultConsumerMarshaler.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/DefaultConsumerMarshaler.java?rev=784020&r1=784019&r2=784020&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/DefaultConsumerMarshaler.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/DefaultConsumerMarshaler.java Fri Jun 12 07:54:56 2009
@@ -54,6 +54,8 @@
private URI mep;
private boolean rollbackOnError;
+ private boolean rollbackOnErrorDefault;
+ private boolean rollbackConfigured;
public DefaultConsumerMarshaler() {
this.mep = MessageExchangeSupport.IN_ONLY;
@@ -78,16 +80,29 @@
}
public boolean isRollbackOnError() {
- return rollbackOnError;
+ return rollbackConfigured ? rollbackOnError : rollbackOnErrorDefault;
}
/**
* @param rollbackOnError if exchange in errors should cause a rollback on the JMS side
*/
public void setRollbackOnError(boolean rollbackOnError) {
+ rollbackConfigured = true;
this.rollbackOnError = rollbackOnError;
}
+ /**
+ * This is called to set intelligent defaults if no
+ * explicit rollbackOnError configuration is set.
+ * If setRollbackOnError is explicitly set, it
+ * will be used.
+ *
+ * @param rollbackDefault default rollbackOnError setting
+ */
+ public void setRollbackOnErrorDefault(boolean rollbackDefault) {
+ this.rollbackOnErrorDefault = rollbackDefault;
+ }
+
public JmsContext createContext(Message message) throws Exception {
return new Context(message);
}
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/JmsConsumerEndpoint.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/JmsConsumerEndpoint.java?rev=784020&r1=784019&r2=784020&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/JmsConsumerEndpoint.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/JmsConsumerEndpoint.java Fri Jun 12 07:54:56 2009
@@ -473,7 +473,7 @@
if (TRANSACTED_XA.equals(transacted) || TRANSACTED_JMS.equals(transacted)) {
JmsConsumerMarshaler marshaler = getMarshaler();
if (marshaler instanceof DefaultConsumerMarshaler) {
- ((DefaultConsumerMarshaler)marshaler).setRollbackOnError(true);
+ ((DefaultConsumerMarshaler)marshaler).setRollbackOnErrorDefault(true);
}
}
}
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsProviderConsumerEndpointTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsProviderConsumerEndpointTest.java?rev=784020&r1=784019&r2=784020&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsProviderConsumerEndpointTest.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsProviderConsumerEndpointTest.java Fri Jun 12 07:54:56 2009
@@ -132,7 +132,7 @@
template.receive("destination");
JmsComponent jmsComponent = new JmsComponent();
- JmsConsumerEndpoint consumerEndpoint = createInOnlyConsumerEndpoint(connFactory);
+ JmsConsumerEndpoint consumerEndpoint = createInOnlyConsumerEndpointWithConfiguredRollback(connFactory, true);
consumerEndpoint.setTransacted("jms");
JmsProviderEndpoint providerEndpoint = createProviderEndpoint(connFactory);
jmsComponent.setEndpoints(new JmsEndpointType[] {consumerEndpoint, providerEndpoint});
@@ -267,6 +267,25 @@
return endpoint;
}
+ private JmsConsumerEndpoint createInOnlyConsumerEndpointWithConfiguredRollback(ConnectionFactory connFactory,
+ boolean rollbackOnError) throws URISyntaxException {
+ JmsConsumerEndpoint endpoint = new JmsConsumerEndpoint();
+ endpoint.setService(new QName("http://jms.servicemix.org/Test", "Consumer"));
+ endpoint.setEndpoint("endpoint");
+ DefaultConsumerMarshaler marshaler = new DefaultConsumerMarshaler();
+ marshaler.setMep(new URI("http://www.w3.org/2004/08/wsdl/in-only"));
+ marshaler.setRollbackOnError(rollbackOnError);
+ endpoint.setMarshaler(marshaler);
+ endpoint.setListenerType("simple");
+ endpoint.setListenerType("simple");
+ endpoint.setConnectionFactory(connFactory);
+ endpoint.setDestinationName("destination");
+ endpoint.setRecoveryInterval(10000);
+ endpoint.setConcurrentConsumers(1);
+ endpoint.setTargetService(new QName("http://jms.servicemix.org/Test", "Echo"));
+ return endpoint;
+ }
+
private JmsConsumerEndpoint createConsumerEndpoint(ConnectionFactory connFactory) throws URISyntaxException {
JmsConsumerEndpoint endpoint = new JmsConsumerEndpoint();
endpoint.setService(new QName("http://jms.servicemix.org/Test", "Consumer"));