[wise-commits] wise SVN: r532 - in core/trunk: integration-testsuite/common and 4 other directories.

wise-commits at lists.jboss.org wise-commits at lists.jboss.org
Mon Feb 25 04:26:24 EST 2013


Author: alessio.soldano at jboss.com
Date: 2013-02-25 04:26:24 -0500 (Mon, 25 Feb 2013)
New Revision: 532

Added:
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Address.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/AlreadyRegisteredFault.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/AlreadyRegisteredFault_Exception.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/BulkRegister.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/BulkRegisterResponse.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Customer.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Echo.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/EchoResponse.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/GetStatistics.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/GetStatisticsResponse.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/InvoiceCustomer.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Name.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ObjectFactory.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/PhoneNumber.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Register.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterForInvoice.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterForInvoiceResponse.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterResponse.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Registration.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegistrationFault.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegistrationServiceImpl.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Statistics.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ValidationFault.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ValidationFault_Exception.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/WiseIntegrationComplexTest.java
   core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/package-info.java
   core/trunk/integration-testsuite/common/src/test/resources/WEB-INF/complex/
   core/trunk/integration-testsuite/common/src/test/resources/WEB-INF/complex/web.xml
Modified:
   core/trunk/core/src/main/java/org/jboss/wise/core/test/WiseTest.java
   core/trunk/integration-testsuite/common/pom.xml
Log:
[WISE-27] Adding a bit more advanced test, featuring invocation of a not so trivial endpoint with complex types, etc.


Modified: core/trunk/core/src/main/java/org/jboss/wise/core/test/WiseTest.java
===================================================================
--- core/trunk/core/src/main/java/org/jboss/wise/core/test/WiseTest.java	2013-02-24 18:25:23 UTC (rev 531)
+++ core/trunk/core/src/main/java/org/jboss/wise/core/test/WiseTest.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -108,7 +108,7 @@
      * 
      * @return http://server-hostname:port
      */
-    public String getServerHostAndPort() {
+    public static String getServerHostAndPort() {
 	final String host = System.getProperty(SYSPROP_JBOSS_BIND_ADDRESS, "localhost");
 	final String port = System.getProperty(SYSPROP_JBOSS_HTTP_PORT, "8080");
 	final StringBuilder sb = new StringBuilder("http://");

Modified: core/trunk/integration-testsuite/common/pom.xml
===================================================================
--- core/trunk/integration-testsuite/common/pom.xml	2013-02-24 18:25:23 UTC (rev 531)
+++ core/trunk/integration-testsuite/common/pom.xml	2013-02-25 09:26:24 UTC (rev 532)
@@ -84,6 +84,33 @@
 						</configuration>
 					</execution>
 					<execution>
+						<id>war-it-complex</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>war</goal>
+						</goals>
+						<configuration>
+							<webXml>${basedir}/src/test/resources/WEB-INF/complex/web.xml</webXml>
+							<warName>complex</warName>
+							<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
+							<webappDirectory>${project.build.directory}/complex</webappDirectory>
+							<warSourceExcludes>**/lib/**</warSourceExcludes>
+							<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
+							<webResources>
+								<webResource>
+									<targetPath>WEB-INF/classes</targetPath>
+									<directory>${basedir}/target/test-classes/</directory>
+									<includes>
+										<include>**/complex/*.class</include>
+									</includes>
+									<excludes>
+										<exclude>**/*Test.class</exclude>
+									</excludes>
+								</webResource>
+							</webResources>
+						</configuration>
+					</execution>
+					<execution>
 						<id>war-it-incontainer</id>
 						<phase>pre-integration-test</phase>
 						<goals>

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Address.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Address.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Address.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,146 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Address complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Address">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="city" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *         &lt;element name="state" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *         &lt;element name="street" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *         &lt;element name="zip" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Address", namespace = "http://complex.jaxws.ws.test.jboss.org/", propOrder = {
+    "city",
+    "state",
+    "street",
+    "zip"
+})
+public class Address {
+
+    @XmlElement(required = true, nillable = true)
+    protected String city;
+    @XmlElement(required = true, nillable = true)
+    protected String state;
+    @XmlElement(required = true, nillable = true)
+    protected String street;
+    @XmlElement(required = true, nillable = true)
+    protected String zip;
+
+    /**
+     * Gets the value of the city property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCity() {
+        return city;
+    }
+
+    /**
+     * Sets the value of the city property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCity(String value) {
+        this.city = value;
+    }
+
+    /**
+     * Gets the value of the state property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getState() {
+        return state;
+    }
+
+    /**
+     * Sets the value of the state property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setState(String value) {
+        this.state = value;
+    }
+
+    /**
+     * Gets the value of the street property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getStreet() {
+        return street;
+    }
+
+    /**
+     * Sets the value of the street property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setStreet(String value) {
+        this.street = value;
+    }
+
+    /**
+     * Gets the value of the zip property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getZip() {
+        return zip;
+    }
+
+    /**
+     * Sets the value of the zip property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setZip(String value) {
+        this.zip = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/AlreadyRegisteredFault.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/AlreadyRegisteredFault.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/AlreadyRegisteredFault.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,54 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AlreadyRegisteredFault complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AlreadyRegisteredFault">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://complex.jaxws.ws.test.jboss.org/}RegistrationFault">
+ *       &lt;sequence>
+ *         &lt;element name="existingId" type="{http://www.w3.org/2001/XMLSchema}long"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "AlreadyRegisteredFault", propOrder = {
+    "existingId"
+})
+public class AlreadyRegisteredFault
+    extends RegistrationFault
+{
+
+    protected long existingId;
+
+    /**
+     * Gets the value of the existingId property.
+     * 
+     */
+    public long getExistingId() {
+        return existingId;
+    }
+
+    /**
+     * Sets the value of the existingId property.
+     * 
+     */
+    public void setExistingId(long value) {
+        this.existingId = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/AlreadyRegisteredFault_Exception.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/AlreadyRegisteredFault_Exception.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/AlreadyRegisteredFault_Exception.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,43 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.ws.WebFault;
+
+
+/**
+ * This class was generated by Apache CXF 2.7.3-SNAPSHOT (1439267)
+ * 2013-02-20T16:44:23.116+01:00
+ * Generated source version: 2.7.3-SNAPSHOT
+ */
+
+ at WebFault(name = "AlreadyRegisteredFault", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+public class AlreadyRegisteredFault_Exception extends Exception {
+    
+    private org.jboss.wise.test.integration.complex.AlreadyRegisteredFault alreadyRegisteredFault;
+
+    public AlreadyRegisteredFault_Exception() {
+        super();
+    }
+    
+    public AlreadyRegisteredFault_Exception(String message) {
+        super(message);
+    }
+    
+    public AlreadyRegisteredFault_Exception(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public AlreadyRegisteredFault_Exception(String message, org.jboss.wise.test.integration.complex.AlreadyRegisteredFault alreadyRegisteredFault) {
+        super(message);
+        this.alreadyRegisteredFault = alreadyRegisteredFault;
+    }
+
+    public AlreadyRegisteredFault_Exception(String message, org.jboss.wise.test.integration.complex.AlreadyRegisteredFault alreadyRegisteredFault, Throwable cause) {
+        super(message, cause);
+        this.alreadyRegisteredFault = alreadyRegisteredFault;
+    }
+
+    public org.jboss.wise.test.integration.complex.AlreadyRegisteredFault getFaultInfo() {
+        return this.alreadyRegisteredFault;
+    }
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/BulkRegister.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/BulkRegister.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/BulkRegister.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,99 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for BulkRegister complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="BulkRegister">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Customers" type="{http://complex.jaxws.ws.test.jboss.org/}Customer" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="When" type="{http://www.w3.org/2001/XMLSchema}anySimpleType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "BulkRegister", propOrder = {
+    "customers",
+    "when"
+})
+public class BulkRegister {
+
+    @XmlElement(name = "Customers", nillable = true)
+    protected List<Customer> customers;
+    @XmlElement(name = "When", required = true, nillable = true)
+    @XmlSchemaType(name = "anySimpleType")
+    protected Object when;
+
+    /**
+     * Gets the value of the customers property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the customers property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getCustomers().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Customer }
+     * 
+     * 
+     */
+    public List<Customer> getCustomers() {
+        if (customers == null) {
+            customers = new ArrayList<Customer>();
+        }
+        return this.customers;
+    }
+
+    /**
+     * Gets the value of the when property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Object }
+     *     
+     */
+    public Object getWhen() {
+        return when;
+    }
+
+    /**
+     * Sets the value of the when property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Object }
+     *     
+     */
+    public void setWhen(Object value) {
+        this.when = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/BulkRegisterResponse.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/BulkRegisterResponse.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/BulkRegisterResponse.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,69 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for BulkRegisterResponse complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="BulkRegisterResponse">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="RegisteredIDs" type="{http://www.w3.org/2001/XMLSchema}long" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "BulkRegisterResponse", propOrder = {
+    "registeredIDs"
+})
+public class BulkRegisterResponse {
+
+    @XmlElement(name = "RegisteredIDs", type = Long.class)
+    protected List<Long> registeredIDs;
+
+    /**
+     * Gets the value of the registeredIDs property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the registeredIDs property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getRegisteredIDs().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Long }
+     * 
+     * 
+     */
+    public List<Long> getRegisteredIDs() {
+        if (registeredIDs == null) {
+            registeredIDs = new ArrayList<Long>();
+        }
+        return this.registeredIDs;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Customer.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Customer.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Customer.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,181 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Customer complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Customer">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="address" type="{http://complex.jaxws.ws.test.jboss.org/}Address" form="qualified"/>
+ *         &lt;element name="contactNumbers" type="{http://complex.jaxws.ws.test.jboss.org/}PhoneNumber" maxOccurs="unbounded" minOccurs="0" form="qualified"/>
+ *         &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}long" form="qualified"/>
+ *         &lt;element name="name" type="{http://complex.jaxws.ws.test.jboss.org/}Name" form="qualified"/>
+ *         &lt;element name="referredCustomers" type="{http://complex.jaxws.ws.test.jboss.org/}Customer" maxOccurs="unbounded" minOccurs="0" form="qualified"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Customer", namespace = "http://complex.jaxws.ws.test.jboss.org/", propOrder = {
+    "address",
+    "contactNumbers",
+    "id",
+    "name",
+    "referredCustomers"
+})
+ at XmlSeeAlso({
+    InvoiceCustomer.class
+})
+public class Customer {
+
+    @XmlElement(required = true, nillable = true)
+    protected Address address;
+    @XmlElement(nillable = true)
+    protected List<PhoneNumber> contactNumbers;
+    protected long id;
+    @XmlElement(required = true, nillable = true)
+    protected Name name;
+    @XmlElement(nillable = true)
+    protected List<Customer> referredCustomers;
+
+    /**
+     * Gets the value of the address property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Address }
+     *     
+     */
+    public Address getAddress() {
+        return address;
+    }
+
+    /**
+     * Sets the value of the address property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Address }
+     *     
+     */
+    public void setAddress(Address value) {
+        this.address = value;
+    }
+
+    /**
+     * Gets the value of the contactNumbers property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the contactNumbers property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContactNumbers().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link PhoneNumber }
+     * 
+     * 
+     */
+    public List<PhoneNumber> getContactNumbers() {
+        if (contactNumbers == null) {
+            contactNumbers = new ArrayList<PhoneNumber>();
+        }
+        return this.contactNumbers;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     */
+    public long getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     */
+    public void setId(long value) {
+        this.id = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Name }
+     *     
+     */
+    public Name getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Name }
+     *     
+     */
+    public void setName(Name value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the referredCustomers property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the referredCustomers property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getReferredCustomers().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Customer }
+     * 
+     * 
+     */
+    public List<Customer> getReferredCustomers() {
+        if (referredCustomers == null) {
+            referredCustomers = new ArrayList<Customer>();
+        }
+        return this.referredCustomers;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Echo.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Echo.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Echo.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,62 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Echo complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Echo">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Customer" type="{http://complex.jaxws.ws.test.jboss.org/}Customer"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Echo", propOrder = {
+    "customer"
+})
+public class Echo {
+
+    @XmlElement(name = "Customer", required = true, nillable = true)
+    protected Customer customer;
+
+    /**
+     * Gets the value of the customer property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Customer }
+     *     
+     */
+    public Customer getCustomer() {
+        return customer;
+    }
+
+    /**
+     * Sets the value of the customer property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Customer }
+     *     
+     */
+    public void setCustomer(Customer value) {
+        this.customer = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/EchoResponse.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/EchoResponse.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/EchoResponse.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,62 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for EchoResponse complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="EchoResponse">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Customer" type="{http://complex.jaxws.ws.test.jboss.org/}Customer"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "EchoResponse", propOrder = {
+    "customer"
+})
+public class EchoResponse {
+
+    @XmlElement(name = "Customer", required = true, nillable = true)
+    protected Customer customer;
+
+    /**
+     * Gets the value of the customer property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Customer }
+     *     
+     */
+    public Customer getCustomer() {
+        return customer;
+    }
+
+    /**
+     * Sets the value of the customer property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Customer }
+     *     
+     */
+    public void setCustomer(Customer value) {
+        this.customer = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/GetStatistics.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/GetStatistics.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/GetStatistics.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,62 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for GetStatistics complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="GetStatistics">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Customer" type="{http://complex.jaxws.ws.test.jboss.org/}Customer"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "GetStatistics", propOrder = {
+    "customer"
+})
+public class GetStatistics {
+
+    @XmlElement(name = "Customer", required = true, nillable = true)
+    protected Customer customer;
+
+    /**
+     * Gets the value of the customer property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Customer }
+     *     
+     */
+    public Customer getCustomer() {
+        return customer;
+    }
+
+    /**
+     * Sets the value of the customer property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Customer }
+     *     
+     */
+    public void setCustomer(Customer value) {
+        this.customer = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/GetStatisticsResponse.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/GetStatisticsResponse.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/GetStatisticsResponse.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,62 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for GetStatisticsResponse complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="GetStatisticsResponse">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Statistics" type="{http://extra.complex.jaxws.ws.test.jboss.org/}Statistics"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "GetStatisticsResponse", propOrder = {
+    "statistics"
+})
+public class GetStatisticsResponse {
+
+    @XmlElement(name = "Statistics", required = true, nillable = true)
+    protected Statistics statistics;
+
+    /**
+     * Gets the value of the statistics property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Statistics }
+     *     
+     */
+    public Statistics getStatistics() {
+        return statistics;
+    }
+
+    /**
+     * Sets the value of the statistics property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Statistics }
+     *     
+     */
+    public void setStatistics(Statistics value) {
+        this.statistics = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/InvoiceCustomer.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/InvoiceCustomer.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/InvoiceCustomer.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,54 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for InvoiceCustomer complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="InvoiceCustomer">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://complex.jaxws.ws.test.jboss.org/}Customer">
+ *       &lt;sequence>
+ *         &lt;element name="cycleDay" type="{http://www.w3.org/2001/XMLSchema}int" form="qualified"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "InvoiceCustomer", namespace = "http://complex.jaxws.ws.test.jboss.org/", propOrder = {
+    "cycleDay"
+})
+public class InvoiceCustomer
+    extends Customer
+{
+
+    protected int cycleDay;
+
+    /**
+     * Gets the value of the cycleDay property.
+     * 
+     */
+    public int getCycleDay() {
+        return cycleDay;
+    }
+
+    /**
+     * Sets the value of the cycleDay property.
+     * 
+     */
+    public void setCycleDay(int value) {
+        this.cycleDay = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Name.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Name.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Name.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,118 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Name complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Name">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="firstName" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *         &lt;element name="lastName" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *         &lt;element name="middleName" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Name", namespace = "http://complex.jaxws.ws.test.jboss.org/", propOrder = {
+    "firstName",
+    "lastName",
+    "middleName"
+})
+public class Name {
+
+    @XmlElement(required = true, nillable = true)
+    protected String firstName;
+    @XmlElement(required = true, nillable = true)
+    protected String lastName;
+    @XmlElement(required = true, nillable = true)
+    protected String middleName;
+
+    /**
+     * Gets the value of the firstName property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getFirstName() {
+        return firstName;
+    }
+
+    /**
+     * Sets the value of the firstName property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setFirstName(String value) {
+        this.firstName = value;
+    }
+
+    /**
+     * Gets the value of the lastName property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getLastName() {
+        return lastName;
+    }
+
+    /**
+     * Sets the value of the lastName property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setLastName(String value) {
+        this.lastName = value;
+    }
+
+    /**
+     * Gets the value of the middleName property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMiddleName() {
+        return middleName;
+    }
+
+    /**
+     * Sets the value of the middleName property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMiddleName(String value) {
+        this.middleName = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ObjectFactory.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ObjectFactory.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ObjectFactory.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,307 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.jboss.test.ws.jaxws.complex 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.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _EchoResponse_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "EchoResponse");
+    private final static QName _RegisterResponse_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "RegisterResponse");
+    private final static QName _Register_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "Register");
+    private final static QName _AlreadyRegisteredFault_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "AlreadyRegisteredFault");
+    private final static QName _RegisterForInvoiceResponse_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "RegisterForInvoiceResponse");
+    private final static QName _GetStatistics_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "GetStatistics");
+    private final static QName _GetStatisticsResponse_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "GetStatisticsResponse");
+    private final static QName _BulkRegister_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "BulkRegister");
+    private final static QName _BulkRegisterResponse_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "BulkRegisterResponse");
+    private final static QName _RegisterForInvoice_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "RegisterForInvoice");
+    private final static QName _ValidationFault_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "ValidationFault");
+    private final static QName _Echo_QNAME = new QName("http://types.complex.jaxws.ws.test.jboss.org/", "Echo");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.jboss.test.ws.jaxws.complex
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link ValidationFault }
+     * 
+     */
+    public ValidationFault createValidationFault() {
+        return new ValidationFault();
+    }
+
+    /**
+     * Create an instance of {@link RegisterForInvoice }
+     * 
+     */
+    public RegisterForInvoice createRegisterForInvoice() {
+        return new RegisterForInvoice();
+    }
+
+    /**
+     * Create an instance of {@link BulkRegisterResponse }
+     * 
+     */
+    public BulkRegisterResponse createBulkRegisterResponse() {
+        return new BulkRegisterResponse();
+    }
+
+    /**
+     * Create an instance of {@link BulkRegister }
+     * 
+     */
+    public BulkRegister createBulkRegister() {
+        return new BulkRegister();
+    }
+
+    /**
+     * Create an instance of {@link Echo }
+     * 
+     */
+    public Echo createEcho() {
+        return new Echo();
+    }
+
+    /**
+     * Create an instance of {@link Register }
+     * 
+     */
+    public Register createRegister() {
+        return new Register();
+    }
+
+    /**
+     * Create an instance of {@link RegisterResponse }
+     * 
+     */
+    public RegisterResponse createRegisterResponse() {
+        return new RegisterResponse();
+    }
+
+    /**
+     * Create an instance of {@link EchoResponse }
+     * 
+     */
+    public EchoResponse createEchoResponse() {
+        return new EchoResponse();
+    }
+
+    /**
+     * Create an instance of {@link GetStatisticsResponse }
+     * 
+     */
+    public GetStatisticsResponse createGetStatisticsResponse() {
+        return new GetStatisticsResponse();
+    }
+
+    /**
+     * Create an instance of {@link GetStatistics }
+     * 
+     */
+    public GetStatistics createGetStatistics() {
+        return new GetStatistics();
+    }
+
+    /**
+     * Create an instance of {@link RegisterForInvoiceResponse }
+     * 
+     */
+    public RegisterForInvoiceResponse createRegisterForInvoiceResponse() {
+        return new RegisterForInvoiceResponse();
+    }
+
+    /**
+     * Create an instance of {@link AlreadyRegisteredFault }
+     * 
+     */
+    public AlreadyRegisteredFault createAlreadyRegisteredFault() {
+        return new AlreadyRegisteredFault();
+    }
+
+    /**
+     * Create an instance of {@link Name }
+     * 
+     */
+    public Name createName() {
+        return new Name();
+    }
+
+    /**
+     * Create an instance of {@link Customer }
+     * 
+     */
+    public Customer createCustomer() {
+        return new Customer();
+    }
+
+    /**
+     * Create an instance of {@link Address }
+     * 
+     */
+    public Address createAddress() {
+        return new Address();
+    }
+
+    /**
+     * Create an instance of {@link InvoiceCustomer }
+     * 
+     */
+    public InvoiceCustomer createInvoiceCustomer() {
+        return new InvoiceCustomer();
+    }
+
+    /**
+     * Create an instance of {@link RegistrationFault }
+     * 
+     */
+    public RegistrationFault createRegistrationFault() {
+        return new RegistrationFault();
+    }
+
+    /**
+     * Create an instance of {@link PhoneNumber }
+     * 
+     */
+    public PhoneNumber createPhoneNumber() {
+        return new PhoneNumber();
+    }
+
+    /**
+     * Create an instance of {@link Statistics }
+     * 
+     */
+    public Statistics createStatistics() {
+        return new Statistics();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link EchoResponse }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "EchoResponse")
+    public JAXBElement<EchoResponse> createEchoResponse(EchoResponse value) {
+        return new JAXBElement<EchoResponse>(_EchoResponse_QNAME, EchoResponse.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link RegisterResponse }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "RegisterResponse")
+    public JAXBElement<RegisterResponse> createRegisterResponse(RegisterResponse value) {
+        return new JAXBElement<RegisterResponse>(_RegisterResponse_QNAME, RegisterResponse.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Register }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "Register")
+    public JAXBElement<Register> createRegister(Register value) {
+        return new JAXBElement<Register>(_Register_QNAME, Register.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link AlreadyRegisteredFault }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "AlreadyRegisteredFault")
+    public JAXBElement<AlreadyRegisteredFault> createAlreadyRegisteredFault(AlreadyRegisteredFault value) {
+        return new JAXBElement<AlreadyRegisteredFault>(_AlreadyRegisteredFault_QNAME, AlreadyRegisteredFault.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link RegisterForInvoiceResponse }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "RegisterForInvoiceResponse")
+    public JAXBElement<RegisterForInvoiceResponse> createRegisterForInvoiceResponse(RegisterForInvoiceResponse value) {
+        return new JAXBElement<RegisterForInvoiceResponse>(_RegisterForInvoiceResponse_QNAME, RegisterForInvoiceResponse.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link GetStatistics }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "GetStatistics")
+    public JAXBElement<GetStatistics> createGetStatistics(GetStatistics value) {
+        return new JAXBElement<GetStatistics>(_GetStatistics_QNAME, GetStatistics.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link GetStatisticsResponse }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "GetStatisticsResponse")
+    public JAXBElement<GetStatisticsResponse> createGetStatisticsResponse(GetStatisticsResponse value) {
+        return new JAXBElement<GetStatisticsResponse>(_GetStatisticsResponse_QNAME, GetStatisticsResponse.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link BulkRegister }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "BulkRegister")
+    public JAXBElement<BulkRegister> createBulkRegister(BulkRegister value) {
+        return new JAXBElement<BulkRegister>(_BulkRegister_QNAME, BulkRegister.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link BulkRegisterResponse }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "BulkRegisterResponse")
+    public JAXBElement<BulkRegisterResponse> createBulkRegisterResponse(BulkRegisterResponse value) {
+        return new JAXBElement<BulkRegisterResponse>(_BulkRegisterResponse_QNAME, BulkRegisterResponse.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link RegisterForInvoice }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "RegisterForInvoice")
+    public JAXBElement<RegisterForInvoice> createRegisterForInvoice(RegisterForInvoice value) {
+        return new JAXBElement<RegisterForInvoice>(_RegisterForInvoice_QNAME, RegisterForInvoice.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ValidationFault }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "ValidationFault")
+    public JAXBElement<ValidationFault> createValidationFault(ValidationFault value) {
+        return new JAXBElement<ValidationFault>(_ValidationFault_QNAME, ValidationFault.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Echo }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "Echo")
+    public JAXBElement<Echo> createEcho(Echo value) {
+        return new JAXBElement<Echo>(_Echo_QNAME, Echo.class, null, value);
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/PhoneNumber.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/PhoneNumber.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/PhoneNumber.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,118 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for PhoneNumber complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PhoneNumber">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="areaCode" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *         &lt;element name="exchange" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *         &lt;element name="line" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PhoneNumber", namespace = "http://complex.jaxws.ws.test.jboss.org/", propOrder = {
+    "areaCode",
+    "exchange",
+    "line"
+})
+public class PhoneNumber {
+
+    @XmlElement(required = true, nillable = true)
+    protected String areaCode;
+    @XmlElement(required = true, nillable = true)
+    protected String exchange;
+    @XmlElement(required = true, nillable = true)
+    protected String line;
+
+    /**
+     * Gets the value of the areaCode property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAreaCode() {
+        return areaCode;
+    }
+
+    /**
+     * Sets the value of the areaCode property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAreaCode(String value) {
+        this.areaCode = value;
+    }
+
+    /**
+     * Gets the value of the exchange property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getExchange() {
+        return exchange;
+    }
+
+    /**
+     * Sets the value of the exchange property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setExchange(String value) {
+        this.exchange = value;
+    }
+
+    /**
+     * Gets the value of the line property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getLine() {
+        return line;
+    }
+
+    /**
+     * Sets the value of the line property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setLine(String value) {
+        this.line = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Register.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Register.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Register.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,92 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Register complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Register">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Customer" type="{http://complex.jaxws.ws.test.jboss.org/}Customer"/>
+ *         &lt;element name="When" type="{http://www.w3.org/2001/XMLSchema}anySimpleType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Register", propOrder = {
+    "customer",
+    "when"
+})
+public class Register {
+
+    @XmlElement(name = "Customer", required = true, nillable = true)
+    protected Customer customer;
+    @XmlElement(name = "When", required = true, nillable = true)
+    @XmlSchemaType(name = "anySimpleType")
+    protected Object when;
+
+    /**
+     * Gets the value of the customer property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Customer }
+     *     
+     */
+    public Customer getCustomer() {
+        return customer;
+    }
+
+    /**
+     * Sets the value of the customer property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Customer }
+     *     
+     */
+    public void setCustomer(Customer value) {
+        this.customer = value;
+    }
+
+    /**
+     * Gets the value of the when property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Object }
+     *     
+     */
+    public Object getWhen() {
+        return when;
+    }
+
+    /**
+     * Sets the value of the when property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Object }
+     *     
+     */
+    public void setWhen(Object value) {
+        this.when = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterForInvoice.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterForInvoice.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterForInvoice.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,62 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RegisterForInvoice complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegisterForInvoice">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="InvoiceCustomer" type="{http://complex.jaxws.ws.test.jboss.org/}InvoiceCustomer"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegisterForInvoice", propOrder = {
+    "invoiceCustomer"
+})
+public class RegisterForInvoice {
+
+    @XmlElement(name = "InvoiceCustomer", required = true, nillable = true)
+    protected InvoiceCustomer invoiceCustomer;
+
+    /**
+     * Gets the value of the invoiceCustomer property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link InvoiceCustomer }
+     *     
+     */
+    public InvoiceCustomer getInvoiceCustomer() {
+        return invoiceCustomer;
+    }
+
+    /**
+     * Sets the value of the invoiceCustomer property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link InvoiceCustomer }
+     *     
+     */
+    public void setInvoiceCustomer(InvoiceCustomer value) {
+        this.invoiceCustomer = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterForInvoiceResponse.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterForInvoiceResponse.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterForInvoiceResponse.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,52 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RegisterForInvoiceResponse complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegisterForInvoiceResponse">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="done" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegisterForInvoiceResponse", propOrder = {
+    "done"
+})
+public class RegisterForInvoiceResponse {
+
+    protected boolean done;
+
+    /**
+     * Gets the value of the done property.
+     * 
+     */
+    public boolean isDone() {
+        return done;
+    }
+
+    /**
+     * Sets the value of the done property.
+     * 
+     */
+    public void setDone(boolean value) {
+        this.done = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterResponse.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterResponse.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegisterResponse.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,54 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RegisterResponse complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegisterResponse">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="RegisteredID" type="{http://www.w3.org/2001/XMLSchema}long"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegisterResponse", propOrder = {
+    "registeredID"
+})
+public class RegisterResponse {
+
+    @XmlElement(name = "RegisteredID")
+    protected long registeredID;
+
+    /**
+     * Gets the value of the registeredID property.
+     * 
+     */
+    public long getRegisteredID() {
+        return registeredID;
+    }
+
+    /**
+     * Sets the value of the registeredID property.
+     * 
+     */
+    public void setRegisteredID(long value) {
+        this.registeredID = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Registration.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Registration.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Registration.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,68 @@
+package org.jboss.wise.test.integration.complex;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+/**
+ * This class was generated by Apache CXF 2.7.3-SNAPSHOT (1439267)
+ * 2013-02-20T16:44:23.123+01:00
+ * Generated source version: 2.7.3-SNAPSHOT
+ * 
+ */
+ at WebService(targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", name = "Registration")
+ at XmlSeeAlso({ObjectFactory.class})
+public interface Registration {
+
+    @WebResult(name = "RegisteredID", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+    @RequestWrapper(localName = "Register", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.Register")
+    @WebMethod(operationName = "Register")
+    @ResponseWrapper(localName = "RegisterResponse", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.RegisterResponse")
+    public long register(
+        @WebParam(name = "Customer", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+        org.jboss.wise.test.integration.complex.Customer customer,
+        @WebParam(name = "When", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+        java.lang.Object when
+    ) throws ValidationFault_Exception, AlreadyRegisteredFault_Exception;
+
+    @WebResult(name = "Statistics", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+    @RequestWrapper(localName = "GetStatistics", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.GetStatistics")
+    @WebMethod(operationName = "GetStatistics")
+    @ResponseWrapper(localName = "GetStatisticsResponse", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.GetStatisticsResponse")
+    public org.jboss.wise.test.integration.complex.Statistics getStatistics(
+        @WebParam(name = "Customer", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+        org.jboss.wise.test.integration.complex.Customer customer
+    );
+
+    @RequestWrapper(localName = "Echo", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.Echo")
+    @WebMethod(operationName = "Echo")
+    @ResponseWrapper(localName = "EchoResponse", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.EchoResponse")
+    public void echo(
+        @WebParam(mode = WebParam.Mode.INOUT, name = "Customer", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+        javax.xml.ws.Holder<Customer> customer
+    );
+
+    @WebResult(name = "done", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+    @RequestWrapper(localName = "RegisterForInvoice", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.RegisterForInvoice")
+    @WebMethod(operationName = "RegisterForInvoice")
+    @ResponseWrapper(localName = "RegisterForInvoiceResponse", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.RegisterForInvoiceResponse")
+    public boolean registerForInvoice(
+        @WebParam(name = "InvoiceCustomer", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+        org.jboss.wise.test.integration.complex.InvoiceCustomer invoiceCustomer
+    ) throws ValidationFault_Exception, AlreadyRegisteredFault_Exception;
+
+    @WebResult(name = "RegisteredIDs", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+    @RequestWrapper(localName = "BulkRegister", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.BulkRegister")
+    @WebMethod(operationName = "BulkRegister")
+    @ResponseWrapper(localName = "BulkRegisterResponse", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/", className = "org.jboss.wise.test.integration.complex.BulkRegisterResponse")
+    public java.util.List<java.lang.Long> bulkRegister(
+        @WebParam(name = "Customers", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+        java.util.List<org.jboss.wise.test.integration.complex.Customer> customers,
+        @WebParam(name = "When", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+        java.lang.Object when
+    ) throws ValidationFault_Exception, AlreadyRegisteredFault_Exception;
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegistrationFault.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegistrationFault.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegistrationFault.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,67 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RegistrationFault complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegistrationFault">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="message" type="{http://www.w3.org/2001/XMLSchema}string" form="qualified"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegistrationFault", namespace = "http://complex.jaxws.ws.test.jboss.org/", propOrder = {
+    "message"
+})
+ at XmlSeeAlso({
+    ValidationFault.class,
+    AlreadyRegisteredFault.class
+})
+public class RegistrationFault {
+
+    @XmlElement(required = true, nillable = true)
+    protected String message;
+
+    /**
+     * Gets the value of the message property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMessage() {
+        return message;
+    }
+
+    /**
+     * Sets the value of the message property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMessage(String value) {
+        this.message = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegistrationServiceImpl.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegistrationServiceImpl.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/RegistrationServiceImpl.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,129 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2013, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wise.test.integration.complex;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.jws.WebService;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.jboss.logging.Logger;
+
+/**
+ * A mock registration service that exercises the use of complex types, arrays, inheritence,
+ * and exceptions.
+ * 
+ */
+ at WebService(endpointInterface = "org.jboss.wise.test.integration.complex.Registration", targetNamespace = "http://complex.jaxws.ws.test.jboss.org")
+public class RegistrationServiceImpl implements Registration
+{
+   // Provide logging
+   private static Logger log = Logger.getLogger(RegistrationServiceImpl.class);
+
+   public long register(Customer customer, Object when) throws AlreadyRegisteredFault_Exception, ValidationFault_Exception
+   {
+      Name name = customer.getName();
+      if (name == null)
+      {
+         ValidationFault fault = new ValidationFault();
+         fault.getFailedCustomers().add(customer.getId());
+         throw new ValidationFault_Exception("No name!", fault);
+      }
+
+      if ("al".equalsIgnoreCase(name.getFirstName()) && "capone".equalsIgnoreCase(name.getLastName()))
+      {
+         AlreadyRegisteredFault fault = new AlreadyRegisteredFault();
+         fault.setExistingId(456);
+         throw new AlreadyRegisteredFault_Exception("Al Capone is already registered", fault);
+      }
+
+      for (Customer c : customer.getReferredCustomers())
+      {
+         log.info("Refered customer: " + c.getName());
+      }
+
+      log.info("registering customer: " + customer);
+      return customer.getId();
+   }
+   
+   public void echo(javax.xml.ws.Holder<org.jboss.wise.test.integration.complex.Customer> customer) {
+      log.info("customer: " + customer);
+   }
+
+   public List<Long> bulkRegister(List<Customer> customers, Object when) throws AlreadyRegisteredFault_Exception, ValidationFault_Exception
+   {
+      List<Long> registered = new ArrayList<Long>(customers.size());
+      List<Long> failed = new ArrayList<Long>(customers.size());
+
+      for (Customer c : customers)
+      {
+         try
+         {
+            registered.add(register(c, when));
+         }
+         catch (ValidationFault_Exception e)
+         {
+            failed.add(e.getFaultInfo().getFailedCustomers().get(0));
+         }
+      }
+
+      if (failed.size() > 0)
+      {
+         ValidationFault fault = new ValidationFault();
+         fault.getFailedCustomers().addAll(failed);
+         throw new ValidationFault_Exception("Validation errors on bulk registering customers", fault);
+      }
+
+      return registered;
+   }
+
+   public boolean registerForInvoice(InvoiceCustomer invoiceCustomer) throws AlreadyRegisteredFault_Exception, ValidationFault_Exception
+   {
+      log.info("registerForInvoice: " + invoiceCustomer.getCycleDay());
+      return true;
+   }
+
+   public Statistics getStatistics(Customer customer)
+   {
+      Statistics stats = new Statistics();
+      stats.setHits(10);
+      stats.setActivationTime(getCalendar());
+      return stats;
+   }
+   
+   private XMLGregorianCalendar getCalendar() 
+   {
+      try
+      {
+         DatatypeFactory calFactory = DatatypeFactory.newInstance();
+         XMLGregorianCalendar cal = calFactory.newXMLGregorianCalendar(2002, 4, 5, 0, 0, 0, 0, 0);
+         return cal;
+      }
+      catch (DatatypeConfigurationException e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Statistics.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Statistics.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/Statistics.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,83 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Statistics complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Statistics">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="activationTime" type="{http://www.w3.org/2001/XMLSchema}anySimpleType"/>
+ *         &lt;element name="hits" type="{http://www.w3.org/2001/XMLSchema}long"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Statistics", namespace = "http://extra.complex.jaxws.ws.test.jboss.org/", propOrder = {
+    "activationTime",
+    "hits"
+})
+public class Statistics {
+
+    @XmlElement(required = true, nillable = true)
+    @XmlSchemaType(name = "anySimpleType")
+    protected Object activationTime;
+    protected long hits;
+
+    /**
+     * Gets the value of the activationTime property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Object }
+     *     
+     */
+    public Object getActivationTime() {
+        return activationTime;
+    }
+
+    /**
+     * Sets the value of the activationTime property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Object }
+     *     
+     */
+    public void setActivationTime(Object value) {
+        this.activationTime = value;
+    }
+
+    /**
+     * Gets the value of the hits property.
+     * 
+     */
+    public long getHits() {
+        return hits;
+    }
+
+    /**
+     * Sets the value of the hits property.
+     * 
+     */
+    public void setHits(long value) {
+        this.hits = value;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ValidationFault.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ValidationFault.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ValidationFault.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,71 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ValidationFault complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ValidationFault">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://complex.jaxws.ws.test.jboss.org/}RegistrationFault">
+ *       &lt;sequence>
+ *         &lt;element name="failedCustomers" type="{http://www.w3.org/2001/XMLSchema}long" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ValidationFault", propOrder = {
+    "failedCustomers"
+})
+public class ValidationFault
+    extends RegistrationFault
+{
+
+    @XmlElement(type = Long.class)
+    protected List<Long> failedCustomers;
+
+    /**
+     * Gets the value of the failedCustomers property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the failedCustomers property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getFailedCustomers().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Long }
+     * 
+     * 
+     */
+    public List<Long> getFailedCustomers() {
+        if (failedCustomers == null) {
+            failedCustomers = new ArrayList<Long>();
+        }
+        return this.failedCustomers;
+    }
+
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ValidationFault_Exception.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ValidationFault_Exception.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/ValidationFault_Exception.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,43 @@
+
+package org.jboss.wise.test.integration.complex;
+
+import javax.xml.ws.WebFault;
+
+
+/**
+ * This class was generated by Apache CXF 2.7.3-SNAPSHOT (1439267)
+ * 2013-02-20T16:44:23.088+01:00
+ * Generated source version: 2.7.3-SNAPSHOT
+ */
+
+ at WebFault(name = "ValidationFault", targetNamespace = "http://types.complex.jaxws.ws.test.jboss.org/")
+public class ValidationFault_Exception extends Exception {
+    
+    private org.jboss.wise.test.integration.complex.ValidationFault validationFault;
+
+    public ValidationFault_Exception() {
+        super();
+    }
+    
+    public ValidationFault_Exception(String message) {
+        super(message);
+    }
+    
+    public ValidationFault_Exception(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public ValidationFault_Exception(String message, org.jboss.wise.test.integration.complex.ValidationFault validationFault) {
+        super(message);
+        this.validationFault = validationFault;
+    }
+
+    public ValidationFault_Exception(String message, org.jboss.wise.test.integration.complex.ValidationFault validationFault, Throwable cause) {
+        super(message, cause);
+        this.validationFault = validationFault;
+    }
+
+    public org.jboss.wise.test.integration.complex.ValidationFault getFaultInfo() {
+        return this.validationFault;
+    }
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/WiseIntegrationComplexTest.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/WiseIntegrationComplexTest.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/WiseIntegrationComplexTest.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,140 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2013, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wise.test.integration.complex;
+
+import java.io.ByteArrayOutputStream;
+import java.lang.reflect.ParameterizedType;
+import java.net.URL;
+import java.util.Map;
+
+import javax.jws.WebParam;
+import javax.xml.ws.Holder;
+
+import org.jboss.wise.core.client.InvocationResult;
+import org.jboss.wise.core.client.WSDynamicClient;
+import org.jboss.wise.core.client.WSMethod;
+import org.jboss.wise.core.client.WebParameter;
+import org.jboss.wise.core.client.builder.WSDynamicClientBuilder;
+import org.jboss.wise.core.client.factories.WSDynamicClientFactory;
+import org.jboss.wise.core.test.WiseTest;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * 
+ * @author alessio.soldano at jboss.com
+ *
+ */
+public class WiseIntegrationComplexTest extends WiseTest {
+    
+    private static URL warUrl = null;
+    private static WSDynamicClient client;
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+	warUrl = WiseIntegrationComplexTest.class.getClassLoader().getResource("complex.war");
+	deployWS(warUrl);
+	
+	URL wsdlURL = new URL(getServerHostAndPort() + "/complex/RegistrationService?wsdl");
+
+	WSDynamicClientBuilder clientBuilder = WSDynamicClientFactory.getJAXWSClientBuilder();
+	client = clientBuilder.tmpDir("target/temp/wise").verbose(true).keepSource(true).wsdlURL(wsdlURL
+		.toString()).build();
+    }
+
+    @Test
+    public void shouldInvokeRegisterOperation() throws Exception {
+	WSMethod method = client.getWSMethod("RegistrationServiceImplService", "RegistrationServiceImplPort", "Register");
+	Map<String, ? extends WebParameter> pars = method.getWebParams();
+	WebParameter customerPar = pars.get("Customer");
+	Class<?> customerClass = (Class<?>)customerPar.getType();
+	Object customer = customerClass.newInstance();
+	customerClass.getMethod("setId", long.class).invoke(customer, new Long(1234));
+	Class<?> nameClass = (Class<?>)customerClass.getDeclaredField("name").getType();
+	Object name = nameClass.newInstance();
+	nameClass.getMethod("setFirstName", String.class).invoke(name, "Foo");
+	nameClass.getMethod("setLastName", String.class).invoke(name, "Bar");
+	nameClass.getMethod("setMiddleName", String.class).invoke(name, "The");
+	customerClass.getMethod("setName", nameClass).invoke(customer, name);
+	
+	Map<String, Object> args = new java.util.HashMap<String, Object>();
+	args.put("Customer", customer);
+	args.put("When", null);
+	ByteArrayOutputStream bos = new ByteArrayOutputStream();
+	method.writeRequestPreview(args, bos);
+	Assert.assertTrue(bos.toString().contains("<id>1234</id>"));
+	InvocationResult result = method.invoke(args, null);
+	Map<String, Object> res = result.getMapRequestAndResult(null, null);
+	Map<String, Object> test = (Map<String, Object>) res.get("results");
+	Assert.assertEquals(new Long(1234).longValue(), test.get("result"));
+	Assert.assertEquals(long.class, test.get("type.result"));
+    }
+
+    @Test
+    public void shouldInvokeEchoOperation() throws Exception {
+	WSMethod method = client.getWSMethod("RegistrationServiceImplService", "RegistrationServiceImplPort", "Echo");
+	Map<String, ? extends WebParameter> pars = method.getWebParams();
+	WebParameter customerPar = pars.get("Customer");
+	Assert.assertEquals(WebParam.Mode.INOUT, customerPar.getMode());
+	Class<?> holderClass = (Class<?>)((ParameterizedType)customerPar.getType()).getRawType();
+	Assert.assertEquals(Holder.class, holderClass);
+	Class<?> customerClass = (Class<?>)((ParameterizedType)customerPar.getType()).getActualTypeArguments()[0];
+	Object customer = customerClass.newInstance();
+	customerClass.getMethod("setId", long.class).invoke(customer, new Long(1235));
+	Class<?> nameClass = (Class<?>)customerClass.getDeclaredField("name").getType();
+	Object name = nameClass.newInstance();
+	nameClass.getMethod("setFirstName", String.class).invoke(name, "Foo");
+	nameClass.getMethod("setLastName", String.class).invoke(name, "Bar");
+	nameClass.getMethod("setMiddleName", String.class).invoke(name, "The");
+	customerClass.getMethod("setName", nameClass).invoke(customer, name);
+	
+	Map<String, Object> args = new java.util.HashMap<String, Object>();
+	args.put("Customer", new Holder(customer));
+	ByteArrayOutputStream bos = new ByteArrayOutputStream();
+	method.writeRequestPreview(args, bos);
+	Assert.assertTrue(bos.toString().contains("<firstName>Foo</firstName>"));
+	InvocationResult result = method.invoke(args, null);
+	Map<String, Object> res = result.getMapRequestAndResult(null, null);
+	Map<String, Object> test = (Map<String, Object>) res.get("results");
+	Assert.assertEquals(void.class, test.get("type.result"));
+	ParameterizedType returnType = (ParameterizedType)test.get("type.Customer");
+	Assert.assertEquals(Holder.class, returnType.getRawType());
+	Assert.assertEquals(customerClass, returnType.getActualTypeArguments()[0]);
+	Assert.assertNull(test.get("result"));
+	Object returnObj = ((Holder<?>)test.get("Customer")).value;
+	Object returnNameObj = customerClass.getMethod("getName").invoke(returnObj);
+	Assert.assertEquals("Foo", nameClass.getMethod("getFirstName").invoke(returnNameObj));
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+	try {
+	    undeployWS(warUrl);
+	} finally {
+	    warUrl = null;
+	    client.close();
+	    client = null;
+	}
+    }
+}

Added: core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/package-info.java
===================================================================
--- core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/package-info.java	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/java/org/jboss/wise/test/integration/complex/package-info.java	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://types.complex.jaxws.ws.test.jboss.org/", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.wise.test.integration.complex;

Added: core/trunk/integration-testsuite/common/src/test/resources/WEB-INF/complex/web.xml
===================================================================
--- core/trunk/integration-testsuite/common/src/test/resources/WEB-INF/complex/web.xml	                        (rev 0)
+++ core/trunk/integration-testsuite/common/src/test/resources/WEB-INF/complex/web.xml	2013-02-25 09:26:24 UTC (rev 532)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+  version="2.4">
+
+  <servlet>
+    <servlet-name>RegistrationService</servlet-name>
+    <servlet-class>org.jboss.wise.test.integration.complex.RegistrationServiceImpl</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>RegistrationService</servlet-name>
+    <url-pattern>/RegistrationService</url-pattern>
+  </servlet-mapping>
+</web-app>



More information about the wise-commits mailing list