snichol     2003/06/12 10:37:18

  Modified:    java/samples/messaging POProcessor.java SendMessage.java
  Log:
  Add some "real" processing to POProcessor.
  Added copyright, etc.
  
  Revision  Changes    Path
  1.4       +129 -6    xml-soap/java/samples/messaging/POProcessor.java
  
  Index: POProcessor.java
  ===================================================================
  RCS file: /home/cvs/xml-soap/java/samples/messaging/POProcessor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- POProcessor.java  16 Jan 2001 15:22:42 -0000      1.3
  +++ POProcessor.java  12 Jun 2003 17:37:18 -0000      1.4
  @@ -1,22 +1,145 @@
  +/*
  + * The Apache Software License, Version 1.1
  + *
  + *
  + * Copyright (c) 2000 The Apache Software Foundation.  All rights 
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer. 
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution,
  + *    if any, must include the following acknowledgment:  
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowledgment may appear in the software itself,
  + *    if and wherever such third-party acknowledgments normally appear.
  + *
  + * 4. The names "SOAP" and "Apache Software Foundation" must
  + *    not be used to endorse or promote products derived from this
  + *    software without prior written permission. For written 
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache",
  + *    nor may "Apache" appear in their name, without prior written
  + *    permission of the Apache Software Foundation.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation and was
  + * originally based on software copyright (c) 2000, International
  + * Business Machines, Inc., http://www.apache.org.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + */
   package samples.messaging;
   
  -import java.io.*;
  +import java.util.Vector;
  +import org.w3c.dom.Attr;
  +import org.w3c.dom.Element;
  +import org.w3c.dom.Node;
  +import org.w3c.dom.NodeList;
   import org.apache.soap.*;
   import org.apache.soap.rpc.SOAPContext;
  -import javax.mail.MessagingException;
   
   /**
    * This class receives the PO via a "purchaseOrder" method and does
    * something with it.
    *
  - * @author Sanjiva Weerawarana <[EMAIL PROTECTED]>
  + * @author Sanjiva Weerawarana &lt;[EMAIL PROTECTED]&gt;
  + * @author Scott Nichol &lt;[EMAIL PROTECTED]&gt;
    */
   public class POProcessor {
     public void purchaseOrder (Envelope env, SOAPContext reqCtx, 
                                              SOAPContext resCtx)
  -    throws MessagingException, IOException {
  -    resCtx.setRootPart("OK thanks, got the PO; we'll contact you when ready.",
  -        "text/xml");
  +    throws Exception {
  +
  +    String orderDate = null;
  +    Node shipTo = null;
  +    Node billTo = null;
  +    Node items = null;
  +
  +    Body b = env.getBody();
  +    Vector entries = b.getBodyEntries();
  +    for (int i = 0; i < entries.size(); i++) {
  +      Element e = (Element) entries.elementAt(i);
  +      String nodeName = e.getNodeName();
  +      if (nodeName.equals("purchaseOrder")) {
  +System.out.println("Have purchaseOrder");
  +        NodeList children = e.getChildNodes();
  +        for (int j = 0; j < children.getLength(); j++) {
  +          Node n = children.item(j);
  +System.out.println("Node " + j + " type " + n.getNodeType());
  +          switch (n.getNodeType()) {
  +            case Node.ELEMENT_NODE:
  +System.out.println("Element " + n.getNodeName());
  +              if (n.getNodeName().equals("shipTo"))
  +                shipTo = n;
  +              else if (n.getNodeName().equals("billTo"))
  +                billTo = n;
  +              else if (n.getNodeName().equals("items"))
  +                items = n;
  +              else if (!n.getNodeName().equals("comment"))
  +                throw new Exception("Unknown element name: " + n.getNodeName());
  +              break;
  +            case Node.ATTRIBUTE_NODE:
  +System.out.println("Attribute " + n.getNodeName());
  +              if (n.getNodeName().equals("orderDate"))
  +                orderDate = ((Attr) n).getValue();
  +              break;
  +          }
  +        }
  +        if (orderDate == null)
  +          orderDate = e.getAttribute("orderDate");
  +      }
  +    }
  +
  +    if (orderDate == null)
  +      throw new Exception("No order date specified");
  +    if (shipTo == null)
  +      throw new Exception("No ship to specified");
  +    if (billTo == null)
  +      throw new Exception("No bill to specified");
  +    if (items == null)
  +      throw new Exception("No items specified");
  +
  +    StringBuffer response = new StringBuffer(1024);
  +    response.append(Constants.XML_DECL)
  +            .append("<SOAP-ENV:Envelope 
xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\";>")
  +            .append("<SOAP-ENV:Body>")
  +            .append("<purchaseOrderResponse xmlns=\"urn:po-processor\">")
  +            .append("<return>")
  +            .append("OK thanks, got the PO for orderDate ")
  +            .append(orderDate)
  +            .append("; we'll contact you when ready.")
  +            .append("</return>")
  +            .append("</purchaseOrderResponse>")
  +            .append("</SOAP-ENV:Body>")
  +            .append("</SOAP-ENV:Envelope>");
  +     
  +    resCtx.setRootPart(response.toString(), "text/xml");
     }
   
     public void bustedRequest (Envelope env, SOAPContext reqCtx, 
  
  
  
  1.4       +56 -0     xml-soap/java/samples/messaging/SendMessage.java
  
  Index: SendMessage.java
  ===================================================================
  RCS file: /home/cvs/xml-soap/java/samples/messaging/SendMessage.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SendMessage.java  23 Mar 2001 07:48:30 -0000      1.3
  +++ SendMessage.java  12 Jun 2003 17:37:18 -0000      1.4
  @@ -1,3 +1,59 @@
  +/*
  + * The Apache Software License, Version 1.1
  + *
  + *
  + * Copyright (c) 2000 The Apache Software Foundation.  All rights 
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer. 
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution,
  + *    if any, must include the following acknowledgment:  
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowledgment may appear in the software itself,
  + *    if and wherever such third-party acknowledgments normally appear.
  + *
  + * 4. The names "SOAP" and "Apache Software Foundation" must
  + *    not be used to endorse or promote products derived from this
  + *    software without prior written permission. For written 
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache",
  + *    nor may "Apache" appear in their name, without prior written
  + *    permission of the Apache Software Foundation.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation and was
  + * originally based on software copyright (c) 2000, International
  + * Business Machines, Inc., http://www.apache.org.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + */
   package samples.messaging;
   
   import java.io.*;
  
  
  

Reply via email to