Author: beckerdo
Date: Wed Jan 21 09:14:42 2009
New Revision: 736344

URL: http://svn.apache.org/viewvc?rev=736344&view=rev
Log:
Tuscany 2768 - sample showing web services Holder support (input/output 
parameters)

Added:
    tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/
    tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java
   (with props)
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java
   (with props)
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java
   (with props)
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java
   (with props)
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java
   (with props)
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java
   (with props)
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java
   (with props)
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java
   (with props)
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java
   (with props)
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite
    
tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl
    tuscany/java/sca/samples/helloworld-ws-service/src/test/java/org/
    tuscany/java/sca/samples/helloworld-ws-service/src/test/java/org/example/
Modified:
    tuscany/branches/sca-java-1.x/samples/pom.xml
    tuscany/java/sca/samples/helloworld-ws-service/README
    tuscany/java/sca/samples/helloworld-ws-service/build.xml
    tuscany/java/sca/samples/helloworld-ws-service/pom.xml

Modified: tuscany/branches/sca-java-1.x/samples/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/samples/pom.xml?rev=736344&r1=736343&r2=736344&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/samples/pom.xml (original)
+++ tuscany/branches/sca-java-1.x/samples/pom.xml Wed Jan 21 09:14:42 2009
@@ -86,6 +86,7 @@
                 <module>helloworld-ws-reference-secure</module>
                 <module>helloworld-ws-sdo</module>
                 <module>helloworld-ws-sdo-webapp</module>
+                <module>holder-ws-service</module>
                 <module>implementation-composite</module>
                 <module>implementation-crud</module>
                 <module>implementation-crud-extension</module>

Modified: tuscany/java/sca/samples/helloworld-ws-service/README
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/README?rev=736344&r1=736343&r2=736344&view=diff
==============================================================================
--- tuscany/java/sca/samples/helloworld-ws-service/README (original)
+++ tuscany/java/sca/samples/helloworld-ws-service/README Wed Jan 21 09:14:42 
2009
@@ -1,6 +1,21 @@
-Hello World Web Service Service Sample
+Holder Pattern Service Sample
 ======================================
-This sample demonstrates an SCA service that uses a web service binding. 
+This sample demonstrates an SCA service that uses a web service binding. The
+web service binding has been generated from a given WSDL file:
+   src/main/resources/wsdl/orderservice.wsdl
+The generated binding has been placed in src/main/java/org/examle/orderservice
+and was generated via the JDK tool wsimport and the command:
+    wsimport -d orderservice -keep orderservice.wsdl
+
+The interesting feature of this sample is that the generated service interface,
+OrderService, contains a method with the signature:
+    public void reviewOrder(
+        @WebParam(name = "myData", targetNamespace = "", mode = 
WebParam.Mode.INOUT)
+        javax.xml.ws.Holder<Order> orderData);
+The orderData parameter is an input/output parameter that is provided by the 
caller,
+updated by the service, and returned to the caller. The business object is 
updated
+in place, a common pattern in web services, and not returned as a response. 
Tuscany
+can handle limited instances of this pattern.
 
 The README in the samples directory (the directory above this) provides 
 general instructions about building and running samples. Take a look there 
@@ -13,43 +28,38 @@
 
 OR if you don't have ant, on Windows do
 
-java -cp 
..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-ws-service.jar 
helloworld.HelloWorldServer
+java -cp 
..\..\lib\tuscany-sca-manifest.jar;target\sample-holder-ws-service.jar 
org.example.orderservice.OrderServiceTestCase
 
 and on *nix do
 
-java -cp 
../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-ws-service.jar 
helloworld.HelloWorldServer
-
-Now the server is started you can use the helloworld-ws-reference sample to 
-exercise it. 
+java -cp 
../../lib/tuscany-sca-manifest.jar:target/sample-holder-ws-service.jar 
org.example.orderservice.OrderServiceTestCase
 
 Sample Overview
 ---------------
 The sample provides a single component that is wired to a service with a 
 web service binding.
 
-helloworld-ws-service/
+holder-ws-service/
   src/
     main/
       java/
-        helloworld/
-          HelloWorldService.java          - interface description for 
+        org/
+           example/
+              orderservice
+                 *.java                   - Web service binding generated from 
                                             HelloWorldServiceComponent
-          HelloWorldImpl.java             - component implementation
-          HelloWorldServer.java           - starts the SCA Runtime and 
-                                            deploys the helloworldws
-                                            .composite and then waits for the
-                                            service to be called via web 
services
       resources/
         wsdl/
-          helloworld.wsdl                 - the service description that 
describes
+          orderservice.wsdl               - the service description that 
describes
                                             the exposed service
-        helloworldws.composite            - the SCA assembly for this sample
+        orderws.composite                 - the SCA assembly that uses this 
service
     test/
       java/
         helloworld/
-          HelloWorldServerTestCase.java   - JUnit test case 
-  helloworld-ws-service.png               - a pictorial representation of the 
-                                            sample .composite file
+          org/
+             example/
+                orderservice/
+                   OrderServiceTestCase.java - JUnit test case 
   build.xml                               - the Ant build file
   pom.xml                                 - the Maven build file        
 
@@ -58,7 +68,7 @@
 With the binary distribution the sample can be built and run using Ant using 
the 
 following commands
 
-cd helloworld-ws-service
+cd holder-ws-service
 ant compile
 ant run
 
@@ -77,7 +87,7 @@
 To exercise the service run up the helloworld-ws-reference sample. Take a look 
at 
 the README in that sample and you will see you need the following commands
 
-cd helloworld-ws-reference
+cd holder-ws-reference
 ant run
 
 Building And Running The Sample Using Maven 
@@ -87,55 +97,44 @@
 ws-reference sample as Maven includes a simple ping test to make sure that the
 service is available
 
-cd helloworld-ws-service
+cd holder-ws-service
 mvn
 
 You should see the following output from the test phase.
-
 -------------------------------------------------------
  T E S T S
 -------------------------------------------------------
-Running helloworld.HelloWorldServerTestCase
-14-Jan-2008 14:19:57 org.apache.catalina.core.StandardEngine start
-INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
-14-Jan-2008 14:19:57 org.apache.catalina.startup.ContextConfig defaultWebConfig
-INFO: No default web.xml
-14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register
-WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd
-14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register
-WARNING: Could not get url for 
/javax/servlet/jsp/resources/web-jsptaglibrary_1_
-1.dtd
-14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register
-WARNING: Could not get url for 
/javax/servlet/jsp/resources/web-jsptaglibrary_1_
-2.dtd
-14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register
-WARNING: Could not get url for 
/javax/servlet/jsp/resources/web-jsptaglibrary_2_
-0.xsd
-14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register
-WARNING: Could not get url for 
/javax/servlet/resources/j2ee_web_services_1_1.xs
-d
-14-Jan-2008 14:19:57 org.apache.coyote.http11.Http11Protocol init
-INFO: Initializing Coyote HTTP/1.1 on http-8085
-14-Jan-2008 14:19:57 org.apache.coyote.http11.Http11Protocol start
-INFO: Starting Coyote HTTP/1.1 on http-8085
-14-Jan-2008 14:19:57 org.apache.tuscany.sca.http.tomcat.TomcatServer 
addServletM
-apping
-INFO: Added Servlet mapping: http://L3AW203:8085/HelloWorldService
-14-Jan-2008 14:19:57 org.apache.coyote.http11.Http11Protocol destroy
-INFO: Stopping Coyote HTTP/1.1 on http-8085
-14-Jan-2008 14:19:58 org.apache.catalina.core.StandardEngine start
-INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
-14-Jan-2008 14:19:58 org.apache.catalina.startup.ContextConfig defaultWebConfig
+Running org.example.orderservice.OrderServiceTestCase
+Jan 21, 2009 9:31:11 AM org.apache.tuscany.sca.node.impl.NodeImpl <init>
+INFO: Creating node: META-INF/sca-deployables/orderws.composite
+Jan 21, 2009 9:31:13 AM org.apache.tuscany.sca.node.impl.NodeImpl configureNode
+INFO: Loading contribution: 
file:/E:/t/branches/sca-java-1.x/samples/holder-ws-webservice/target/classes/
+Jan 21, 2009 9:31:14 AM org.apache.tuscany.sca.node.impl.NodeImpl configureNode
+INFO: Loading composite: 
file:/E:/t/branches/sca-java-1.x/samples/holder-ws-webservice/target/classes/META-INF/sca-deployables/orderws.composite
+Jan 21, 2009 9:31:14 AM org.apache.tuscany.sca.node.impl.NodeImpl start
+INFO: Starting node: META-INF/sca-deployables/orderws.composite
+- No JMS connection factories are defined.Will not listen for any JMS messages
+Jan 21, 2009 9:31:15 AM org.apache.catalina.core.StandardEngine start
+INFO: Starting Servlet Engine: Apache Tomcat/6.0.14
+Jan 21, 2009 9:31:15 AM org.apache.catalina.startup.ContextConfig 
defaultWebConfig
 INFO: No default web.xml
-14-Jan-2008 14:19:58 org.apache.coyote.http11.Http11Protocol init
+Jan 21, 2009 9:31:15 AM org.apache.coyote.http11.Http11Protocol init
 INFO: Initializing Coyote HTTP/1.1 on http-8085
-14-Jan-2008 14:19:58 org.apache.coyote.http11.Http11Protocol start
+Jan 21, 2009 9:31:15 AM org.apache.coyote.http11.Http11Protocol start
 INFO: Starting Coyote HTTP/1.1 on http-8085
-14-Jan-2008 14:19:58 org.apache.tuscany.sca.http.tomcat.TomcatServer 
addServletM
-apping
-INFO: Added Servlet mapping: http://L3AW203:8085/HelloWorldService
-14-Jan-2008 14:19:59 org.apache.coyote.http11.Http11Protocol destroy
+- No JMS connection factories are defined.Will not listen for any JMS messages
+Jan 21, 2009 9:31:15 AM org.apache.tuscany.sca.http.tomcat.TomcatServer 
addServletMapping
+INFO: Added Servlet mapping: http://T602010:8085/OrderService
+>>> Order 
submitted=Order[customerId=cust1234,orderId=0,total=50.0,status=Created]
+>>> OrderService.reviewOrder 
return=Order[customerId=cust1234,orderId=0,total=50.0,status=Approved]
+>>> Order 
returned=Order[customerId=cust1234,orderId=0,total=50.0,status=Approved]
+Jan 21, 2009 9:31:16 AM org.apache.tuscany.sca.node.impl.NodeImpl stop
+INFO: Stopping node: META-INF/sca-deployables/orderws.composite
+Jan 21, 2009 9:31:17 AM org.apache.tuscany.sca.http.tomcat.TomcatServer 
removeServletMapping
+INFO: Removed Servlet mapping: http://T602010:8085/OrderService
+Jan 21, 2009 9:31:17 AM org.apache.coyote.http11.Http11Protocol destroy
 INFO: Stopping Coyote HTTP/1.1 on http-8085
-Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.75 sec
 
-This shows that the Junit test cases have run successfully. 
+Note the console output with ">>>" prefix. This shows that an order was 
submitted in
+the "Created" state, handled by the OrderService reviewOrder method, and 
returned in
+the "Approved" state. This shows that the Junit test cases have run 
successfully. 

Modified: tuscany/java/sca/samples/helloworld-ws-service/build.xml
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/build.xml?rev=736344&r1=736343&r2=736344&view=diff
==============================================================================
--- tuscany/java/sca/samples/helloworld-ws-service/build.xml (original)
+++ tuscany/java/sca/samples/helloworld-ws-service/build.xml Wed Jan 21 
09:14:42 2009
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.    
 -->
-<project name="helloworld-ws-service" default="compile">
-    <property name="test.class" value="helloworld.HelloWorldServer" />
-       <property name="test.jar"   value="sample-helloworld-ws-service.jar" />
+<project name="holder-ws-service" default="compile">
+    <property name="test.class" 
value="org.example.orderservice.OrderServiceTestCase" />
+       <property name="test.jar"   value="sample-holder-ws-service.jar" />
        
     <target name="init">
         <mkdir dir="target/classes"/>

Modified: tuscany/java/sca/samples/helloworld-ws-service/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/pom.xml?rev=736344&r1=736343&r2=736344&view=diff
==============================================================================
--- tuscany/java/sca/samples/helloworld-ws-service/pom.xml (original)
+++ tuscany/java/sca/samples/helloworld-ws-service/pom.xml Wed Jan 21 09:14:42 
2009
@@ -22,11 +22,11 @@
     <parent>
         <groupId>org.apache.tuscany.sca</groupId>
         <artifactId>tuscany-sca</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>1.5-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
-    <artifactId>sample-helloworld-ws-service</artifactId>
-    <name>Apache Tuscany SCA HelloWorld Web Service Sample</name>
+    <artifactId>sample-holder-ws-service</artifactId>
+    <name>Apache Tuscany SCA Holder Input/Output Web Service Sample</name>
 
     <repositories>
        <repository>
@@ -39,28 +39,28 @@
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-host-embedded</artifactId>
-            <version>2.0-SNAPSHOT</version>
+            <version>1.5-SNAPSHOT</version>
             <scope>compile</scope>            
         </dependency>
         
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-implementation-java-runtime</artifactId>
-            <version>2.0-SNAPSHOT</version>
+            <version>1.5-SNAPSHOT</version>
             <scope>runtime</scope>
         </dependency>
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-binding-ws-axis2</artifactId>
-            <version>2.0-SNAPSHOT</version>
+            <version>1.5-SNAPSHOT</version>
             <scope>runtime</scope>
         </dependency>
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-host-tomcat</artifactId>
-            <version>2.0-SNAPSHOT</version>
+            <version>1.5-SNAPSHOT</version>
             <scope>runtime</scope>
         </dependency>    
 

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,56 @@
+
+package org.example.orderservice;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.example.orderservice package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+...@xmlregistry
+public class ObjectFactory {
+
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of 
schema derived classes for package: org.example.orderservice
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {...@link ReviewOrderResponse }
+     * 
+     */
+    public ReviewOrderResponse createReviewOrderResponse() {
+        return new ReviewOrderResponse();
+    }
+
+    /**
+     * Create an instance of {...@link Order }
+     * 
+     */
+    public Order createOrder() {
+        return new Order();
+    }
+
+    /**
+     * Create an instance of {...@link ReviewOrder }
+     * 
+     */
+    public ReviewOrder createReviewOrder() {
+        return new ReviewOrder();
+    }
+
+}

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,129 @@
+
+package org.example.orderservice;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for order complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="order">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="customerId" 
type="{http://www.w3.org/2001/XMLSchema}string"; minOccurs="0"/>
+ *         &lt;element name="status" 
type="{http://www.example.org/OrderService/}status"; minOccurs="0"/>
+ *         &lt;element name="total" 
type="{http://www.w3.org/2001/XMLSchema}double"/>
+ *         &lt;element name="orderId" 
type="{http://www.w3.org/2001/XMLSchema}int"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+...@xmlaccessortype(XmlAccessType.FIELD)
+...@xmltype(name = "order", propOrder = {
+    "customerId",
+    "status",
+    "total",
+    "orderId"
+})
+public class Order {
+
+    protected String customerId;
+    protected Status status;
+    protected double total;
+    protected int orderId;
+
+    /**
+     * Gets the value of the customerId property.
+     * 
+     * @return
+     *     possible object is
+     *     {...@link String }
+     *     
+     */
+    public String getCustomerId() {
+        return customerId;
+    }
+
+    /**
+     * Sets the value of the customerId property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {...@link String }
+     *     
+     */
+    public void setCustomerId(String value) {
+        this.customerId = value;
+    }
+
+    /**
+     * Gets the value of the status property.
+     * 
+     * @return
+     *     possible object is
+     *     {...@link Status }
+     *     
+     */
+    public Status getStatus() {
+        return status;
+    }
+
+    /**
+     * Sets the value of the status property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {...@link Status }
+     *     
+     */
+    public void setStatus(Status value) {
+        this.status = value;
+    }
+
+    /**
+     * Gets the value of the total property.
+     * 
+     */
+    public double getTotal() {
+        return total;
+    }
+
+    /**
+     * Sets the value of the total property.
+     * 
+     */
+    public void setTotal(double value) {
+        this.total = value;
+    }
+
+    /**
+     * Gets the value of the orderId property.
+     * 
+     */
+    public int getOrderId() {
+        return orderId;
+    }
+
+    /**
+     * Sets the value of the orderId property.
+     * 
+     */
+    public void setOrderId(int value) {
+        this.orderId = value;
+    }
+
+    // Added manually from wsimport generated class to improve debugging.
+    public String toString() {
+        return "Order[customerId=" + customerId + ",orderId=" + orderId + 
",total=" + total + ",status=" + status.value() + "]";
+    }
+}

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,37 @@
+
+package org.example.orderservice;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.ws.Holder;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1 in JDK 6
+ * Generated source version: 2.1
+ * 
+ */
+...@webservice(name = "OrderService", targetNamespace = 
"http://www.example.org/OrderService/";)
+...@xmlseealso({
+    ObjectFactory.class
+})
+public interface OrderService {
+
+
+    /**
+     * 
+     * @param myData
+     */
+    @WebMethod(action = "http://www.example.org/OrderService/reviewOrder";)
+    @RequestWrapper(localName = "reviewOrder", targetNamespace = 
"http://www.example.org/OrderService/";, className = 
"org.example.orderservice.ReviewOrder")
+    @ResponseWrapper(localName = "reviewOrderResponse", targetNamespace = 
"http://www.example.org/OrderService/";, className = 
"org.example.orderservice.ReviewOrderResponse")
+    public void reviewOrder(
+        @WebParam(name = "myData", targetNamespace = "", mode = 
WebParam.Mode.INOUT)
+        Holder<Order> myData);
+
+}

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,65 @@
+/*
+ * 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.example.orderservice;
+
+// import org.osoa.sca.annotations.Service;
+import java.util.Random;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.xml.ws.Holder;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+/**
+ * This class implements the OrderService service.
+ */
+// @Service(OrderService.class)
+public class OrderServiceImpl implements OrderService {
+
+    /** This dummy implementation approves or rejects orders:
+     * < 100 - always approved.
+     * 100-1100 - randomly approved. Probability = (1100 - amount)/10
+     * >1100 - always rejected.
+     */
+    // public Order reviewOrder(Order order) {
+    @WebMethod(action = "http://www.example.org/OrderService/reviewOrder";)
+    @RequestWrapper(localName = "reviewOrder", targetNamespace = 
"http://www.example.org/OrderService/";, className = 
"org.example.orderservice.ReviewOrder")
+    @ResponseWrapper(localName = "reviewOrderResponse", targetNamespace = 
"http://www.example.org/OrderService/";, className = 
"org.example.orderservice.ReviewOrderResponse")
+    public void reviewOrder(
+        @WebParam(name = "myData", targetNamespace = "", mode = 
WebParam.Mode.INOUT)
+        Holder<Order> myData) {
+        Order order = myData.value;
+        double total = order.getTotal();
+        if ( total < 100.0 ) {
+            order.setStatus( Status.APPROVED );
+        } else if ( total > 1100.0 ) {
+            order.setStatus( Status.REJECTED );
+        } else {
+            int probability = (int) ((-100.0 + total) / 10.0);
+            Random approver = new Random();
+            if ( approver.nextInt( 100 ) < probability )
+                order.setStatus( Status.APPROVED );
+            else
+                order.setStatus( Status.REJECTED );
+        }
+        System.out.println( ">>> OrderService.reviewOrder return=" + order );
+        // return order;
+    }
+}

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,66 @@
+
+package org.example.orderservice;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1 in JDK 6
+ * Generated source version: 2.1
+ * 
+ */
+...@webserviceclient(name = "OrderService", targetNamespace = 
"http://www.example.org/OrderService/";, wsdlLocation = 
"META-INF/sca-deployables/orderservice.wsdl")
+public class OrderService_Service
+    extends Service
+{
+
+    private final static URL ORDERSERVICE_WSDL_LOCATION;
+
+    static {
+        URL url = null;
+        try {
+            url = new URL("META-INF/sca-deployables/orderservice.wsdl");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        ORDERSERVICE_WSDL_LOCATION = url;
+    }
+
+    public OrderService_Service(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public OrderService_Service() {
+        super(ORDERSERVICE_WSDL_LOCATION, new 
QName("http://www.example.org/OrderService/";, "OrderService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns OrderService
+     */
+    @WebEndpoint(name = "OrderServiceSOAP")
+    public OrderService getOrderServiceSOAP() {
+        return (OrderService)super.getPort(new 
QName("http://www.example.org/OrderService/";, "OrderServiceSOAP"), 
OrderService.class);
+    }
+
+    /**
+     * 
+     * @param features
+     *     A list of {...@link javax.xml.ws.WebServiceFeature} to configure on 
the proxy.  Supported features not in the <code>features</code> parameter will 
have their default values.
+     * @return
+     *     returns OrderService
+     */
+    @WebEndpoint(name = "OrderServiceSOAP")
+    public OrderService getOrderServiceSOAP(WebServiceFeature... features) {
+        return (OrderService)super.getPort(new 
QName("http://www.example.org/OrderService/";, "OrderServiceSOAP"), 
OrderService.class, features);
+    }
+
+}

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,64 @@
+
+package org.example.orderservice;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="myData" 
type="{http://www.example.org/OrderService/}order"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+...@xmlaccessortype(XmlAccessType.FIELD)
+...@xmltype(name = "", propOrder = {
+    "myData"
+})
+...@xmlrootelement(name = "reviewOrder")
+public class ReviewOrder {
+
+    @XmlElement(required = true)
+    protected Order myData;
+
+    /**
+     * Gets the value of the myData property.
+     * 
+     * @return
+     *     possible object is
+     *     {...@link Order }
+     *     
+     */
+    public Order getMyData() {
+        return myData;
+    }
+
+    /**
+     * Sets the value of the myData property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {...@link Order }
+     *     
+     */
+    public void setMyData(Order value) {
+        this.myData = value;
+    }
+
+}

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,64 @@
+
+package org.example.orderservice;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="myData" 
type="{http://www.example.org/OrderService/}order"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+...@xmlaccessortype(XmlAccessType.FIELD)
+...@xmltype(name = "", propOrder = {
+    "myData"
+})
+...@xmlrootelement(name = "reviewOrderResponse")
+public class ReviewOrderResponse {
+
+    @XmlElement(required = true)
+    protected Order myData;
+
+    /**
+     * Gets the value of the myData property.
+     * 
+     * @return
+     *     possible object is
+     *     {...@link Order }
+     *     
+     */
+    public Order getMyData() {
+        return myData;
+    }
+
+    /**
+     * Sets the value of the myData property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {...@link Order }
+     *     
+     */
+    public void setMyData(Order value) {
+        this.myData = value;
+    }
+
+}

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,57 @@
+
+package org.example.orderservice;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for status.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="status">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string";>
+ *     &lt;enumeration value="Created"/>
+ *     &lt;enumeration value="Submitted"/>
+ *     &lt;enumeration value="Approved"/>
+ *     &lt;enumeration value="Rejected"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+...@xmltype(name = "status")
+...@xmlenum
+public enum Status {
+
+    @XmlEnumValue("Created")
+    CREATED("Created"),
+    @XmlEnumValue("Submitted")
+    SUBMITTED("Submitted"),
+    @XmlEnumValue("Approved")
+    APPROVED("Approved"),
+    @XmlEnumValue("Rejected")
+    REJECTED("Rejected");
+    private final String value;
+
+    Status(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static Status fromValue(String v) {
+        for (Status c: Status.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,2 @@
[email protected](namespace = 
"http://www.example.org/OrderService/";)
+package org.example.orderservice;

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * 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.    
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
+       targetNamespace="http://orderservice";
+       xmlns:hw="http://orderservice";
+    name="orderws">
+
+    <component name="OrderServiceComponent">
+        <implementation.java class="org.example.orderservice.OrderServiceImpl" 
/>
+           <service name="OrderService">
+               <interface.wsdl 
interface="http://www.example.org/OrderService/#wsdl.interface(OrderService)" />
+               <binding.ws uri="http://localhost:8085/OrderService"/>
+           </service>
+    </component>
+
+</composite>

Added: 
tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl?rev=736344&view=auto
==============================================================================
--- 
tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl
 (added)
+++ 
tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl
 Wed Jan 21 09:14:42 2009
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://www.example.org/OrderService/"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="OrderService" 
targetNamespace="http://www.example.org/OrderService/";>
+    <wsdl:types>
+        <xsd:schema targetNamespace="http://www.example.org/OrderService/";>
+            <xsd:complexType name="order">
+                <xsd:sequence>
+                    <xsd:element name="customerId" type="xsd:string"    
minOccurs="0" />
+                    <xsd:element name="status" type="tns:status" minOccurs="0" 
/>
+                    <xsd:element name="total" type="xsd:double" />
+                    <xsd:element name="orderId" type="xsd:int" />
+                </xsd:sequence>
+            </xsd:complexType>
+
+            <xsd:simpleType name="status">
+                <xsd:restriction base="xsd:string">
+                    <xsd:enumeration value="Created" />
+                    <xsd:enumeration value="Submitted" />
+                    <xsd:enumeration value="Approved" />
+                    <xsd:enumeration value="Rejected" />
+                </xsd:restriction>
+            </xsd:simpleType>
+
+            <xsd:element name="reviewOrder">
+                <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="myData" type="tns:order"
+                            minOccurs="1" maxOccurs="1" />
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="reviewOrderResponse">
+                <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="myData" type="tns:order"
+                            minOccurs="1" maxOccurs="1" />
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+
+        </xsd:schema>
+    </wsdl:types>
+    <wsdl:message name="reviewOrderRequest">
+        <wsdl:part element="tns:reviewOrder" name="myParameters"/>
+    </wsdl:message>
+    <wsdl:message name="reviewOrderResponse">
+        <wsdl:part element="tns:reviewOrderResponse" name="myResult"/>
+    </wsdl:message>
+    <wsdl:portType name="OrderService">
+        <wsdl:operation name="reviewOrder">
+            <wsdl:input message="tns:reviewOrderRequest"/>
+            <wsdl:output message="tns:reviewOrderResponse"/>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:binding name="OrderServiceSOAP" type="tns:OrderService">
+        <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
+        <wsdl:operation name="reviewOrder">
+            <soap:operation 
soapAction="http://www.example.org/OrderService/reviewOrder"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="OrderService">
+        <wsdl:port binding="tns:OrderServiceSOAP" name="OrderServiceSOAP">
+            <soap:address location="http://www.example.org/"/>
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>


Reply via email to