You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by fr...@apache.org on 2007/02/16 23:06:00 UTC
svn commit: r508613 - in /incubator/tuscany/java/sdo/impl/src:
main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java
test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java
Author: frankb
Date: Fri Feb 16 14:06:00 2007
New Revision: 508613
URL: http://svn.apache.org/viewvc?view=rev&rev=508613
Log:
Fix for TUSCANY-1097
Modified:
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java
incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java
Modified: incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java?view=diff&rev=508613&r1=508612&r2=508613
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java (original)
+++ incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java Fri Feb 16 14:06:00 2007
@@ -138,9 +138,7 @@
}
- private void addProperty(List propertyList, Property property, Object value) {
- if (isTransient(property))
- return;
+ private void addProperty(Property property, Object value, List propertyList) {
if (property.isMany() && property.getContainingType().isOpen() && value instanceof Sequence) {
addSequenceValue(propertyList, (Sequence) value);
} else if (SDOUtil.isMany(property, dataObject) && value instanceof List) {
@@ -151,6 +149,11 @@
}
}
+ void addProperty(List propertyList, Property property, Object value) {
+ if (!isTransient(property))
+ addProperty(property, value, propertyList);
+ }
+
private void addSequenceValue(List elements, Sequence seq) {
if (seq != null && seq.size() > 0) {
for (int j = 0; j < seq.size(); j++) {
@@ -261,7 +264,7 @@
// property == null for text in mixed content
elementList.add(new NameValuePair(ELEMENT_TEXT, value));
} else {
- addProperty(elementList, property, value);
+ addProperty(property, value, elementList);
}
}
// Attributes are not in the sequence
Modified: incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java?view=diff&rev=508613&r1=508612&r2=508613
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java (original)
+++ incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java Fri Feb 16 14:06:00 2007
@@ -19,9 +19,7 @@
*/
package org.apache.tuscany.sdo.test;
-import java.io.InputStreamReader;
-import java.io.StringReader;
-import java.io.StringWriter;
+import java.io.*;
import java.net.URL;
import java.util.*;
@@ -40,16 +38,11 @@
import org.apache.tuscany.sdo.util.SDOUtil;
import commonj.sdo.DataObject;
-import commonj.sdo.helper.TypeHelper;
-import commonj.sdo.helper.XMLDocument;
-import commonj.sdo.helper.XMLHelper;
-import commonj.sdo.helper.XSDHelper;
+import commonj.sdo.helper.*;
public class XMLStreamHelperTestCase extends TestCase {
- private XSDHelper xsdHelper = XSDHelper.INSTANCE;
-
- private TypeHelper typeHelper = TypeHelper.INSTANCE;
+ private HelperContext hc;
private XMLStreamHelper streamHelper;
@@ -72,11 +65,18 @@
protected void setUp() throws Exception {
super.setUp();
- streamHelper = SDOUtil.createXMLStreamHelper(typeHelper);
+
+ hc = SDOUtil.createHelperContext();
+ streamHelper = SDOUtil.createXMLStreamHelper(hc.getTypeHelper());
+
URL url = getClass().getClassLoader().getResource(testName + ".xsd");
- xsdHelper.define(url.openStream(), url.toExternalForm());
+ hc.getXSDHelper().define(url.openStream(), url.toExternalForm());
+ url = getClass().getResource("/mixed.xsd");
+ hc.getXSDHelper().define(url.openStream(), url.toString());
+
inputFactory = XMLInputFactory.newInstance();
outputFactory = XMLOutputFactory.newInstance();
+
url = getClass().getClassLoader().getResource(testName + ".xml");
InputStreamReader reader = new InputStreamReader(url.openStream());
StringBuffer stringBuffer = new StringBuffer();
@@ -106,7 +106,7 @@
event = reader.next();
}
Map options = new HashMap();
- options.put(XMLStreamHelper.OPTION_DEFAULT_ROOT_TYPE, typeHelper.getType(name.getNamespaceURI(), "MockImplementation"));
+ options.put(XMLStreamHelper.OPTION_DEFAULT_ROOT_TYPE, hc.getTypeHelper().getType(name.getNamespaceURI(), "MockImplementation"));
DataObject dataObject = streamHelper.loadObject(reader, options);
Assert.assertNotNull(dataObject);
Assert.assertTrue(dataObject.getString("myAttr").equals("helloworld.HelloWorldImpl"));
@@ -127,18 +127,18 @@
}
public void testSave() throws XMLStreamException {
- XMLDocument document = XMLHelper.INSTANCE.load(xml);
+ XMLDocument document = hc.getXMLHelper().load(xml);
StringWriter writer = new StringWriter();
XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(writer);
streamHelper.save(document, streamWriter);
streamWriter.flush();
String xmlStr = writer.toString();
- // System.out.println(xmlStr);
- Assert.assertTrue(xmlStr.indexOf("myAttr=\"helloworld.HelloWorldImpl\"")!=-1);
+ //System.out.println(xmlStr);
+ Assert.assertTrue(xmlStr.indexOf("myAttr=\"helloworld.HelloWorldImpl\"")!=-1);
}
public void testSaveObject() throws XMLStreamException {
- XMLDocument document = XMLHelper.INSTANCE.load(xml);
+ XMLDocument document = hc.getXMLHelper().load(xml);
DataObject moduleObject = document.getRootObject();
List components = moduleObject.getList("component");
DataObject componentObject = (DataObject) components.get(0);
@@ -147,6 +147,20 @@
streamHelper.saveObject(componentObject, streamWriter);
streamWriter.flush();
Assert.assertTrue(writer.toString().indexOf("myAttr=\"helloworld.HelloWorldImpl\"")!=-1);
+ }
+
+ public void testSaveSequence() throws IOException, XMLStreamException {
+ DataObject quote = hc.getDataFactory().create("http://www.example.com/mixed", "MixedQuote");
+ quote.setString("symbol", "fbnt");
+ quote.getSequence().addText(0, "testing");
+ quote.getSequence().addText("more testing");
+
+ StringWriter writer = new StringWriter();
+ XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(writer);
+ streamHelper.saveObject(quote, streamWriter);
+ streamWriter.flush();
+ //System.out.println(writer);
+ assertTrue(writer.toString().indexOf("<symbol>fbnt</symbol>") != -1);
}
protected void tearDown() throws Exception {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org