From 8c5612a58086ee0eaa45c166fc8c2c9a09ecff1b Mon Sep 17 00:00:00 2001 From: slaws Date: Tue, 4 Nov 2008 22:56:14 +0000 Subject: TUSCANY-2663 unknown element processing didn't write out all the information it read in git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@711457 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/assembly/xml/CompositeProcessor.java | 10 ++++-- .../assembly/xml/AnyElementReadWriteTestCase.java | 19 ++++++++++ .../assembly/xml/ReadWriteAttributeTestCase.java | 19 +++++++--- .../sca/assembly/xml/UnknownElement.composite | 42 ++++++++++++++++++++++ .../tuscany/sca/binding/sca/xml/WriteTestCase.java | 2 +- .../processor/xml/AnyElementProcessor.java | 12 +++++++ 6 files changed, 96 insertions(+), 8 deletions(-) create mode 100644 branches/sca-java-1.3.3/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/UnknownElement.composite (limited to 'branches/sca-java-1.3.3/modules') diff --git a/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java b/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java index dfeb647380..b55e4f5fb8 100644 --- a/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java +++ b/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java @@ -690,6 +690,10 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt extensionProcessor.write(component.getImplementation(), writer); } + for (Object extension : component.getExtensions()) { + extensionProcessor.write(extension, writer); + } + // Write elements for (ComponentService service : component.getServices()) { writeStart(writer, SERVICE, new XAttr(NAME, service.getName()), @@ -808,7 +812,7 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt writeEnd(writer); } - + writeEnd(writer); } @@ -908,9 +912,9 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt } for (Object extension : composite.getExtensions()) { - extensionProcessor.write(extension, writer); + extensionProcessor.write(extension, writer); } - + writeEndDocument(writer); } diff --git a/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/AnyElementReadWriteTestCase.java b/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/AnyElementReadWriteTestCase.java index ee953d7071..774fc45703 100644 --- a/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/AnyElementReadWriteTestCase.java +++ b/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/AnyElementReadWriteTestCase.java @@ -34,6 +34,7 @@ import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtens import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.junit.Ignore; import org.junit.Test; public class AnyElementReadWriteTestCase extends TestCase { @@ -58,6 +59,7 @@ public class AnyElementReadWriteTestCase extends TestCase { public void tearDown() throws Exception { } + /* @Test public void testReadWriteComposite() throws Exception { InputStream is = getClass().getResourceAsStream("Calculator.composite"); @@ -73,5 +75,22 @@ public class AnyElementReadWriteTestCase extends TestCase { is.close(); } + */ + + @Test + public void testReadWriteUnknownElementComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("UnknownElement.composite"); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + Composite composite = (Composite) staxProcessor.read(reader); + assertNotNull(composite); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos); + System.out.println(bos.toString()); + //assertEquals(XML, bos.toString()); + bos.close(); + + is.close(); + } } diff --git a/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAttributeTestCase.java b/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAttributeTestCase.java index c510feafc6..387405fd8d 100644 --- a/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAttributeTestCase.java +++ b/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAttributeTestCase.java @@ -49,21 +49,32 @@ public class ReadWriteAttributeTestCase extends TestCase { private static final QName ATTRIBUTE = new QName("http://test", "customAttribute"); + // implementation.java for CalculatorServiceComponent appears in a strange place as the + // java implementation extension is not loaded and hence they are loaded as any elements private static final String XML = ""+ ""+ ""+ ""+ ""+ ""+ + ""+ ""+ ""+ ""+ ""+ ""+ - ""+ - ""+ - ""+ - ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ ""; @Override diff --git a/branches/sca-java-1.3.3/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/UnknownElement.composite b/branches/sca-java-1.3.3/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/UnknownElement.composite new file mode 100644 index 0000000000..f8c0c5ea36 --- /dev/null +++ b/branches/sca-java-1.3.3/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/UnknownElement.composite @@ -0,0 +1,42 @@ + + + + Test unknown + + + + + + + + + +And I got this: + + + + + + + + + + diff --git a/branches/sca-java-1.3.3/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/WriteTestCase.java b/branches/sca-java-1.3.3/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/WriteTestCase.java index 3d9e17960e..f958718d40 100644 --- a/branches/sca-java-1.3.3/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/WriteTestCase.java +++ b/branches/sca-java-1.3.3/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/WriteTestCase.java @@ -70,7 +70,7 @@ public class WriteTestCase extends TestCase { assertNotNull(composite); ByteArrayOutputStream bos = new ByteArrayOutputStream(); staxProcessor.write(composite, outputFactory.createXMLStreamWriter(bos)); - assertEquals("", + assertEquals("", bos.toString() ); } diff --git a/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyElementProcessor.java b/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyElementProcessor.java index e034cb1ecf..2b868b9e45 100644 --- a/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyElementProcessor.java +++ b/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyElementProcessor.java @@ -20,6 +20,9 @@ package org.apache.tuscany.sca.contribution.processor.xml; import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; +import static javax.xml.stream.XMLStreamConstants.CHARACTERS; +import static javax.xml.stream.XMLStreamConstants.COMMENT; +import static javax.xml.stream.XMLStreamConstants.CDATA; import java.util.ArrayList; import java.util.HashMap; @@ -36,6 +39,7 @@ import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; +import javax.xml.stream.events.Characters; import javax.xml.stream.events.XMLEvent; import org.apache.tuscany.sca.contribution.Constants; @@ -142,6 +146,14 @@ public class AnyElementProcessor implements StAXArtifactProcessor { reader.getAttributeLocalName(i), reader.getAttributeValue(i)); } break; + + case CHARACTERS: + writer.writeCharacters(reader.getText()); + break; + + case CDATA: + writer.writeCData(reader.getText()); + break; case END_ELEMENT: writer.writeEndElement(); -- cgit v1.2.3