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