You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/10/17 20:13:30 UTC

svn commit: r585615 - in /incubator/tuscany/java/sca/modules/implementation-data/src: main/java/org/apache/tuscany/sca/implementation/data/jdbc/ main/java/org/apache/tuscany/sca/implementation/data/provider/ test/java/org/apache/tuscany/sca/implementat...

Author: rfeng
Date: Wed Oct 17 11:13:29 2007
New Revision: 585615

URL: http://svn.apache.org/viewvc?rev=585615&view=rev
Log:
Switch the JDBCResultSetStreamReader to use the base XmlTreeStreamReaderImpl

Added:
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/ResultSetXmlNodeImpl.java   (with props)
Modified:
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/JDBCResultSetStreamReader.java
    incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/provider/DATAInvoker.java
    incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATATestCase.java

Modified: incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/JDBCResultSetStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/JDBCResultSetStreamReader.java?rev=585615&r1=585614&r2=585615&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/JDBCResultSetStreamReader.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/JDBCResultSetStreamReader.java Wed Oct 17 11:13:29 2007
@@ -19,558 +19,35 @@
 
 package org.apache.tuscany.sca.implementation.data.jdbc;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
 import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 
-import javax.xml.namespace.NamespaceContext;
-import javax.xml.namespace.QName;
-import javax.xml.stream.Location;
 import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.sca.databinding.xml.XmlTreeStreamReaderImpl;
 
 /**
  * JDBCResultSetStreamReader perform streaming of database tables as XML
  *    
  * @version $Rev$ $Date$
  */
-public class JDBCResultSetStreamReader extends JDBCAbstractResultSetStreamReader implements XMLStreamReader {
-    private static final int START = -1;
-    private static final int START_RECORDSET_STATE = 0;
-    private static final int START_RECORD_STATE = 1;
-    private static final int START_ROW_STATE = 2;
-    private static final int ROW_CARACHTERS = 3;
-    private static final int END_ROW_STATE = 4;
-    private static final int END_RECORD_STATE = 5;
-    private static final int END_RECORDSET_STATE = 6;
-    private static final int END = 7;
-    
-    private Connection connection;
+public class JDBCResultSetStreamReader extends XmlTreeStreamReaderImpl {
     private ResultSet resultSet;
-    private ResultSetMetaData tableMetaData;
-    private String tableName;
-    
-    private int resultSetCursor=-1;
-    private int columnCursor=-1;
-    
-    private int resultSetSize=-1;
-    private int recordColumnSize=-1;
 
-    
-    private int state = START;
-    
-    public JDBCResultSetStreamReader(Connection connection, ResultSet resultSet) {
-        this.connection = connection;
+    /**
+     * @param root
+     */
+    public JDBCResultSetStreamReader(ResultSet resultSet) {
+        super(new ResultSetXmlNodeImpl(resultSet));
         this.resultSet = resultSet;
-        
-        init();
-    }
-    
-    private void init() {
-        try {
-            // retrieve table information
-            tableMetaData = resultSet.getMetaData();
-            tableName = tableMetaData.getTableName(1).toLowerCase();
-
-            // position the resultSet on the first row
-            resultSetSize = getResultSetSize();
-            recordColumnSize = tableMetaData.getColumnCount();
-        } catch (SQLException e) {
-            throw new RuntimeException("Error initializing JDBCStreamReader", e);
-        }
-
     }
     
-    private int getResultSetSize() {
-        if (resultSetSize == -1) {
-            String sqlCount = null;
-            PreparedStatement queryStatement = null;
-            ResultSet countResultSet = null;
-            
-            try {
-                sqlCount = "SELECT COUNT(*) FROM " + this.resultSet.getMetaData().getTableName(1);
-                queryStatement = connection.prepareStatement(sqlCount);
-                countResultSet = queryStatement.executeQuery();
-                
-                if(countResultSet.next()) {
-                    resultSetSize = countResultSet.getInt(1);
-                }
-            }catch(SQLException e) {
-                //ignore
-            }finally {
-                JDBCHelper.cleanupResources(null, queryStatement, countResultSet);
-            }
-        }
-        return resultSetSize;
-    }
-    
-    /**
-     * Close JDBC connection and any other resources associated
-     */
     @Override
     public void close() throws XMLStreamException {
-        JDBCHelper.cleanupResources(connection, null, resultSet);
-    }
-
-
-    public String getElementText() throws XMLStreamException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-
-    public int getEventType() {
-        return getCurrentParsingState();
-    }
-
-    public QName getName() {
-        QName elementName = null;
-        switch (state) {
-            case START_RECORDSET_STATE:
-            case END_RECORDSET_STATE: 
-                elementName = new QName(null, tableName + "_table");
-                break;
-            case START_RECORD_STATE:
-            case END_RECORD_STATE: 
-                elementName = new QName(null, tableName);
-                break;
-            case START_ROW_STATE:
-            case END_ROW_STATE: 
-                try {
-                    elementName = new QName(null, tableMetaData.getColumnName(columnCursor));
-                } catch (SQLException e) {
-                    // ignore
-                }
-        }
-        return elementName;
-    }
-
-    public String getText() {
-        String text = null;
-        if(getCurrentParsingState() == CHARACTERS) {
-            try {
-                text = resultSet.getString(columnCursor);
-            } catch(SQLException e) {
-                //ignore, return null
-            }
-        }
-        return text;
-    }
-
-    public char[] getTextCharacters() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public int getTextCharacters(int arg0, char[] arg1, int arg2, int arg3) throws XMLStreamException {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public int getTextLength() {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public int getTextStart() {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public boolean hasName() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean hasNext() throws XMLStreamException {
-        if( getCurrentParsingState() == END_DOCUMENT) {
-            return false;
-        }
-        return true;
-    }
-
-    public boolean hasText() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isCharacters() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isEndElement() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isStartElement() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isWhiteSpace() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public int next() throws XMLStreamException {
-        boolean EOF;
-        boolean EOR;
-        
-        switch(state) {
-            case START : 
-                //check if there are any records on the resultSet
-                //otherwise move directly to END state
-                if(getResultSetSize()>0) {
-                    state++;
-                }else {
-                    state = END;
-                }
-                break;
-            case START_RECORDSET_STATE :
-                EOF = true;
-                //position on the first record
-                try {
-                    if(resultSet.next()); {
-                        //reset cursor
-                        this.resultSetCursor = 1;
-                        this.columnCursor = 1;
-                        EOF = false;
-                    }
-                } catch (SQLException e) {
-                    // ignore, we will move to next state
-                }
-                
-                if(!EOF) {
-                    state++;
-                } else {
-                    state = END_RECORDSET_STATE;
-                }
-                break;
-            case START_RECORD_STATE :
-                state++;
-                break;
-            case START_ROW_STATE :
-                state++;
-                break;
-            case ROW_CARACHTERS :
-                state++;
-                break;
-            case END_ROW_STATE :
-                EOR = true;
-                //check if there are more rows to be processed
-                if(columnCursor < recordColumnSize) {
-                    //move column cursor to next row
-                    columnCursor++;
-                    EOR = false;
-                }
-                
-                if(!EOR) {
-                    state = START_ROW_STATE;
-                } else {
-                    state = END_RECORD_STATE;
-                }
-                break;
-            case END_RECORD_STATE :
-                EOF = true;
-                //check if there are more records to be processed
-                try {
-                    if(resultSet.next()); {
-                        //reset cursor
-                        this.resultSetCursor++;
-                        this.columnCursor = 1;
-                        EOF = resultSetCursor > resultSetSize ? true : false;
-                    }
-                } catch (SQLException e) {
-                    // ignore, we will move to next state
-                }
-                
-                if(!EOF) {
-                    state = START_RECORD_STATE;
-                }else {
-                    state = END_RECORDSET_STATE;
-                }
-                break;
-            case END_RECORDSET_STATE : 
-                state++;
-                break;
-            case END:
-                break;
-                
-        }
-        //set the current event
-        return getCurrentParsingState();
-    }
-
-    public int nextTag() throws XMLStreamException {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public void require(int arg0, String arg1, String arg2) throws XMLStreamException {
-        // TODO Auto-generated method stub
-
-    }
-
-    
-    /**
-     * Helper methods
-     */
-   
-    /**
-     * Compute XMLStreamReader event based on internal event state
-     */
-    private int getCurrentParsingState() {
-        int returnEvent = -1;
-        
-        switch(state) {
-            case START : 
-                if(getResultSetSize()>0) {
-                    returnEvent = START_DOCUMENT;
-                }else {
-                    returnEvent = END_DOCUMENT;
-                }
-                break;
-            case START_RECORDSET_STATE :
-            case START_RECORD_STATE :
-            case START_ROW_STATE :
-                returnEvent = START_ELEMENT;
-                break;
-            case ROW_CARACHTERS:
-                returnEvent = CHARACTERS;
-                break;
-            case END_ROW_STATE : 
-            case END_RECORD_STATE :
-            case END_RECORDSET_STATE : 
-                returnEvent = END_ELEMENT;
-                break;
-            case END :
-                returnEvent = END_DOCUMENT;
+        try {
+            resultSet.close();
+        } catch (SQLException e) {
         }
-        //set the current event
-        return returnEvent;
-    }
-    
-
-    
-}
-
-class JDBCAbstractResultSetStreamReader implements XMLStreamReader {
-    public void close() throws XMLStreamException {
-    }
-
-    public int getAttributeCount() {
-        return 0;
-    }
-
-    public String getAttributeLocalName(int arg0) {
-        return null;
-    }
-
-    public QName getAttributeName(int arg0) {
-        return null;
-    }
-
-    public String getAttributeNamespace(int arg0) {
-        return null;
-    }
-
-    public String getAttributePrefix(int arg0) {
-        return null;
-    }
-
-    public String getAttributeType(int arg0) {
-        return null;
-    }
-
-    public String getAttributeValue(int arg0) {
-        return null;
-    }
-
-    public String getAttributeValue(String arg0, String arg1) {
-        return null;
-    }
-
-    public String getCharacterEncodingScheme() {
-        return null;
-    }
-
-    public String getElementText() throws XMLStreamException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getEncoding() {
-        return null;
-    }
-
-    public int getEventType() {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public String getLocalName() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public Location getLocation() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public QName getName() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public NamespaceContext getNamespaceContext() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public int getNamespaceCount() {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public String getNamespacePrefix(int arg0) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getNamespaceURI() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getNamespaceURI(String arg0) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getNamespaceURI(int arg0) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getPIData() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getPITarget() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getPrefix() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public Object getProperty(String arg0) throws IllegalArgumentException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public String getText() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public char[] getTextCharacters() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public int getTextCharacters(int arg0, char[] arg1, int arg2, int arg3) throws XMLStreamException {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public int getTextLength() {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public int getTextStart() {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public String getVersion() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public boolean hasName() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean hasNext() throws XMLStreamException {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean hasText() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isAttributeSpecified(int arg0) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isCharacters() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isEndElement() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isStandalone() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isStartElement() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public boolean isWhiteSpace() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    public int next() throws XMLStreamException {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public int nextTag() throws XMLStreamException {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    public void require(int arg0, String arg1, String arg2) throws XMLStreamException {
-        // TODO Auto-generated method stub
-
-    }
-
-    public boolean standaloneSet() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-    
+    }    
 }
 

Added: incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/ResultSetXmlNodeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/ResultSetXmlNodeImpl.java?rev=585615&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/ResultSetXmlNodeImpl.java (added)
+++ incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/ResultSetXmlNodeImpl.java Wed Oct 17 11:13:29 2007
@@ -0,0 +1,244 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.implementation.data.jdbc;
+
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.databinding.xml.SimpleXmlNodeImpl;
+import org.apache.tuscany.sca.databinding.xml.XmlNode;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ResultSetXmlNodeImpl implements XmlNode {
+    private static final String NS = "";
+    private static final QName RESULT_SET = new QName(NS, "resultSet");
+    private static final QName RECORD = new QName(NS, "record");
+    private static final QName COLUMN = new QName(NS, "column");
+    private static final QName NAME = new QName(NS, "name");
+
+    private ResultSet resultSet;
+    private String[] columnNames;
+
+    /**
+     * @param resultSet
+     */
+    public ResultSetXmlNodeImpl(ResultSet resultSet) {
+        super();
+        this.resultSet = resultSet;
+        try {
+            ResultSetMetaData metaData = resultSet.getMetaData();
+            columnNames = new String[metaData.getColumnCount()];
+            for (int i = 0; i < columnNames.length; i++) {
+                columnNames[i] = metaData.getColumnName(i + 1);
+            }
+        } catch (SQLException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    /**
+     * @see org.apache.tuscany.sca.databinding.xml.XmlNode#attributes()
+     */
+    public List<XmlNode> attributes() {
+        return Collections.emptyList();
+    }
+    
+    public Type getType() {
+        return Type.ELEMENT;
+    }
+
+
+    /**
+     * @see org.apache.tuscany.sca.databinding.xml.XmlNode#children()
+     */
+    public Iterator<XmlNode> children() {
+        return new ResultSetIteraror();
+    }
+
+    private class ResultSetIteraror implements Iterator<XmlNode> {
+        private Boolean hasNext;
+
+        public ResultSetIteraror() {
+        }
+
+        public boolean hasNext() {
+            try {
+                if (hasNext == null) {
+                    hasNext = resultSet.next();
+                }
+                return hasNext;
+            } catch (SQLException e) {
+                throw new IllegalStateException(e);
+            }
+        }
+
+        public XmlNode next() {
+            hasNext();
+            hasNext = null;
+            return new RecordXmlNodeImpl();
+        }
+
+        public void remove() {
+        }
+    }
+
+    /**
+     * @see org.apache.tuscany.sca.databinding.xml.XmlNode#getName()
+     */
+    public QName getName() {
+        return RESULT_SET;
+    }
+
+    /**
+     * @see org.apache.tuscany.sca.databinding.xml.XmlNode#getValue()
+     */
+    public String getValue() {
+        return null;
+    }
+
+    /**
+     * @see org.apache.tuscany.sca.databinding.xml.XmlNode#namespaces()
+     */
+    public Map<String, String> namespaces() {
+        return Collections.emptyMap();
+    }
+
+    private class RecordXmlNodeImpl extends XmlNodeImpl {
+        int index = 0;
+
+        public Iterator<XmlNode> children() {
+            return new Iterator<XmlNode>() {
+
+                public boolean hasNext() {
+                    return index < columnNames.length;
+                }
+
+                public XmlNode next() {
+                    return new ColumnXmlNodeImpl(index++);
+                }
+
+                public void remove() {
+                }
+
+            };
+        }
+
+        public QName getName() {
+            return RECORD;
+        }
+
+    }
+
+    private class ColumnXmlNodeImpl extends XmlNodeImpl {
+        private int index;
+
+        /**
+         * @param index
+         */
+        public ColumnXmlNodeImpl(int index) {
+            super();
+            this.index = index;
+        }
+
+        public List<XmlNode> attributes() {
+            XmlNode attr = new SimpleXmlNodeImpl(NAME, columnNames[index], XmlNode.Type.ATTRIBUTE);
+            return Arrays.asList(attr);
+        }
+
+        public Iterator<XmlNode> children() {
+            XmlNode[] nodes = {new ValueXmlNodeImpl(index)};
+            return Arrays.asList(nodes).iterator();
+        }
+
+        public QName getName() {
+            return COLUMN;
+        }
+
+    }
+
+    private class ValueXmlNodeImpl extends XmlNodeImpl {
+        private int index;
+
+        /**
+         * @param index
+         */
+        public ValueXmlNodeImpl(int index) {
+            super();
+            this.index = index;
+        }
+
+        public String getValue() {
+            try {
+                return String.valueOf(resultSet.getObject(index + 1));
+            } catch (SQLException e) {
+                throw new IllegalStateException(e);
+            }
+        }
+
+        public Type getType() {
+            return Type.CHARACTERS;
+        }
+
+    }
+
+    private static abstract class XmlNodeImpl implements XmlNode {
+
+        public List<XmlNode> attributes() {
+            return Collections.emptyList();
+        }
+
+        public Iterator<XmlNode> children() {
+            return null;
+        }
+
+        public QName getName() {
+            return null;
+        }
+
+        public String getValue() {
+            return null;
+        }
+
+        public boolean isLeaf() {
+            return false;
+        }
+
+        public Map<String, String> namespaces() {
+            return Collections.emptyMap();
+        }
+
+        public Type getType() {
+            return Type.ELEMENT;
+        }
+
+    }
+
+
+}

Propchange: incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/ResultSetXmlNodeImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/jdbc/ResultSetXmlNodeImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/provider/DATAInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/provider/DATAInvoker.java?rev=585615&r1=585614&r2=585615&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/provider/DATAInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-data/src/main/java/org/apache/tuscany/sca/implementation/data/provider/DATAInvoker.java Wed Oct 17 11:13:29 2007
@@ -112,7 +112,7 @@
                 //default we leave the connection open to pass to the JDBCStreamReader
             }
 
-            msg.setBody(new JDBCResultSetStreamReader(connection, resultSet));
+            msg.setBody(new JDBCResultSetStreamReader(resultSet));
             return msg;
         }
     }

Modified: incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATATestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATATestCase.java?rev=585615&r1=585614&r2=585615&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATATestCase.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-data/src/test/java/org/apache/tuscany/sca/implementation/data/DATATestCase.java Wed Oct 17 11:13:29 2007
@@ -19,14 +19,11 @@
 
 package org.apache.tuscany.sca.implementation.data;
 
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamReader;
 
 import junit.framework.TestCase;
 
+import org.apache.tuscany.sca.databinding.xml.XMLStreamReader2String;
 import org.apache.tuscany.sca.host.embedded.SCADomain;
 
 /**
@@ -59,33 +56,9 @@
         System.out.println("testGet");
         
         XMLStreamReader reader = dataService.get(null);
-
-        QName element = null;
-        reader.next();
-        int increment = 0;
-        while (reader.hasNext()) {
-            int event = reader.getEventType();
-            switch (event) {
-                case START_ELEMENT:
-                    increment= increment + 3;
-                    element = reader.getName();
-                    System.out.println(fillSpace(increment) + element.toString());
-                    break;
-                case XMLStreamConstants.CHARACTERS:
-                    System.out.println(fillSpace(increment) + " :: " + reader.getText() + " :: ");
-                    break;
-                case XMLStreamConstants.END_ELEMENT:
-                    element = reader.getName();
-                    System.out.println(fillSpace(increment) + element.toString());
-                    increment = increment - 3;
-                    break;        
-            }
-            
-            //Read the next element
-            if (reader.hasNext()) {
-                reader.next();
-            }
-        }
+        String xml = new XMLStreamReader2String().transform(reader, null);
+        System.out.println(xml);
+        reader.close();
     }
     
     public void testGetByID() throws Exception {
@@ -93,15 +66,9 @@
 
         XMLStreamReader reader = dataService.get(companyID.toString());
         assertNotNull(reader);
-    }
-    
-    private String fillSpace(int number){
-        StringBuffer sb = new StringBuffer(number);
-        for(int i=0; i<number; i++) {
-            sb.append(" ");
-        }
-        
-        return sb.toString();
+        String xml = new XMLStreamReader2String().transform(reader, null);
+        System.out.println(xml);
+        reader.close();        
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org