summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/binding-jms/src
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2009-06-26 11:09:50 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2009-06-26 11:09:50 +0000
commitb81731425e5fa400987e740d82e74534bcdf47a8 (patch)
tree48685d18d6ee46df861201ce78dc17940f9fff5a /branches/sca-java-1.x/modules/binding-jms/src
parent339ba844b9a14e0e428d3ebad1dcb943c70bf58e (diff)
TUSCANY-3120 - improve write processing so that it writes out what has been entered and ignores defaults where possible.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@788655 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.x/modules/binding-jms/src')
-rw-r--r--branches/sca-java-1.x/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessor.java90
-rw-r--r--branches/sca-java-1.x/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingProcessorWriteTestCase.java52
2 files changed, 99 insertions, 43 deletions
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 b1d67ec3ee..3d0a2d8bf9 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
@@ -901,12 +901,12 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
writer.writeAttribute("uri", jmsBinding.getURI());
}
- String dest = jmsBinding.getDestinationName();
- if (dest != null) {
- if ( dest != null ) {
- writer.writeAttribute("uri", "jms:" + jmsBinding.getDestinationName());
- }
- }
+ //String dest = jmsBinding.getDestinationName();
+ //if (dest != null) {
+ // if ( dest != null ) {
+ // writer.writeAttribute("uri", "jms:" + jmsBinding.getDestinationName());
+ // }
+ //}
String correlationScheme = jmsBinding.getCorrelationScheme();
if ( correlationScheme != null ) {
@@ -951,7 +951,7 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
writeResponseActivationSpecProperties( jmsBinding, writer );
if ((jmsBinding.getResponseWireFormat() != null) &&
- !(jmsBinding.getResponseWireFormat() instanceof WireFormatJMSTextXML)){
+ !(jmsBinding.getResponseWireFormat() instanceof WireFormatJMSDefault)){
writeWireFormat(jmsBinding.getResponseWireFormat(), writer);
}
@@ -965,7 +965,7 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
writeConfiguredOperations( jmsBinding, writer );
if ((jmsBinding.getRequestWireFormat() != null) &&
- !(jmsBinding.getRequestWireFormat() instanceof WireFormatJMSTextXML)){
+ !(jmsBinding.getRequestWireFormat() instanceof WireFormatJMSDefault)){
writeWireFormat(jmsBinding.getRequestWireFormat(), writer);
}
@@ -1131,39 +1131,43 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
Integer jmsPriority = jmsBinding.getOperationJMSPriority(opName);
Map<String, Object> operationProperties = jmsBinding.getOperationProperties(opName);
- if (jmsType != null || jmsCorrelationId != null || jmsDeliveryMode != null ||
- jmsTimeToLive != null || jmsPriority != null || operationProperties != null) {
-
- writer.writeStartElement(Constants.SCA10_NS, JMSBindingConstants.HEADERS);
-
- if (jmsType != null && jmsType.length() > 0) {
- writer.writeAttribute("JMSType", jmsType);
- }
-
- if (jmsCorrelationId != null && jmsCorrelationId.length() > 0) {
- writer.writeAttribute("JMSCorrelationID", jmsCorrelationId);
- }
-
- if (jmsDeliveryMode != null) {
- if (jmsDeliveryMode.booleanValue())
- writer.writeAttribute("JMSDeliveryMode", "PERSISTENT");
- else
- writer.writeAttribute("JMSDeliveryMode", "NON_PERSISTENT");
- }
-
- if (jmsTimeToLive != null) {
- writer.writeAttribute("JMSTimeToLive", jmsTimeToLive.toString());
- }
-
- if (jmsPriority != null) {
- writer.writeAttribute("JMSPriority", jmsPriority.toString());
+ if (operationProperties != null){
+ if ((jmsType != null && jmsType.length() > 0) ||
+ (jmsCorrelationId != null && jmsCorrelationId.length() > 0) ||
+ jmsDeliveryMode != null || jmsTimeToLive != null ||
+ jmsPriority != null) {
+
+ writer.writeStartElement(Constants.SCA10_NS, JMSBindingConstants.HEADERS);
+
+ if (jmsType != null && jmsType.length() > 0) {
+ writer.writeAttribute("JMSType", jmsType);
+ }
+
+ if (jmsCorrelationId != null && jmsCorrelationId.length() > 0) {
+ writer.writeAttribute("JMSCorrelationID", jmsCorrelationId);
+ }
+
+ if (jmsDeliveryMode != null) {
+ if (jmsDeliveryMode.booleanValue())
+ writer.writeAttribute("JMSDeliveryMode", "PERSISTENT");
+ else
+ writer.writeAttribute("JMSDeliveryMode", "NON_PERSISTENT");
+ }
+
+ if (jmsTimeToLive != null) {
+ writer.writeAttribute("JMSTimeToLive", jmsTimeToLive.toString());
+ }
+
+ if (jmsPriority != null) {
+ writer.writeAttribute("JMSPriority", jmsPriority.toString());
+ }
+
+ writeProperties( operationProperties, writer );
+
+ writer.writeEndElement();
+ // Strange bug. Without white space, headers end tag improperly read.
+ // writer.writeCharacters( " " );
}
-
- writeProperties( operationProperties, writer );
-
- writer.writeEndElement();
- // Strange bug. Without white space, headers end tag improperly read.
- // writer.writeCharacters( " " );
}
writer.writeEndElement();
@@ -1255,7 +1259,8 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
// }
String destinationCreate = jmsBinding.getDestinationCreate();
- if ( destinationCreate != null && destinationCreate.length() > 0) {
+ if ( destinationCreate != null && destinationCreate.length() > 0 &&
+ !destinationCreate.equals(JMSBindingConstants.CREATE_IF_NOT_EXIST)) {
writer.writeAttribute("create", destinationCreate);
}
@@ -1287,7 +1292,8 @@ public class JMSBindingProcessor extends BaseStAXArtifactProcessor implements St
}
String destinationCreate = jmsBinding.getConnectionFactoryCreate();
- if ( destinationCreate != null && destinationCreate.length() > 0) {
+ if ( destinationCreate != null && destinationCreate.length() > 0 &&
+ !destinationCreate.equals(JMSBindingConstants.CREATE_IF_NOT_EXIST)) {
writer.writeAttribute("create", destinationCreate);
}
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 d9427407e5..5b18f30cbc 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
@@ -58,6 +58,26 @@ public class JMSBindingProcessorWriteTestCase extends TestCase {
private XMLOutputFactory outputFactory;
private StAXArtifactProcessor<Object> staxProcessor;
private Monitor monitor;
+
+ public static final String DEFAULT =
+ "<?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\">"
+ + " <service name=\"HelloWorldService\">"
+ + " <binding.jms>"
+ + " <destination name=\"AAA\">"
+ + " <property name=\"AAAProp\" type=\"string\"/>"
+ + " </destination>"
+ + " <connectionFactory name=\"ABC\"/>"
+ + " <response/>"
+ + " <headers/>"
+ + " <resourceAdapter name=\"GHI\"/>"
+ + " <operationProperties name=\"JKL\">"
+ + " </operationProperties>"
+ + " </binding.jms>"
+ + " </service>"
+ + " </component>"
+ + "</composite>";
@Override
protected void setUp() throws Exception {
@@ -381,5 +401,35 @@ public class JMSBindingProcessorWriteTestCase extends TestCase {
// Compare initial binding to written binding.
assertEquals(binding, binding2);
- }
+ }
+
+ // TUSCANY-3120
+ // Checking we don't write out values unless the use has specified them on input
+ public void testDefault() throws Exception {
+ XMLStreamReader reader =
+ inputFactory.createXMLStreamReader(new StringReader(DEFAULT));
+ Composite composite = (Composite)staxProcessor.read(reader);
+ JMSBinding binding = (JMSBinding)composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
+ assertNotNull(binding);
+
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ staxProcessor.write(composite, outputFactory.createXMLStreamWriter(bos));
+
+ System.out.println(bos.toString());
+ assertEquals(bos.toString(),
+ "<?xml version=\'1.0\' encoding=\'UTF-8\'?>" +
+ "<composite targetNamespace=\"http://binding-jms\" name=\"binding-jms\" xmlns=\"http://www.osoa.org/xmlns/sca/1.0\">" +
+ "<component name=\"HelloWorldComponent\">" +
+ "<service name=\"HelloWorldService\">" +
+ "<binding.jms><operationProperties name=\"JKL\" /> " +
+ "<destination name=\"AAA\">" +
+ "<property name=\"AAAProp\" type=\"string\"></property>" +
+ "</destination> " +
+ "<connectionFactory name=\"ABC\" /> "+
+ "<resourceAdapter name=\"GHI\" /> " +
+ "</binding.jms>" +
+ "</service>" +
+ "</component>" +
+ "</composite>");
+ }
}