You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2006/11/05 03:57:55 UTC

svn commit: r471347 - in /webservices/axis2/branches/java/1_1/modules/samples/databinding: ./ client/src/samples/databinding/ service/src/samples/databinding/

Author: dims
Date: Sat Nov  4 18:57:53 2006
New Revision: 471347

URL: http://svn.apache.org/viewvc?view=rev&rev=471347
Log:
- Added a JDOM Based client that illustrates the OMDataSource
- Excluded from build because it needs 3 files for bridging stax/jdom from 
  https://svn.codehaus.org/woodstox/utils/jdom/
- Clean up imports


Added:
    webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java
Modified:
    webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml
    webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java
    webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java

Modified: webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml?view=diff&rev=471347&r1=471346&r2=471347
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml (original)
+++ webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml Sat Nov  4 18:57:53 2006
@@ -136,9 +136,10 @@
 
         <!--now compile the stub classes-->
         <javac debug="on" memoryMaximumSize="256m" memoryInitialSize="256m" fork="true"
+               srcdir="${client.target}/src"
+               excludes="**/StockClient2*.*"
                destdir="${client.target}/classes"
                classpathref="axis2.classpath">
-            <src path="${client.target}/src"/>
         </javac>
 
         <!--jar the compiled stuff-->

Modified: webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java?view=diff&rev=471347&r1=471346&r2=471347
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java (original)
+++ webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java Sat Nov  4 18:57:53 2006
@@ -17,16 +17,18 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.impl.builder.SAXOMBuilder;
 import org.exolab.castor.xml.Marshaller;
-import org.exolab.castor.xml.Unmarshaller;
 import org.exolab.castor.xml.UnmarshalHandler;
+import org.exolab.castor.xml.Unmarshaller;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 import samples.databinding.data.GetStockQuote;
 import samples.databinding.data.GetStockQuoteResponse;
 
-import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.sax.SAXResult;
+
+import javanet.staxutils.StAXSource;
 public final class StockClient {
     public static void main(String[] args) throws Exception {
         if (args.length != 2) {
@@ -50,8 +52,8 @@
                 builder.getRootElement());
 
 
-        javanet.staxutils.StAXSource staxSource =
-                new javanet.staxutils.StAXSource(response.getXMLStreamReader());
+        StAXSource staxSource =
+                new StAXSource(response.getXMLStreamReader());
         Unmarshaller unmarshaller = new Unmarshaller(GetStockQuoteResponse.class);
         UnmarshalHandler unmarshalHandler = unmarshaller.createHandler();
         GetStockQuoteResponse stockQuoteResponse;

Added: webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java?view=auto&rev=471347
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java (added)
+++ webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java Sat Nov  4 18:57:53 2006
@@ -0,0 +1,103 @@
+package samples.databinding;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMDataSource;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.impl.builder.SAXOMBuilder;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.jdom.input.StAXBuilder;
+import org.jdom.output.SAXOutputter;
+import org.jdom.output.StAXOutputter;
+import org.jdom.output.XMLOutputter;
+import org.jdom.xpath.XPath;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.Writer;
+public final class StockClient2 {
+    public static void main(String[] args) throws Exception {
+        if (args.length != 2) {
+            System.err.println("Usage: StockClient <url> <symbol>");
+            return;
+        }
+        final String url = args[0];
+        final String symbol = args[1];
+
+        System.out.println();
+        System.out.println("Getting Stock Quote for " + symbol);
+
+        StockQuoteServiceStub stub =
+                new StockQuoteServiceStub(url);
+        stub._getServiceClient().getOptions().setAction("getStockQuote");
+
+        Element element1 = new Element(
+            "getStockQuote", "nsl", "http://w3.ibm.com/schemas/services/2002/11/15/stockquote");
+        Element element2 = new Element("symbol");
+        element2.addContent(symbol);
+        element1.addContent(element2);
+
+        OMFactory factory = OMAbstractFactory.getOMFactory();
+        org.apache.axiom.om.OMDataSource src = new JDOMDataSource(element1);
+        org.apache.axiom.om.OMNamespace appns = factory.createOMNamespace("http://w3.ibm.com/schemas/services/2002/11/15/stockquote", "ns1");
+        OMElement child = factory.createOMElement(src, "getStockQuote", appns);
+
+        OMElement response = stub.getStockQuote(child);
+
+        StAXBuilder builder = new StAXBuilder();
+        Document doc = builder.build(response.getXMLStreamReader());
+        XPath path = XPath.newInstance("//price");
+        Element price = (Element) path.selectSingleNode(doc.getRootElement());
+        System.out.println("Price = " + price.getText());
+    }
+
+    private static class JDOMDataSource implements OMDataSource {
+        private final Element data;
+
+        private JDOMDataSource(Element data) {
+            this.data = data;
+        }
+
+        public void serialize(OutputStream output, OMOutputFormat format) throws XMLStreamException {
+            try {
+                XMLOutputter outputter = new XMLOutputter();
+                outputter.output(data, output);
+            } catch (IOException e) {
+                throw new XMLStreamException(e);
+            }
+        }
+
+        public void serialize(Writer writer, OMOutputFormat format) throws XMLStreamException {
+            try {
+                XMLOutputter outputter = new XMLOutputter();
+                outputter.output(data, writer);
+            } catch (IOException e) {
+                throw new XMLStreamException(e);
+            }
+        }
+
+        public void serialize(XMLStreamWriter xmlWriter) throws XMLStreamException {
+            StAXOutputter outputter = new StAXOutputter(xmlWriter);
+            try {
+                outputter.outputFragment(data);
+            } catch (JDOMException e) {
+                throw new XMLStreamException(e);
+            }
+        }
+
+        public XMLStreamReader getReader() throws XMLStreamException {
+            SAXOMBuilder builder = new SAXOMBuilder();
+            SAXOutputter outputter = new SAXOutputter();
+            outputter.setContentHandler(builder);
+            outputter.setEntityResolver(builder);
+            outputter.setDTDHandler(builder);
+            outputter.setEntityResolver(builder);
+            return builder.getRootElement().getXMLStreamReader();
+        }
+    }
+}

Modified: webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java?view=diff&rev=471347&r1=471346&r2=471347
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java (original)
+++ webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java Sat Nov  4 18:57:53 2006
@@ -5,23 +5,23 @@
  * by the Apache Axis2 version: 1.1-SNAPSHOT Nov 03, 2006 (06:54:07 EST)
  */
 package samples.databinding;
+import javanet.staxutils.StAXSource;
 import org.apache.axiom.om.impl.builder.SAXOMBuilder;
 import org.exolab.castor.xml.MarshalException;
 import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.UnmarshalHandler;
 import org.exolab.castor.xml.Unmarshaller;
 import org.exolab.castor.xml.ValidationException;
-import org.exolab.castor.xml.UnmarshalHandler;
-import org.xml.sax.SAXException;
 import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import samples.databinding.data.Change;
 import samples.databinding.data.GetStockQuote;
 import samples.databinding.data.GetStockQuoteResponse;
 import samples.databinding.data.LastTrade;
 import samples.databinding.data.Quote;
-import samples.databinding.data.Change;
 
-import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.sax.SAXResult;
 import java.io.IOException;
 import java.util.Calendar;
@@ -35,8 +35,8 @@
      * @param param0
      */
     public org.apache.axiom.om.OMElement getStockQuote(org.apache.axiom.om.OMElement param0) {
-        javanet.staxutils.StAXSource staxSource =
-                new javanet.staxutils.StAXSource(param0.getXMLStreamReader());
+        StAXSource staxSource =
+                new StAXSource(param0.getXMLStreamReader());
         Unmarshaller unmarshaller = new Unmarshaller(GetStockQuote.class);
         UnmarshalHandler unmarshalHandler = unmarshaller.createHandler();
         GetStockQuote stockQuote;
@@ -55,7 +55,7 @@
         quote.setVolume(5000);
 
         LastTrade lastTrade = new LastTrade();
-        lastTrade.setPrice(99.99);
+        lastTrade.setPrice(99);
         lastTrade.setDate(Calendar.getInstance().getTimeInMillis());
         quote.setLastTrade(lastTrade);
 



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