summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x
diff options
context:
space:
mode:
authorbdaniel <bdaniel@13f79535-47bb-0310-9956-ffa450edef68>2010-09-08 00:18:50 +0000
committerbdaniel <bdaniel@13f79535-47bb-0310-9956-ffa450edef68>2010-09-08 00:18:50 +0000
commit1315e46609bf6beb0c275c59176c846c17b3c614 (patch)
treeb1366a4d3eca86b7d384459953a6cd9774d18688 /sca-java-2.x
parent27e3cec43d8effa06ba8710907e416539b332096 (diff)
TUSCANY-3673 Update JMS binding model to separate out type/priority/deliveryMode/timeToLive attributes originating from the uri, operation prop headers, and headers. Also use that information in the runtime to correctly determine the value that is used when more than one is specified.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@993564 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java58
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java29
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java41
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBinding.java172
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessor.java39
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessorTestCase.java8
6 files changed, 216 insertions, 131 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
index 9afce4243d..8f8c27a135 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
@@ -28,7 +28,6 @@ import javax.jms.Destination;
import javax.jms.JMSException;
import javax.naming.NamingException;
-import org.apache.tuscany.sca.assembly.WireFormat;
import org.apache.tuscany.sca.binding.jms.JMSBinding;
import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
import org.apache.tuscany.sca.binding.jms.JMSBindingException;
@@ -53,22 +52,15 @@ public class HeaderReferenceInterceptor implements Interceptor {
private Invoker next;
private RuntimeEndpointReference runtimeWire;
- private JMSResourceFactory jmsResourceFactory;
private JMSBinding jmsBinding;
private JMSMessageProcessor requestMessageProcessor;
- private JMSMessageProcessor responseMessageProcessor;
- private String correlationScheme;
- private WireFormat requestWireFormat;
- private WireFormat responseWireFormat;
+
public HeaderReferenceInterceptor(ExtensionPointRegistry extensions, JMSBinding jmsBinding, JMSResourceFactory jmsResourceFactory, RuntimeEndpointReference runtimeWire) {
super();
this.jmsBinding = jmsBinding;
- this.runtimeWire = runtimeWire;
- this.jmsResourceFactory = jmsResourceFactory;
- this.requestMessageProcessor = JMSMessageProcessorUtil.getRequestMessageProcessor(extensions, jmsBinding);
- this.responseMessageProcessor = JMSMessageProcessorUtil.getResponseMessageProcessor(extensions, jmsBinding);
- this.correlationScheme = jmsBinding.getCorrelationScheme();
+ this.runtimeWire = runtimeWire;
+ this.requestMessageProcessor = JMSMessageProcessorUtil.getRequestMessageProcessor(extensions, jmsBinding);
}
@@ -92,25 +84,31 @@ public class HeaderReferenceInterceptor implements Interceptor {
// @nativeOperation here on the reference side.
requestMessageProcessor.setOperationName(operationName, jmsMsg);
- if (jmsBinding.getOperationJMSDeliveryMode(operationName) != null) {
- if (jmsBinding.getOperationJMSDeliveryMode(operationName)) {
- jmsMsg.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
- } else {
- jmsMsg.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
- }
- }
-
- if (jmsBinding.getOperationJMSCorrelationId(operationName) != null) {
- jmsMsg.setJMSCorrelationID(jmsBinding.getOperationJMSCorrelationId(operationName));
- }
+
+
+ if (jmsBinding.getEffectiveJMSDeliveryMode(operationName) != null) {
+ if (jmsBinding.getEffectiveJMSDeliveryMode(operationName)) {
+ jmsMsg.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
+ } else {
+ jmsMsg.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
+ }
+ }
- if (jmsBinding.getOperationJMSPriority(operationName) != null) {
- jmsMsg.setJMSPriority(jmsBinding.getOperationJMSPriority(operationName));
- }
+ if (jmsBinding.getEffectiveJMSPriority(operationName) != null) {
+ jmsMsg.setJMSPriority(jmsBinding.getEffectiveJMSPriority(operationName));
+ }
- if (jmsBinding.getOperationJMSType(operationName) != null) {
- jmsMsg.setJMSType(jmsBinding.getOperationJMSType(operationName));
+ if ( jmsBinding.getEffectiveJMSType(operationName) != null ) {
+ jmsMsg.setJMSType(jmsBinding.getEffectiveJMSType(operationName));
+ }
+
+ if ( jmsBinding.getEffectiveJMSTimeToLive(operationName) != null ) {
+ jmsMsg.setJMSExpiration(jmsBinding.getEffectiveJMSTimeToLive(operationName));
}
+
+ if (jmsBinding.getOperationJMSCorrelationId(operationName) != null) {
+ jmsMsg.setJMSCorrelationID(jmsBinding.getOperationJMSCorrelationId(operationName));
+ }
if (tuscanyMsg.getFrom().getCallbackEndpoint() != null) {
@@ -137,11 +135,11 @@ public class HeaderReferenceInterceptor implements Interceptor {
}
}
- if (jmsBinding.getOperationJMSTimeToLive(operationName) != null) {
- context.setTimeToLive(jmsBinding.getOperationJMSTimeToLive(operationName) * 2);
+ if (jmsBinding.getEffectiveJMSTimeToLive(operationName) != null) {
+ context.setTimeToLive(jmsBinding.getEffectiveJMSTimeToLive(operationName) * 2);
} else {
context.setTimeToLive(JMSBindingConstants.DEFAULT_TIME_TO_LIVE);
- }
+ }
return tuscanyMsg;
} catch (JMSException e) {
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java
index 9668333ebd..6681870612 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java
@@ -18,6 +18,7 @@
*/
package org.apache.tuscany.sca.binding.jms.transport;
+import javax.jms.DeliveryMode;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
@@ -41,15 +42,13 @@ import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
*/
public class TransportReferenceInterceptor implements Interceptor {
- private Invoker next;
- private RuntimeEndpointReference runtimeWire;
+ private Invoker next;
private JMSResourceFactory jmsResourceFactory;
private JMSBinding jmsBinding;
public TransportReferenceInterceptor(JMSBinding jmsBinding, JMSResourceFactory jmsResourceFactory, RuntimeEndpointReference runtimeWire) {
super();
- this.jmsBinding = jmsBinding;
- this.runtimeWire = runtimeWire;
+ this.jmsBinding = jmsBinding;
this.jmsResourceFactory = jmsResourceFactory;
}
@@ -78,20 +77,20 @@ public class TransportReferenceInterceptor implements Interceptor {
// Set JMS header attributes in producer, not message.
String opName = msg.getOperation().getName();
- if (jmsBinding.getOperationJMSTimeToLive(msg.getOperation().getName()) != null) {
- producer.setTimeToLive(jmsBinding.getOperationJMSTimeToLive(msg.getOperation().getName()));
- }
- Integer priority = jmsBinding.getOperationJMSPriority( opName );
+ if (jmsBinding.getEffectiveJMSTimeToLive(opName) != null) {
+ producer.setTimeToLive(jmsBinding.getEffectiveJMSTimeToLive(msg.getOperation().getName()).longValue());
+ }
+
+ Integer priority = jmsBinding.getEffectiveJMSPriority(opName);
if (priority != null) {
- producer.setPriority(priority.intValue());
+ producer.setPriority(priority.intValue());
}
- Boolean deliveryModePersistent = jmsBinding.getOperationJMSDeliveryMode(opName);
+
+ Boolean deliveryModePersistent = jmsBinding.getEffectiveJMSDeliveryMode(opName);
if (deliveryModePersistent != null) {
- if (deliveryModePersistent.booleanValue())
- producer.setDeliveryMode(javax.jms.DeliveryMode.PERSISTENT);
- else
- producer.setDeliveryMode(javax.jms.DeliveryMode.NON_PERSISTENT);
- }
+ producer.setDeliveryMode( deliveryModePersistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
+ }
+
try {
producer.send((javax.jms.Message)msg.getBody());
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java
index 4ba33695e4..d371bbba86 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java
@@ -54,11 +54,9 @@ import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
public class TransportServiceInterceptor implements Interceptor {
private static final Logger logger = Logger.getLogger(TransportServiceInterceptor.class.getName());
- private Invoker next;
- private RuntimeEndpoint endpoint;
+ private Invoker next;
private JMSResourceFactory jmsResourceFactory;
- private JMSBinding jmsBinding;
- private JMSMessageProcessor requestMessageProcessor;
+ private JMSBinding jmsBinding;
private JMSMessageProcessor responseMessageProcessor;
private RuntimeComponentService service;
private String correlationScheme;
@@ -67,10 +65,8 @@ public class TransportServiceInterceptor implements Interceptor {
public TransportServiceInterceptor(ExtensionPointRegistry registry, JMSBinding jmsBinding, JMSResourceFactory jmsResourceFactory, RuntimeEndpoint endpoint) {
super();
- this.jmsBinding = jmsBinding;
- this.endpoint = endpoint;
- this.jmsResourceFactory = jmsResourceFactory;
- this.requestMessageProcessor = JMSMessageProcessorUtil.getRequestMessageProcessor(registry, jmsBinding);
+ this.jmsBinding = jmsBinding;
+ this.jmsResourceFactory = jmsResourceFactory;
this.responseMessageProcessor = JMSMessageProcessorUtil.getResponseMessageProcessor(registry, jmsBinding);
this.service = (RuntimeComponentService)endpoint.getService();
this.correlationScheme = jmsBinding.getCorrelationScheme();
@@ -100,9 +96,7 @@ public class TransportServiceInterceptor implements Interceptor {
}
public Message invokeRequest(Message msg) {
-// try {
- JMSBindingContext context = msg.getBindingContext();
- javax.jms.Message requestJMSMsg = context.getJmsMsg();
+// try {
EndpointReference from = assemblyFactory.createEndpointReference();
Endpoint fromEndpoint = assemblyFactory.createEndpoint();
@@ -153,21 +147,22 @@ public class TransportServiceInterceptor implements Interceptor {
return msg;
}
- if (msg.getOperation() != null) {
+ if ((msg.getOperation() != null)) {
String operationName = msg.getOperation().getName();
- if (jmsBinding.getOperationJMSPriority(operationName) != null) {
- responseJMSMsg.setJMSPriority(jmsBinding.getOperationJMSPriority(operationName));
+ if (jmsBinding.getEffectiveJMSPriority(operationName) != null) {
+ responseJMSMsg.setJMSPriority(jmsBinding.getEffectiveJMSPriority(operationName));
}
- if (jmsBinding.getOperationJMSType(operationName) != null) {
- responseJMSMsg.setJMSType(jmsBinding.getOperationJMSType(operationName));
+ if ( jmsBinding.getEffectiveJMSType(operationName) != null) {
+ responseJMSMsg.setJMSType(jmsBinding.getEffectiveJMSType(operationName));
}
- if (jmsBinding.getOperationJMSDeliveryMode(operationName) != null) {
- if (jmsBinding.getOperationJMSDeliveryMode(operationName)) {
- responseJMSMsg.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
- } else {
- responseJMSMsg.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
- }
+
+ if ((jmsBinding.getEffectiveJMSDeliveryMode(operationName) != null)) {
+ responseJMSMsg.setJMSDeliveryMode(jmsBinding.getEffectiveJMSDeliveryMode(operationName) ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
+ }
+
+ if ((jmsBinding.getEffectiveJMSTimeToLive(operationName) != null)) {
+ responseJMSMsg.setJMSExpiration(jmsBinding.getEffectiveJMSTimeToLive(operationName).longValue());
}
}
@@ -185,6 +180,8 @@ public class TransportServiceInterceptor implements Interceptor {
producer.setDeliveryMode(deliveryMode);
int deliveryPriority = requestJMSMsg.getJMSPriority();
producer.setPriority(deliveryPriority);
+ long timeToLive = requestJMSMsg.getJMSExpiration();
+ producer.setTimeToLive(timeToLive);
producer.send((javax.jms.Message)msg.getBody());
diff --git a/sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBinding.java b/sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBinding.java
index 977ef17d52..fcd022dfea 100644
--- a/sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBinding.java
+++ b/sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBinding.java
@@ -122,11 +122,7 @@ public class JMSBinding implements Binding, PolicySubject, OperationsConfigurato
private boolean containsHeaders = false;
private String replyTo;
- private String jmsType;
private String jmsCorrelationId;
- private Boolean deliveryModePersistent;
- private Long timeToLive;
- private Integer jmsPriority;
private Map<String, Object> properties = new HashMap<String, Object>();
private Map<String, Map<String, Object>> operationProperties = new HashMap<String, Map<String,Object>>();
@@ -151,6 +147,20 @@ public class JMSBinding implements Binding, PolicySubject, OperationsConfigurato
private OperationSelector operationSelector;
private ExtensionType extensionType;
private String jmsURI;
+
+ private String uriType;
+ private Boolean uriDeliveryMode;
+ private Integer uriJMSPriority;
+ private Long uriJMSTimeToLive;
+
+ private String headerType;
+ private Boolean headerDeliveryMode;
+ private Integer headerPriority;
+ private Long headerTimeToLive;
+
+ private final Integer defaultPriority = Integer.valueOf(4);
+ private final Boolean defaultDeliveryMode = true;
+ private final Long defaultJMSTimeToLive =Long.valueOf(0);
public JMSBinding() {
super();
@@ -468,47 +478,81 @@ public class JMSBinding implements Binding, PolicySubject, OperationsConfigurato
this.replyTo = replyTo;
}
- public String getJMSType() {
- return jmsType;
+ // getEffective...() will return values based on the following priority
+ // 1. The value specified in the URI attribute
+ // 2. The value specified in the operationProperties/headers
+ // 3. The value specified in the headers element
+ // 4. The default value from the headers element
+ public String getEffectiveJMSType(String opName) {
+ if ( getJMSURIType() != null ) return getJMSURIType();
+ else if ( getOperationJMSType(opName) != null ) return getOperationJMSType(opName);
+ else if ( getJMSHeaderType() != null ) return getJMSHeaderType();
+ else return null;
}
- public void setJMSType(String jmsType) {
- setHeaders( true );
- this.jmsType = jmsType;
- }
-
- public String getJMSCorrelationId() {
- return jmsCorrelationId;
+
+ public Boolean getEffectiveJMSDeliveryMode(String opName) {
+ if ( getURIJMSDeliveryMode() != null ) return getURIJMSDeliveryMode();
+ else if ( getOperationJMSDeliveryMode(opName) != null) return getOperationJMSDeliveryMode(opName);
+ else if ( getHeaderJMSDeliveryMode() != null) return getHeaderJMSDeliveryMode();
+ else return getDefaultDeliveryMode();
}
- public void setJMSCorrelationId(String jmsCorrelationId) {
- setHeaders( true );
- this.jmsCorrelationId = jmsCorrelationId;
+ public Long getEffectiveJMSTimeToLive(String opName) {
+ if ( getURIJMSTimeToLive() != null ) return getURIJMSTimeToLive();
+ else if ( getOperationJMSTimeToLive(opName) != null) return getOperationJMSTimeToLive(opName);
+ else if ( getHeaderJMSTimeToLive() != null) return getHeaderJMSTimeToLive();
+ else return getDefaultJMSTimeToLive();
}
- public Boolean isdeliveryModePersistent() {
- return deliveryModePersistent;
- }
- public void setJMSDeliveryMode(boolean persistent) {
- setHeaders( true );
- this.deliveryModePersistent = Boolean.valueOf(persistent);
+ public Integer getEffectiveJMSPriority(String operationName) {
+ if ( getURIJMSPriority() != null ) return getURIJMSPriority();
+ else if ( getOperationJMSPriority(operationName)!= null) return getOperationJMSPriority(operationName);
+ else if ( getJMSHeaderPriority() != null ) return getJMSHeaderPriority();
+ else return getDefaultJMSPriority();
}
- public Integer getJMSPriority() {
- return jmsPriority;
- }
- public void setJMSPriority(int jmsPriority) {
- setHeaders( true );
- this.jmsPriority = Integer.valueOf(jmsPriority);
- }
+ private Long getHeaderJMSTimeToLive() {
+ return this.headerTimeToLive;
+ }
- public Long getJMSTimeToLive() {
- return timeToLive;
- }
+ private Long getDefaultJMSTimeToLive() {
+ return this.defaultJMSTimeToLive;
+ }
- public void setJMSTimeToLive(long timeToLive) {
+ private Boolean getDefaultDeliveryMode() {
+ return this.defaultDeliveryMode;
+ }
+
+ private Boolean getHeaderJMSDeliveryMode() {
+ return headerDeliveryMode;
+ }
+
+ private Boolean getURIJMSDeliveryMode() {
+ return this.uriDeliveryMode;
+ }
+
+ public String getJMSURIType() {
+ return uriType;
+ }
+ public void setJMSURIType(String type) {
+ this.uriType = type;
+ }
+ public String getJMSHeaderType() {
+ return headerType;
+ }
+
+ public void setJMSHeaderType(String type) {
+ this.headerType = type;
+ }
+
+ public String getJMSCorrelationId() {
+ return jmsCorrelationId;
+ }
+
+ public void setJMSCorrelationId(String jmsCorrelationId) {
setHeaders( true );
- this.timeToLive = Long.valueOf(timeToLive);
+ this.jmsCorrelationId = jmsCorrelationId;
}
public Set<String> getPropertyNames() {
@@ -621,7 +665,7 @@ public class JMSBinding implements Binding, PolicySubject, OperationsConfigurato
if (operationJMSTypes.containsKey(opName)) {
return operationJMSTypes.get(opName);
} else {
- return jmsType;
+ return null;
}
}
}
@@ -653,13 +697,13 @@ public class JMSBinding implements Binding, PolicySubject, OperationsConfigurato
if (operationPropertiesBinding.getOperationJMSDeliveryMode(opName) != null) {
return operationPropertiesBinding.getOperationJMSDeliveryMode(opName);
} else {
- return deliveryModePersistent;
+ return null;
}
} else {
if (operationJMSDeliveryModes.containsKey(opName)) {
return operationJMSDeliveryModes.get(opName);
} else {
- return deliveryModePersistent;
+ return null;
}
}
}
@@ -672,13 +716,13 @@ public class JMSBinding implements Binding, PolicySubject, OperationsConfigurato
if (operationPropertiesBinding.getOperationJMSTimeToLive(opName) != null) {
return operationPropertiesBinding.getOperationJMSTimeToLive(opName);
} else {
- return timeToLive;
+ return null;
}
} else {
if (operationJMSTimeToLives.containsKey(opName)) {
return operationJMSTimeToLives.get(opName);
} else {
- return timeToLive;
+ return null;
}
}
}
@@ -691,13 +735,13 @@ public class JMSBinding implements Binding, PolicySubject, OperationsConfigurato
if (operationPropertiesBinding.getOperationJMSPriority(opName) != null) {
return operationPropertiesBinding.getOperationJMSPriority(opName);
} else {
- return jmsPriority;
+ return null;
}
} else {
if (operationJMSPriorities.containsKey(opName)) {
return operationJMSPriorities.get(opName);
} else {
- return jmsPriority;
+ return null;
}
}
}
@@ -979,4 +1023,50 @@ public class JMSBinding implements Binding, PolicySubject, OperationsConfigurato
public void setJMSURI(String jmsURI) {
this.jmsURI = jmsURI;
}
+
+
+ public void setURIJMSDeliveryMode(boolean equals) {
+ this.uriDeliveryMode = Boolean.valueOf(equals);
+ }
+
+ public Integer getURIJMSPriority() {
+ return this.uriJMSPriority;
+ }
+
+ public void setURIJMSPriority(int parseInt) {
+ this.uriJMSPriority = Integer.valueOf(parseInt);
+ }
+
+ public Long getURIJMSTimeToLive() {
+ return this.uriJMSTimeToLive;
+ }
+ public void setURIJMSTimeToLive(long parseLong) {
+ this.uriJMSTimeToLive = Long.valueOf(parseLong);
+ }
+
+ public Boolean isHeaderDeliveryModePersistent() {
+ return this.headerDeliveryMode;
+ }
+ public void setJMSHeaderDeliveryMode(boolean b) {
+ this.headerDeliveryMode = Boolean.valueOf(b);
+ }
+
+ public Long getJMSHeaderTimeToLive() {
+ return this.headerTimeToLive;
+ }
+ public void setJMSHeaderTimeToLive(long parseLong) {
+ this.headerTimeToLive = Long.valueOf(parseLong);
+ }
+
+ public Integer getJMSHeaderPriority() {
+ return this.headerPriority;
+ }
+ public void setJMSHeaderPriority(int p) {
+ this.headerPriority = Integer.valueOf(p);
+ }
+
+ public Integer getDefaultJMSPriority() {
+ return this.defaultPriority;
+ }
+
}
diff --git a/sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessor.java b/sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessor.java
index 9ea6b3a001..0dffea12b5 100644
--- a/sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessor.java
@@ -368,13 +368,11 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
if (s.startsWith("connectionFactoryName=")) {
jmsBinding.setConnectionFactoryName(s.substring(22));
} else if (s.startsWith("deliveryMode=")) {
- jmsBinding.setJMSDeliveryMode("persistent".equals(s.substring(13)));
+ jmsBinding.setURIJMSDeliveryMode("persistent".equals(s.substring(13)));
} else if (s.startsWith("priority=")) {
- jmsBinding.setJMSPriority(Integer.parseInt(s.substring(9)));
+ jmsBinding.setURIJMSPriority(Integer.parseInt(s.substring(9)));
} else if (s.startsWith("timeToLive=")) {
- jmsBinding.setJMSTimeToLive(Long.parseLong(s.substring(11)));
- } else if (s.startsWith("type=")) {
- jmsBinding.setJMSType((s.substring(5)));
+ jmsBinding.setURIJMSTimeToLive(Long.parseLong(s.substring(11)));
} else if (s.startsWith("selector='")) {
String selector = s.substring(10);
if (selector.startsWith("\"") || selector.startsWith("'")) {
@@ -384,11 +382,14 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
selector = selector.substring(0, selector.length() - 1);
}
jmsBinding.setJMSSelector(selector);
- } else {
- error(monitor, "UnknownTokenInURI", jmsBinding, s, uri);
- return;
- }
- }
+ } else if (s.startsWith("type")) {
+ String type = s.substring(5);
+ jmsBinding.setJMSURIType(type);
+ } else {
+ error(monitor, "UnknownTokenInURI", jmsBinding, s, uri);
+ return;
+ }
+ }
int j=uri.indexOf(':', 4);
jmsBinding.setDestinationName(uri.substring(j+1, i));
jmsBinding.setDestinationType(uri.substring(4, j));
@@ -673,15 +674,15 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
private void parseHeaders(XMLStreamReader reader, JMSBinding jmsBinding, Monitor monitor) throws XMLStreamException {
String jmsType = reader.getAttributeValue(null, "type");
if (jmsType != null && jmsType.length() > 0) {
- jmsBinding.setJMSType(jmsType);
+ jmsBinding.setJMSHeaderType(jmsType);
}
String jmsDeliveryMode = reader.getAttributeValue(null, "deliveryMode");
if (jmsDeliveryMode != null && jmsDeliveryMode.length() > 0) {
if ("persistent".equalsIgnoreCase(jmsDeliveryMode)) {
- jmsBinding.setJMSDeliveryMode(true);
+ jmsBinding.setJMSHeaderDeliveryMode(true);
} else if ("nonpersistent".equalsIgnoreCase(jmsDeliveryMode)) {
- jmsBinding.setJMSDeliveryMode(false);
+ jmsBinding.setJMSHeaderDeliveryMode(false);
} else {
error(monitor, "InvalidJMSDeliveryMode", jmsBinding, jmsDeliveryMode);
}
@@ -689,7 +690,7 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
String jmsTimeToLive = reader.getAttributeValue(null, "timeToLive");
if (jmsTimeToLive != null && jmsTimeToLive.length() > 0) {
- jmsBinding.setJMSTimeToLive(Long.parseLong(jmsTimeToLive));
+ jmsBinding.setJMSHeaderTimeToLive(Long.parseLong(jmsTimeToLive));
}
String jmsPriority = reader.getAttributeValue(null, "priority");
@@ -697,7 +698,7 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
try {
int p = Integer.parseInt(jmsPriority);
if (p >= 0 && p <= 9) {
- jmsBinding.setJMSPriority(p);
+ jmsBinding.setJMSHeaderPriority(p);
} else {
warning(monitor, "InvalidJMSPriority", jmsBinding, jmsPriority);
}
@@ -1151,12 +1152,12 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
writer.writeStartElement(Constants.SCA11_NS, JMSBindingConstants.HEADERS);
- String jmsType = jmsBinding.getJMSType();
+ String jmsType = jmsBinding.getJMSHeaderType();
if (jmsType != null && jmsType.length() > 0) {
writer.writeAttribute("type", jmsType);
}
- Boolean jmsDeliveryMode = jmsBinding.isdeliveryModePersistent();
+ Boolean jmsDeliveryMode = jmsBinding.isHeaderDeliveryModePersistent();
if (jmsDeliveryMode != null) {
if ( jmsDeliveryMode.booleanValue() )
writer.writeAttribute("deliveryMode", "persistent");
@@ -1164,12 +1165,12 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
writer.writeAttribute("deliveryMode", "nonpersistent");
}
- Long jmsTimeToLive = jmsBinding.getJMSTimeToLive();
+ Long jmsTimeToLive = jmsBinding.getJMSHeaderTimeToLive();
if (jmsTimeToLive != null) {
writer.writeAttribute("timeToLive", jmsTimeToLive.toString());
}
- Integer jmsPriority = jmsBinding.getJMSPriority();
+ Integer jmsPriority = jmsBinding.getJMSHeaderPriority();
if (jmsPriority != null) {
writer.writeAttribute("priority", jmsPriority.toString());
}
diff --git a/sca-java-2.x/trunk/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessorTestCase.java b/sca-java-2.x/trunk/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessorTestCase.java
index e945da22e2..c1fb89df8d 100644
--- a/sca-java-2.x/trunk/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessorTestCase.java
+++ b/sca-java-2.x/trunk/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessorTestCase.java
@@ -426,10 +426,10 @@ public class JMSBindingProcessorTestCase extends TestCase {
JMSBinding binding = (JMSBinding) composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
assertNotNull(binding);
- assertEquals("myType", binding.getJMSType());
- assertTrue(binding.isdeliveryModePersistent());
- assertEquals(54321, binding.getJMSTimeToLive().longValue());
- assertEquals(5, binding.getJMSPriority().intValue());
+ assertEquals("myType", binding.getJMSHeaderType());
+ assertTrue(binding.isHeaderDeliveryModePersistent());
+ assertEquals(54321, binding.getJMSHeaderTimeToLive().longValue());
+ assertEquals(5, binding.getJMSHeaderPriority().intValue());
}
public void testProperties1() throws Exception {