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