You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2009/07/03 13:47:43 UTC
svn commit: r790871 - in
/tuscany/branches/sca-java-1.x/modules/binding-jms/src/main:
java/org/apache/tuscany/sca/binding/jms/impl/ resources/
Author: antelder
Date: Fri Jul 3 11:47:42 2009
New Revision: 790871
URL: http://svn.apache.org/viewvc?rev=790871&view=rev
Log:
TUSCANY-3116: add runtime support for using the operationProperties attribute on a JMS binding
Modified:
tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java
tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/resources/binding-jms-validation-messages.properties
Modified: tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java?rev=790871&r1=790870&r2=790871&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java Fri Jul 3 11:47:42 2009
@@ -542,14 +542,22 @@
* @return a Set<String> of operation names
*/
public Set<String> getOperationNames() {
- // Make a defensive copy since key changes affect map, map changes affect keys.
- Set<String> opNames = operationProperties.keySet();
- Set<String> opNamesCopy = new TreeSet<String>( opNames );
- return opNamesCopy;
+ if (operationPropertiesBinding != null) {
+ return operationPropertiesBinding.getOperationNames();
+ } else {
+ // Make a defensive copy since key changes affect map, map changes affect keys.
+ Set<String> opNames = operationProperties.keySet();
+ Set<String> opNamesCopy = new TreeSet<String>( opNames );
+ return opNamesCopy;
+ }
}
public Map<String, Object> getOperationProperties(String opName) {
- return operationProperties.get(opName);
+ if (operationPropertiesBinding != null) {
+ return operationPropertiesBinding.getOperationProperties(opName);
+ } else {
+ return operationProperties.get(opName);
+ }
}
public void setOperationProperty(String opName, String propName, Object value) {
@@ -569,22 +577,34 @@
* null for non existant operation name or property name.
*/
public Object getOperationProperty(String opName, String propName ) {
- Map<String, Object> props = operationProperties.get(opName);
- if (props == null) {
- return null;
+ if (operationPropertiesBinding != null) {
+ return operationPropertiesBinding.getOperationProperty(opName, propName);
+ } else {
+ Map<String, Object> props = operationProperties.get(opName);
+ if (props == null) {
+ return null;
+ }
+ return props.get(propName);
}
- return props.get(propName);
}
public boolean hasNativeOperationName(String opName) {
- return nativeOperationNames.containsKey(opName);
+ if (operationPropertiesBinding != null) {
+ return operationPropertiesBinding.hasNativeOperationName(opName);
+ } else {
+ return nativeOperationNames.containsKey(opName);
+ }
}
public String getNativeOperationName(String opName) {
- if (nativeOperationNames.containsKey(opName)) {
- return nativeOperationNames.get(opName);
+ if (operationPropertiesBinding != null && operationPropertiesBinding.getNativeOperationName(opName) != null) {
+ return operationPropertiesBinding.getNativeOperationName(opName);
} else {
- return opName;
+ if (nativeOperationNames.containsKey(opName)) {
+ return nativeOperationNames.get(opName);
+ } else {
+ return opName;
+ }
}
}
@@ -593,10 +613,14 @@
}
public String getOperationJMSType(String opName) {
- if (operationJMSTypes.containsKey(opName)) {
- return operationJMSTypes.get(opName);
+ if (operationPropertiesBinding != null && operationPropertiesBinding.getOperationJMSType(opName) != null) {
+ return operationPropertiesBinding.getOperationJMSType(opName);
} else {
- return jmsType;
+ if (operationJMSTypes.containsKey(opName)) {
+ return operationJMSTypes.get(opName);
+ } else {
+ return jmsType;
+ }
}
}
public void setOperationJMSType(String opName, String jmsType) {
@@ -604,10 +628,18 @@
}
public String getOperationJMSCorrelationId(String opName) {
- if (operationJMSCorrelationIds.containsKey(opName)) {
- return operationJMSCorrelationIds.get(opName);
+ if (operationPropertiesBinding != null) {
+ if (operationPropertiesBinding.getOperationJMSCorrelationId(opName) != null) {
+ return operationPropertiesBinding.getOperationJMSCorrelationId(opName);
+ } else {
+ return jmsCorrelationId;
+ }
} else {
- return jmsCorrelationId;
+ if (operationJMSCorrelationIds.containsKey(opName)) {
+ return operationJMSCorrelationIds.get(opName);
+ } else {
+ return jmsCorrelationId;
+ }
}
}
public void setOperationJMSCorrelationId(String opName, String jmsCorrelationId) {
@@ -615,10 +647,18 @@
}
public Boolean getOperationJMSDeliveryMode(String opName) {
- if (operationJMSDeliveryModes.containsKey(opName)) {
- return operationJMSDeliveryModes.get(opName);
+ if (operationPropertiesBinding != null) {
+ if (operationPropertiesBinding.getOperationJMSDeliveryMode(opName) != null) {
+ return operationPropertiesBinding.getOperationJMSDeliveryMode(opName);
+ } else {
+ return deliveryModePersistent;
+ }
} else {
- return deliveryModePersistent;
+ if (operationJMSDeliveryModes.containsKey(opName)) {
+ return operationJMSDeliveryModes.get(opName);
+ } else {
+ return deliveryModePersistent;
+ }
}
}
public void setOperationJMSDeliveryMode(String opName, boolean b) {
@@ -626,10 +666,18 @@
}
public Long getOperationJMSTimeToLive(String opName) {
- if (operationJMSTimeToLives.containsKey(opName)) {
- return operationJMSTimeToLives.get(opName);
+ if (operationPropertiesBinding != null) {
+ if (operationPropertiesBinding.getOperationJMSTimeToLive(opName) != null) {
+ return operationPropertiesBinding.getOperationJMSTimeToLive(opName);
+ } else {
+ return timeToLive;
+ }
} else {
- return timeToLive;
+ if (operationJMSTimeToLives.containsKey(opName)) {
+ return operationJMSTimeToLives.get(opName);
+ } else {
+ return timeToLive;
+ }
}
}
public void setOperationJMSTimeToLive(String opName, Long ttl) {
@@ -637,10 +685,18 @@
}
public Integer getOperationJMSPriority(String opName) {
- if (operationJMSPriorities.containsKey(opName)) {
- return operationJMSPriorities.get(opName);
+ if (operationPropertiesBinding != null) {
+ if (operationPropertiesBinding.getOperationJMSPriority(opName) != null) {
+ return operationPropertiesBinding.getOperationJMSPriority(opName);
+ } else {
+ return jmsPriority;
+ }
} else {
- return jmsPriority;
+ if (operationJMSPriorities.containsKey(opName)) {
+ return operationJMSPriorities.get(opName);
+ } else {
+ return jmsPriority;
+ }
}
}
public void setOperationJMSPriority(String opName, int p) {
Modified: tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java?rev=790871&r1=790870&r2=790871&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java Fri Jul 3 11:47:42 2009
@@ -656,6 +656,11 @@
* </operationProperties>*
*/
private void parseOperationProperties(XMLStreamReader reader, JMSBinding jmsBinding) throws XMLStreamException {
+
+ if (jmsBinding.getOperationPropertiesName() != null) {
+ error("DuplicateOperationProperties", jmsBinding);
+ }
+
String opName = reader.getAttributeValue(null, "name");
if (opName == null || opName.length() < 1) {
warning("MissingJMSOperationPropertyName", jmsBinding);
@@ -1132,6 +1137,9 @@
* </binding.jms>
*/
private void writeOperationProperties( JMSBinding jmsBinding, XMLStreamWriter writer) throws XMLStreamException {
+ if (jmsBinding.getOperationPropertiesBinding() != null) {
+ return;
+ }
Set<String> operationNames = jmsBinding.getOperationNames();
if (operationNames == null || (operationNames.size() < 1)) {
return;
Modified: tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/resources/binding-jms-validation-messages.properties
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/resources/binding-jms-validation-messages.properties?rev=790871&r1=790870&r2=790871&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/resources/binding-jms-validation-messages.properties (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-jms/src/main/resources/binding-jms-validation-messages.properties Fri Jul 3 11:47:42 2009
@@ -47,3 +47,4 @@
ConnectionFactoryActivationSpecContradiction = Connection factory \"{0}\" and activation specification \"{0}\" are mutually exclusive
ResponseAttrElement = Response connection \"{0}\" and response element \"{1}\" are mutually exclusive
BindingNotFound = {0} refers to a binding definition {1} which is not found
+DuplicateOperationProperties = Must not use both operationProperties attribute and operationProperties element