From ec4ca248e6e7cb5107f6e30e793391d1b43ba479 Mon Sep 17 00:00:00 2001 From: antelder Date: Thu, 2 Jul 2009 16:25:09 +0000 Subject: 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 --- .../tuscany/sca/binding/jms/impl/JMSBinding.java | 22 ++++++++++++++++++-- .../sca/binding/jms/impl/JMSBindingProcessor.java | 11 +++++++++- .../jms/impl/JMSBindingProcessorTestCase.java | 24 +++++++++++++++++++--- .../jms/impl/JMSBindingProcessorWriteTestCase.java | 21 +++++++++++++++++++ 4 files changed, 72 insertions(+), 6 deletions(-) (limited to 'branches/sca-java-1.x/modules') 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 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 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 { + " " + ""; + public static final String OP_PROP_NAME = + "" + + "" + + " " + + " " + + " " + + " " + + " " + + " " + + ""; + private XMLInputFactory inputFactory; private StAXArtifactProcessor 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 { "" + ""); } + + 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()); + } } -- cgit v1.2.3