summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-07-02 16:25:09 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-07-02 16:25:09 +0000
commitec4ca248e6e7cb5107f6e30e793391d1b43ba479 (patch)
treecc98147a1e96df9f40a647bd747d7a9cb1cc70d7
parent328a76a48a22d68eb7052a2c62391e7b333fb61c (diff)
TUSCANY-3116: add support for the operationPropertyName attribute to the JMS binding model
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@790648 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java22
-rw-r--r--branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java11
-rw-r--r--branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorTestCase.java24
-rw-r--r--branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorWriteTestCase.java21
4 files changed, 72 insertions, 6 deletions
diff --git a/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java b/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
index 03157061d9..f2f78df879 100644
--- a/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
+++ b/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
@@ -24,12 +24,13 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.xml.namespace.QName;
import java.util.TreeSet;
+import javax.xml.namespace.QName;
+
import org.apache.tuscany.sca.assembly.BindingRRB;
-import org.apache.tuscany.sca.assembly.DefinitionElement;
import org.apache.tuscany.sca.assembly.ConfiguredOperation;
+import org.apache.tuscany.sca.assembly.DefinitionElement;
import org.apache.tuscany.sca.assembly.OperationSelector;
import org.apache.tuscany.sca.assembly.OperationsConfigurator;
import org.apache.tuscany.sca.assembly.WireFormat;
@@ -140,8 +141,10 @@ public class JMSBinding implements BindingRRB, PolicySetAttachPoint, OperationsC
private String jmsSelector;
private QName requestConnectionName;
private QName responseConnectionName;
+ private QName operationPropertiesName;
private JMSBinding requestConnectionBinding;
private JMSBinding responseConnectionBinding;
+ private JMSBinding operationPropertiesBinding;
private WireFormat requestWireFormat;
private WireFormat responseWireFormat;
@@ -681,6 +684,20 @@ public class JMSBinding implements BindingRRB, PolicySetAttachPoint, OperationsC
return responseConnectionBinding;
}
+ public void setOperationPropertiesName(QName nameValue) {
+ this.operationPropertiesName = nameValue;
+ }
+ public QName getOperationPropertiesName() {
+ return operationPropertiesName;
+ }
+
+ public void setOperationPropertiesBinding(JMSBinding binding) {
+ this.operationPropertiesBinding = binding;
+ }
+ public JMSBinding getOperationPropertiesBinding() {
+ return operationPropertiesBinding;
+ }
+
// operations required by PolicySetAttachPoint
public List<PolicySet> getPolicySets() {
return policySets;
@@ -893,4 +910,5 @@ public class JMSBinding implements BindingRRB, PolicySetAttachPoint, OperationsC
return true;
}
+
}
diff --git a/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java b/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java
index 299d844b16..5e1c674e69 100644
--- a/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java
+++ b/branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java
@@ -266,6 +266,11 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
jmsBinding.setResponseConnectionName(getQNameValue(reader, responseConnectionName));
}
+ String operationPropertiesName = reader.getAttributeValue(null, "operationProperties");
+ if (operationPropertiesName != null && operationPropertiesName.length() > 0) {
+ jmsBinding.setOperationPropertiesName(getQNameValue(reader, operationPropertiesName));
+ }
+
// Read sub-elements of binding.jms
boolean endFound = false;
while (!endFound) {
@@ -384,6 +389,9 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
if (model.getResponseConnectionName() != null) {
model.setResponseConnectionBinding(getConnectionBinding(model, "responseConnection", model.getResponseConnectionName(), resolver));
}
+ if (model.getOperationPropertiesName() != null) {
+ model.setOperationPropertiesBinding(getConnectionBinding(model, "operationProperties", model.getOperationPropertiesName(), resolver));
+ }
}
@SuppressWarnings("unchecked")
@@ -912,7 +920,8 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
// Write a <binding.jms>
writeStart(writer, Constants.SCA10_NS, JMSBindingConstants.BINDING_JMS,
new XAttr("requestConnection", jmsBinding.getRequestConnectionName()),
- new XAttr("responseConnection", jmsBinding.getResponseConnectionName()));
+ new XAttr("responseConnection", jmsBinding.getResponseConnectionName()),
+ new XAttr("operationProperties", jmsBinding.getOperationPropertiesName()));
if (jmsBinding.getName() != null) {
writer.writeAttribute("name", jmsBinding.getName());
diff --git a/branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorTestCase.java b/branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorTestCase.java
index 42a669b9ab..e05f31da1b 100644
--- a/branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorTestCase.java
+++ b/branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorTestCase.java
@@ -19,10 +19,8 @@
package org.apache.tuscany.sca.binding.jms.impl;
-import java.io.InputStream;
import java.io.StringReader;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -32,7 +30,6 @@ import javax.xml.stream.XMLStreamReader;
import junit.framework.TestCase;
import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.ConfiguredOperation;
import org.apache.tuscany.sca.assembly.OperationsConfigurator;
import org.apache.tuscany.sca.assembly.WireFormat;
import org.apache.tuscany.sca.binding.jms.wireformat.jmsbytes.WireFormatJMSBytes;
@@ -386,6 +383,17 @@ public class JMSBindingProcessorTestCase extends TestCase {
+ " </component>"
+ "</composite>";
+ public static final String OP_PROP_NAME =
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ + "<composite xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" targetNamespace=\"http://binding-jms\" name=\"binding-jms\">"
+ + " <component name=\"HelloWorldComponent\">"
+ + " <implementation.java class=\"services.HelloWorld\"/>"
+ + " <service name=\"HelloWorldService\">"
+ + " <binding.jms operationProperties=\"foo\"/>"
+ + " </service>"
+ + " </component>"
+ + "</composite>";
+
private XMLInputFactory inputFactory;
private StAXArtifactProcessor<Object> staxProcessor;
private Monitor monitor;
@@ -762,4 +770,14 @@ public class JMSBindingProcessorTestCase extends TestCase {
WireFormat responseWireFormat = binding.getResponseWireFormat();
assertEquals(WireFormatJMSBytes.class, responseWireFormat.getClass());
}
+
+ public void testOpPropertiesName() throws Exception {
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(OP_PROP_NAME));
+
+ Composite composite = (Composite)staxProcessor.read(reader);
+ JMSBinding binding = (JMSBinding) composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
+
+ assertNotNull(binding);
+ assertEquals( "foo", binding.getOperationPropertiesName().getLocalPart() );
+ }
}
diff --git a/branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorWriteTestCase.java b/branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorWriteTestCase.java
index 5b18f30cbc..d3efdfb606 100644
--- a/branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorWriteTestCase.java
+++ b/branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorWriteTestCase.java
@@ -432,4 +432,25 @@ public class JMSBindingProcessorWriteTestCase extends TestCase {
"</component>" +
"</composite>");
}
+
+ public void testOperationPropertiesName() throws Exception {
+ XMLStreamReader reader =
+ inputFactory.createXMLStreamReader(new StringReader(JMSBindingProcessorTestCase.OP_PROP_NAME));
+ Composite composite = (Composite)staxProcessor.read(reader);
+ JMSBinding binding = (JMSBinding)composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
+ assertNotNull(binding);
+
+ // Write out JMSBinding model to stream.
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ staxProcessor.write(composite, outputFactory.createXMLStreamWriter(bos));
+
+ // Read written JMSBinding to a different JMSBinding model.
+ XMLStreamReader reader2 = inputFactory.createXMLStreamReader(new StringReader(bos.toString()));
+ Composite composite2 = (Composite)staxProcessor.read(reader2);
+ JMSBinding binding2 = (JMSBinding)composite2.getComponents().get(0).getServices().get(0).getBindings().get(0);
+ assertNotNull(binding2);
+
+ // Compare initial binding to written binding.
+ assertEquals("foo", binding2.getOperationPropertiesName().getLocalPart());
+ }
}