incubator-yoko-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From br...@apache.org
Subject svn commit: r487225 [1/2] - in /incubator/yoko/trunk: ./ bindings/ bindings/src/test/java/org/apache/yoko/bindings/corba/ bindings/src/test/resources/wsdl/type_test/ tools/src/main/java/org/apache/yoko/tools/processors/wsdl/
Date Thu, 14 Dec 2006 15:01:36 GMT
Author: bravi
Date: Thu Dec 14 07:01:35 2006
New Revision: 487225

URL: http://svn.apache.org/viewvc?view=rev&rev=487225
Log:
[YOKO-245] Merging the type test framework for the corba wsdl binding.

Added:
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/AbstractTypeTestClient.java   (with props)
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java   (with props)
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTestServer.java   (with props)
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/ServerLauncher.java   (with props)
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_signature.xsl   (with props)
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_types.xsl   (with props)
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/type_test.xsd   (with props)
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/type_test_ID_xsd.xsl   (with props)
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/type_test_impl_java.xsl   (with props)
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/type_test_tester_java.xsl   (with props)
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/type_test_wsdl.xsl   (with props)
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/type_test_wsdl_service.xsl   (with props)
Modified:
    incubator/yoko/trunk/bindings/pom.xml
    incubator/yoko/trunk/pom.xml
    incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLParameter.java

Modified: incubator/yoko/trunk/bindings/pom.xml
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/pom.xml?view=diff&rev=487225&r1=487224&r2=487225
==============================================================================
--- incubator/yoko/trunk/bindings/pom.xml (original)
+++ incubator/yoko/trunk/bindings/pom.xml Thu Dec 14 07:01:35 2006
@@ -77,6 +77,38 @@
  
     <build>
         <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>copy</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>org.apache.yoko</groupId>
+                                    <artifactId>yoko-spec-corba</artifactId>
+                                    <type>jar</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
+                                </artifactItem>
+                                <artifactItem>
+                                    <groupId>org.apache.yoko</groupId>
+                                    <artifactId>yoko-core</artifactId>
+                                    <type>jar</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
+                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+             </plugin>
+
 <!--            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
@@ -101,7 +133,190 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
-            </plugin> 
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <version>${antrun.version}</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>ant</groupId>
+                        <artifactId>ant-trax</artifactId>
+                        <version>1.6.5</version>
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <id>generate-test-sources</id>
+                        <phase>generate-test-sources</phase>
+                        <configuration>
+                            <testSourceRoot>${basedir}/target/generated/src/test/java</testSourceRoot>
+                            <tasks>
+                                <property name="generated.target" value="${basedir}/target/generated" />
+                                <property name="generated.src.test" value="${generated.target}/src/test/java" />
+                                <property name="generated.resources.test" value="${generated.target}/src/test/resources" />
+                                <property name="generated.wsdl.test" value="${generated.resources.test}/" />
+                                <property name="test.resources.dir" location="${basedir}/src/test/resources" />
+
+                                <mkdir dir="${generated.resources.test}/wsdl/type_test" />
+                                <xslt style="${test.resources.dir}/wsdl/type_test/type_test_ID_xsd.xsl" in="${test.resources.dir}/wsdl/type_test/type_test.xsd" out="${generated.resources.test}/wsdl/type_test/type_test_1.xsd">
+                                    <param name="groupID" expression="1" />
+                                </xslt>
+                                <xslt style="${test.resources.dir}/wsdl/type_test/type_test_ID_xsd.xsl" in="${test.resources.dir}/wsdl/type_test/type_test.xsd" out="${generated.resources.test}/wsdl/type_test/type_test_2.xsd">
+                                    <param name="groupID" expression="2" />
+                                </xslt>
+                                <xslt style="${test.resources.dir}/wsdl/type_test/type_test_ID_xsd.xsl" in="${test.resources.dir}/wsdl/type_test/type_test.xsd" out="${generated.resources.test}/wsdl/type_test/type_test_3.xsd">
+                                    <param name="groupID" expression="3" />
+                                </xslt>
+                                <xslt style="${test.resources.dir}/wsdl/type_test/type_test_wsdl.xsl" in="${test.resources.dir}/wsdl/type_test/type_test.xsd" out="${generated.resources.test}/wsdl/type_test/type_test_corba_inc.wsdl">
+                                    <param name="inc_xsd_path" expression="${generated.resources.test}/wsdl/type_test" />
+                                    <param name="use_style" expression="document" />
+                                    <param name="tns_suffix" expression="corba" />
+                                </xslt>
+                                <mkdir dir="${generated.src.test}/org/apache/type_test/corba" />
+                                <xslt style="${test.resources.dir}/wsdl/type_test/type_test_impl_java.xsl" in="${test.resources.dir}/wsdl/type_test/type_test.xsd" out="${generated.src.test}/org/apache/type_test/corba/TypeTestImpl.java" />
+                                <xslt style="${test.resources.dir}/wsdl/type_test/type_test_tester_java.xsl" in="${test.resources.dir}/wsdl/type_test/type_test.xsd" out="${generated.src.test}/org/apache/type_test/corba/TypeTestTester.java" />
+
+                            </tasks>
+                        </configuration>
+                        <goals>
+                            <goal>run</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>generate-type-test-corba-service</id>
+                        <phase>generate-test-resources</phase>
+                        <configuration>
+                            <testSourceRoot>${basedir}/target/generated/src/test/java</testSourceRoot>
+                            <tasks>
+                                <property name="generated.target" value="${basedir}/target/generated" />
+                                <property name="generated.src.test" value="${generated.target}/src/test/java" />
+                                <property name="generated.resources.test" value="${generated.target}/src/test/resources" />
+                                <property name="generated.wsdl.test" value="${generated.resources.test}/" />
+                                <property name="test.resources.dir" location="${basedir}/src/test/resources" />
+
+                                <mkdir dir="${generated.resources.test}/wsdl/type_test" />
+                                <xslt style="${test.resources.dir}/wsdl/type_test/type_test_wsdl_service.xsl" in="${generated.resources.test}/wsdl/type_test/type_test_corba_binding.wsdl" out="${generated.resources.test}/wsdl/type_test/type_test_corba.wsdl" />
+                            </tasks>
+                        </configuration>
+                        <goals>
+                            <goal>run</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.yoko</groupId>
+                <artifactId>yoko-maven-plugins</artifactId>
+                <version>${project.version}</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>wsdl4j</groupId>
+                        <artifactId>wsdl4j</artifactId>
+                        <version>1.5.2</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.apache.cxf</groupId>
+                        <artifactId>cxf-tools-common</artifactId>
+                        <version>${cxf.version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.apache.cxf</groupId>
+                        <artifactId>cxf-api</artifactId>
+                        <version>${cxf.version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.apache.yoko</groupId>
+                        <artifactId>yoko-api</artifactId>
+                        <version>${project.version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>woodstox</groupId> 
+                        <artifactId>wstx-asl</artifactId> 
+                        <version>2.9.3</version> 
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <id>generate-type-test-corba-binding</id>
+                        <phase>process-test-sources</phase>
+                        <configuration>
+                            <testSourceRoot>${basedir}/target/generated/src/test/java</testSourceRoot>
+                            <outputDir>${basedir}/target/generated/src/test/resources/wsdl/type_test</outputDir>
+                            <wsdltoidlOptions>
+                                <wsdltoidlOption>
+                                    <wsdl>${basedir}/target/generated/src/test/resources/wsdl/type_test/type_test_corba_inc.wsdl</wsdl>
+                                    <corbabinding>true</corbabinding>
+                                    <extraargs>
+                                        <extraarg>-o</extraarg>
+                                        <extraarg>type_test_corba_binding.wsdl</extraarg>
+                                        <extraarg>-b</extraarg>
+                                        <extraarg>TypeTestCORBABinding</extraarg>
+                                        <extraarg>-verbose</extraarg>
+                                    </extraargs>
+                                </wsdltoidlOption>
+                             </wsdltoidlOptions>
+                        </configuration>
+                        <goals>
+                            <goal>wsdltoidl</goal>
+                        </goals>
+                    </execution>
+                </executions>
+             </plugin>
+            <plugin>
+                <groupId>org.apache.cxf</groupId>
+                <artifactId>cxf-codegen-plugin</artifactId>
+                <version>${cxf.version}</version>
+                <executions>
+                    <execution>
+                        <id>generate-type-test-java-sources</id>
+                        <phase>process-test-resources</phase>
+                        <configuration>
+                            <testSourceRoot>${basedir}/target/generated/src/test/java</testSourceRoot>
+                            <wsdlOptions>
+                                <wsdlOption>
+                                    <wsdl>
+                                        ${basedir}/target/generated/src/test/resources/wsdl/type_test/type_test_corba.wsdl
+                                    </wsdl>
+                                    <extraargs>
+                                        <extraarg>-verbose</extraarg>
+                                    </extraargs>
+                                    <dependencies>
+                                        <dependency>
+                                            ${basedir}/target/generated/src/test/resources/wsdl/type_test/type_test_corba_inc.wsdl
+                                        </dependency>
+                                        <dependency>
+                                            ${basedir}/target/generated/src/test/resources/wsdl/type_test/type_test_1.xsd
+                                        </dependency>
+                                        <dependency>
+                                            ${basedir}/target/generated/src/test/resources/wsdl/type_test/type_test_2.xsd
+                                        </dependency>
+                                        <dependency>
+                                            ${basedir}/target/generated/src/test/resources/wsdl/type_test/type_test_3.xsd
+                                        </dependency>
+                                    </dependencies>
+                                </wsdlOption>
+                            </wsdlOptions>
+                        </configuration>
+                        <goals>
+                            <goal>wsdl2java</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <systemProperties>
+                        <property>
+                            <name>java.endorsed.dirs</name>
+                            <value>${basedir}/target/endorsed</value>
+                        </property>
+                    </systemProperties>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
     

Added: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/AbstractTypeTestClient.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/AbstractTypeTestClient.java?view=auto&rev=487225
==============================================================================
--- incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/AbstractTypeTestClient.java (added)
+++ incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/AbstractTypeTestClient.java Thu Dec 14 07:01:35 2006
@@ -0,0 +1,855 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.yoko.bindings.corba;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.xml.datatype.DatatypeConstants;
+import javax.xml.datatype.Duration;
+import javax.xml.datatype.XMLGregorianCalendar;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Holder;
+
+import org.apache.type_test.corba.TypeTestPortType;
+import org.apache.type_test.corba.TypeTestTester;
+import org.apache.type_test.corba.CORBAService;
+
+import junit.framework.TestCase;
+
+public abstract class AbstractTypeTestClient extends TestCase implements TypeTestTester {
+    protected static org.apache.type_test.corba.TypeTestPortType client;
+
+    protected boolean perfTestOnly;
+
+    public AbstractTypeTestClient(String name) {
+        super(name); 
+    }
+
+    public void setPerformanceTestOnly() {
+        perfTestOnly = true;
+    }
+
+    public static void initClient(Class clz, QName serviceName, QName portName, String wsdlPath) 
+        throws Exception {       
+        URL wsdlLocation = clz.getResource(wsdlPath);
+        org.apache.type_test.corba.CORBAService service =
+            new org.apache.type_test.corba.CORBAService(wsdlLocation, serviceName);
+        client = service.getPort(portName, org.apache.type_test.corba.TypeTestPortType.class);
+        assertNotNull("Could not create corba client", client);
+    }
+
+    protected boolean equalsDate(XMLGregorianCalendar orig, XMLGregorianCalendar actual) {
+        boolean result = false;
+
+        if ((orig.getYear() == actual.getYear()) 
+            && (orig.getMonth() == actual.getMonth())
+            && (orig.getDay() == actual.getDay())
+            && (actual.getHour() == DatatypeConstants.FIELD_UNDEFINED) 
+            && (actual.getMinute() == DatatypeConstants.FIELD_UNDEFINED)
+            && (actual.getSecond() == DatatypeConstants.FIELD_UNDEFINED)
+            && (actual.getMillisecond() == DatatypeConstants.FIELD_UNDEFINED)) {
+
+            result = orig.getTimezone() == actual.getTimezone();
+        }
+        return result;
+    }
+
+    protected boolean equalsTime(XMLGregorianCalendar orig, XMLGregorianCalendar actual) {
+        boolean result = false;
+        if ((orig.getHour() == actual.getHour())
+            && (orig.getMinute() == actual.getMinute())
+            && (orig.getSecond() == actual.getSecond())
+            && (orig.getMillisecond() == actual.getMillisecond())
+            && (orig.getTimezone() == actual.getTimezone())) {
+            result = true;
+        }
+        return result;
+    }
+
+    protected boolean equalsDateTime(XMLGregorianCalendar orig, XMLGregorianCalendar actual) {
+        boolean result = false;
+        if ((orig.getYear() == actual.getYear())
+            && (orig.getMonth() == actual.getMonth())
+            && (orig.getDay() == actual.getDay())
+            && (orig.getHour() == actual.getHour())
+            && (orig.getMinute() == actual.getMinute())
+            && (orig.getSecond() == actual.getSecond())
+            && (orig.getMillisecond() == actual.getMillisecond())) {
+
+            result = orig.getTimezone() == actual.getTimezone();
+        }
+        return result;
+    }
+
+    public void testVoid() throws Exception {
+        client.testVoid();
+    }
+    
+    public void testOneway() throws Exception {
+        String x = "hello";
+        String y = "oneway";        
+        client.testOneway(x, y);
+    }
+
+    public void testByte() throws Exception {
+        byte valueSets[][] = {
+            {0, 1},
+            {-1, 0},
+            {Byte.MIN_VALUE, Byte.MAX_VALUE}
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            byte x = valueSets[i][0];
+            Holder<Byte> yOrig = new Holder<Byte>(valueSets[i][1]);
+            Holder<Byte> y = new Holder<Byte>(valueSets[i][1]);
+            Holder<Byte> z = new Holder<Byte>();
+
+            byte ret = client.testByte(x, y, z);
+            if (!perfTestOnly) {
+                assertEquals("testByte(): Incorrect value for inout param",
+                             Byte.valueOf(x), y.value);
+                assertEquals("testByte(): Incorrect value for out param",
+                             yOrig.value, z.value);
+                assertEquals("testByte(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testShort() throws Exception {
+        short valueSets[][] = {
+            {0, 1},
+            {-1, 0},
+            {Short.MIN_VALUE, Short.MAX_VALUE}
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            short x = valueSets[i][0];
+            Holder<Short> yOrig = new Holder<Short>(valueSets[i][1]);
+            Holder<Short> y = new Holder<Short>(valueSets[i][1]);
+            Holder<Short> z = new Holder<Short>();
+
+            short ret = client.testShort(x, y, z);
+    
+            if (!perfTestOnly) {
+                assertEquals("testShort(): Incorrect value for inout param", Short.valueOf(x), y.value);
+                assertEquals("testShort(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testShort(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testUnsignedShort() throws Exception {
+        int valueSets[][] = {{0, 1}, {1, 0}, {0, Short.MAX_VALUE * 2 + 1}};
+
+        for (int i = 0; i < valueSets.length; i++) {
+            int x = valueSets[i][0];
+            Holder<Integer> yOrig = new Holder<Integer>(valueSets[i][1]);
+            Holder<Integer> y = new Holder<Integer>(valueSets[i][1]);
+            Holder<Integer> z = new Holder<Integer>();
+
+            int ret = client.testUnsignedShort(x, y, z);
+ 
+            if (!perfTestOnly) {
+                assertEquals("testUnsignedShort(): Incorrect value for inout param",
+                             Integer.valueOf(x), y.value);
+                assertEquals("testUnsignedShort(): Incorrect value for out param",
+                             yOrig.value, z.value);
+                assertEquals("testUnsignedShort(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testInt() throws Exception {
+        int valueSets[][] = {{5, 10}, {-10, 50},
+                             {Integer.MIN_VALUE, Integer.MAX_VALUE}};
+
+        for (int i = 0; i < valueSets.length; i++) {
+            int x = valueSets[i][0];
+            Holder<Integer> yOrig = new Holder<Integer>(valueSets[i][1]);
+            Holder<Integer> y = new Holder<Integer>(valueSets[i][1]);
+            Holder<Integer> z = new Holder<Integer>();
+            
+            int ret = client.testInt(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testInt(): Incorrect value for inout param", Integer.valueOf(x), y.value);
+                assertEquals("testInt(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testInt(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testUnsignedInt() throws Exception {
+        long valueSets[][] = {{11, 20}, {1, 0},
+                              {0, ((long)Integer.MAX_VALUE) * 2 + 1}};
+
+        for (int i = 0; i < valueSets.length; i++) {
+            long x = valueSets[i][0];
+            long yOrig = valueSets[i][1];
+            Holder<Long> y = new Holder<Long>(valueSets[i][1]);
+            Holder<Long> z = new Holder<Long>();
+
+            long ret = client.testUnsignedInt(x, y, z);
+            if (!perfTestOnly) {
+                assertEquals("testUnsignedInt(): Incorrect value for inout param",
+                             Long.valueOf(x), y.value);
+                assertEquals("testUnsignedInt(): Incorrect value for out param",
+                             Long.valueOf(yOrig), z.value);
+                assertEquals("testUnsignedInt(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testLong() throws Exception {
+        long valueSets[][] = {{0, 1}, {-1, 0},
+                              {Long.MIN_VALUE, Long.MAX_VALUE}};
+
+        for (int i = 0; i < valueSets.length; i++) {
+            long x = valueSets[i][0];
+            Holder<Long> yOrig = new Holder<Long>(valueSets[i][1]);
+            Holder<Long> y = new Holder<Long>(valueSets[i][1]);
+            Holder<Long> z = new Holder<Long>();
+
+            long ret = client.testLong(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testLong(): Incorrect value for inout param", Long.valueOf(x), y.value);
+                assertEquals("testLong(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testLong(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testUnsignedLong() throws Exception {
+        BigInteger valueSets[][] = {{new BigInteger("0"), new BigInteger("1")},
+                                    {new BigInteger("1"), new BigInteger("0")},
+                                    {new BigInteger("0"), 
+                                     new BigInteger(String.valueOf(Long.MAX_VALUE * Long.MAX_VALUE))}};
+
+        for (int i = 0; i < valueSets.length; i++) {
+            BigInteger x = valueSets[i][0];
+            Holder<BigInteger> yOrig = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> y = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> z = new Holder<BigInteger>();
+
+            BigInteger ret = client.testUnsignedLong(x, y, z);
+            
+            if (!perfTestOnly) {
+                assertEquals("testUnsignedLong(): Incorrect value for inout param", x, y.value);
+                assertEquals("testUnsignedLong(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testUnsignedLong(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testFloat() throws Exception {
+        float delta = 0.0f;
+        float valueSets[][] = {
+            {0.0f, 1.0f},
+            {-1.0f, (float)java.lang.Math.PI},
+            {-100.0f, 100.0f},
+            {Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY},
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            float x = valueSets[i][0];
+            Holder<Float> yOrig = new Holder<Float>(valueSets[i][1]);
+            Holder<Float> y = new Holder<Float>(valueSets[i][1]);
+            Holder<Float> z = new Holder<Float>();
+
+            float ret = client.testFloat(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals(i + ": testFloat(): Wrong value for inout param", x, y.value, delta);
+                assertEquals(i + ": testFloat(): Wrong value for out param", yOrig.value, z.value, delta);
+                assertEquals(i + ": testFloat(): Wrong return value", x, ret, delta);
+            }
+        }
+
+        float x = Float.NaN;
+        Holder<Float> yOrig = new Holder<Float>(0.0f);
+        Holder<Float> y = new Holder<Float>(0.0f);
+        Holder<Float> z = new Holder<Float>();
+        float ret = client.testFloat(x, y, z);
+
+        if (!perfTestOnly) {
+            assertTrue("testFloat(): Incorrect value for inout param", Float.isNaN(y.value));
+            assertEquals("testFloat(): Incorrect value for out param", yOrig.value, z.value, delta);
+            assertTrue("testFloat(): Incorrect return value", Float.isNaN(ret));
+        }
+    }
+
+    public void testDouble() throws Exception {
+        double delta = 0.0d;
+        double valueSets[][] = {
+            {0.0f, 1.0f},
+            {-1, java.lang.Math.PI},
+            {-100.0, 100.0},
+            {Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY},
+            //{Double.MIN_VALUE, 0},
+            //{Double.MAX_VALUE,0},
+        };
+        for (int i = 0; i < valueSets.length; i++) {
+            double x = valueSets[i][0];
+            Holder<Double> yOrig = new Holder<Double>(valueSets[i][1]);
+            Holder<Double> y = new Holder<Double>(valueSets[i][1]);
+            Holder<Double> z = new Holder<Double>();
+
+            double ret = client.testDouble(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testDouble(): Incorrect value for inout param", x, y.value, delta);
+                assertEquals("testDouble(): Incorrect value for out param", yOrig.value, z.value, delta);
+                assertEquals("testDouble(): Incorrect return value", x, ret, delta);
+            }
+        }
+
+        double x = Double.NaN;
+        Holder<Double> yOrig = new Holder<Double>(0.0);
+        Holder<Double> y = new Holder<Double>(0.0);
+        Holder<Double> z = new Holder<Double>();
+        double ret = client.testDouble(x, y, z);
+
+        if (!perfTestOnly) {
+            assertTrue("testDouble(): Incorrect value for inout param", Double.isNaN(y.value));
+            assertEquals("testDouble(): Incorrect value for out param", yOrig.value, z.value, delta);
+            assertTrue("testDouble(): Incorrect return value", Double.isNaN(ret));
+        }
+    }
+
+    public void testUnsignedByte() throws Exception {
+        short valueSets[][] = {{0, 1}, {1, 0},
+                               {0, Byte.MAX_VALUE * 2 + 1}};
+
+        for (int i = 0; i < valueSets.length; i++) {
+            short x = valueSets[i][0];
+            Holder<Short> yOrig = new Holder<Short>(valueSets[i][1]);
+            Holder<Short> y = new Holder<Short>(valueSets[i][1]);
+            Holder<Short> z = new Holder<Short>();
+
+            short ret = client.testUnsignedByte(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testUnsignedByte(): Incorrect value for inout param",
+                             Short.valueOf(x), y.value);
+                assertEquals("testUnsignedByte(): Incorrect value for out param",
+                             yOrig.value, z.value);
+                assertEquals("testUnsignedByte(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testBoolean() throws Exception {
+        boolean valueSets[][] = {{true, false}, {true, true},
+                                 {false, true}, {false, false}};
+
+        for (int i = 0; i < valueSets.length; i++) {
+            boolean x = valueSets[i][0];
+            Holder<Boolean> yOrig = new Holder<Boolean>(valueSets[i][1]);
+            Holder<Boolean> y = new Holder<Boolean>(valueSets[i][1]);
+            Holder<Boolean> z = new Holder<Boolean>();
+
+            boolean ret = client.testBoolean(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testBoolean(): Incorrect value for inout param", Boolean.valueOf(x), y.value);
+                assertEquals("testBoolean(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testBoolean(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testString() throws Exception {
+        int bufferSize = 1000;
+        StringBuffer buffer = new StringBuffer(bufferSize);
+        StringBuffer buffer2 = new StringBuffer(bufferSize);
+        for (int x = 0; x < bufferSize; x++) {
+            buffer.append((char)('a' + (x % 26)));
+            buffer2.append((char)('A' + (x % 26)));
+        }
+        
+        String valueSets[][] = {{"hello", "world"}, {"is pi > 3 ?", " is pi < 4\\\""},
+                                {"<illegal_tag/>", ""},
+                                {buffer.toString(), buffer2.toString()}};
+
+        for (int i = 0; i < valueSets.length; i++) {
+            String x = valueSets[i][0];
+            Holder<String> yOrig = new Holder<String>(valueSets[i][1]);
+            Holder<String> y = new Holder<String>(valueSets[i][1]);
+            Holder<String> z = new Holder<String>();
+
+            String ret = client.testString(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testString(): Incorrect value for inout param", x, y.value);
+                assertEquals("testString(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testString(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testQName() throws Exception {
+        String valueSets[][] = {
+            {"NoNamespaceService", ""},
+            {"HelloWorldService", "http://www.iona.com/services"},
+            {"MyService", "http://www.iona.com/iona"}
+        };
+        for (int i = 0; i < valueSets.length; i++) {
+            QName x = new QName(valueSets[i][1], valueSets[i][0]);
+            QName yOrig = new QName("http://www.iona.com/inoutqname", "InOutQName");
+            Holder<QName> y = new Holder<QName>(yOrig);
+            Holder<QName> z = new Holder<QName>();
+
+            QName ret = client.testQName(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testQName(): Incorrect value for inout param", x, y.value);
+                assertEquals("testQName(): Incorrect value for out param", yOrig, z.value);
+                assertEquals("testQName(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testDate() throws Exception {
+    }
+    
+
+    public void testDateTime() throws Exception {
+    }
+
+    public void testTime() throws Exception {
+    }
+
+    public void testGYear() throws Exception {
+        javax.xml.datatype.DatatypeFactory datatypeFactory = javax.xml.datatype.DatatypeFactory.newInstance();
+
+        XMLGregorianCalendar x = datatypeFactory.newXMLGregorianCalendar("2004");
+        XMLGregorianCalendar yOrig = datatypeFactory.newXMLGregorianCalendar("2003+05:00");
+
+        Holder<XMLGregorianCalendar> y = new Holder<XMLGregorianCalendar>(yOrig);
+        Holder<XMLGregorianCalendar> z = new Holder<XMLGregorianCalendar>();
+
+        XMLGregorianCalendar ret = client.testGYear(x, y, z);
+        if (!perfTestOnly) {
+            assertTrue("testGYear(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testGYear(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testGYear(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testGYearMonth() throws Exception {
+        javax.xml.datatype.DatatypeFactory datatypeFactory = javax.xml.datatype.DatatypeFactory.newInstance();
+
+        XMLGregorianCalendar x = datatypeFactory.newXMLGregorianCalendar("2004-08");
+        XMLGregorianCalendar yOrig = datatypeFactory.newXMLGregorianCalendar("2003-12+05:00");
+
+        Holder<XMLGregorianCalendar> y = new Holder<XMLGregorianCalendar>(yOrig);
+        Holder<XMLGregorianCalendar> z = new Holder<XMLGregorianCalendar>();
+
+        XMLGregorianCalendar ret = client.testGYearMonth(x, y, z);            
+        if (!perfTestOnly) {
+            assertTrue("testGYearMonth(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testGYearMonth(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testGYearMonth(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testGMonth() throws Exception {
+        javax.xml.datatype.DatatypeFactory datatypeFactory = javax.xml.datatype.DatatypeFactory.newInstance();
+
+        XMLGregorianCalendar x = datatypeFactory.newXMLGregorianCalendar("--08--");
+        XMLGregorianCalendar yOrig = datatypeFactory.newXMLGregorianCalendar("--12--+05:00");
+
+        Holder<XMLGregorianCalendar> y = new Holder<XMLGregorianCalendar>(yOrig);
+        Holder<XMLGregorianCalendar> z = new Holder<XMLGregorianCalendar>();
+
+        XMLGregorianCalendar ret = client.testGMonth(x, y, z);
+        if (!perfTestOnly) {
+            assertTrue("testGMonth(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testGMonth(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testGMonth(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testGMonthDay() throws Exception {
+        javax.xml.datatype.DatatypeFactory datatypeFactory = javax.xml.datatype.DatatypeFactory.newInstance();
+
+        XMLGregorianCalendar x = datatypeFactory.newXMLGregorianCalendar("--08-21");
+        XMLGregorianCalendar yOrig = datatypeFactory.newXMLGregorianCalendar("--12-05+05:00");
+
+        Holder<XMLGregorianCalendar> y = new Holder<XMLGregorianCalendar>(yOrig);
+        Holder<XMLGregorianCalendar> z = new Holder<XMLGregorianCalendar>();
+
+        XMLGregorianCalendar ret = client.testGMonthDay(x, y, z);            
+        if (!perfTestOnly) {
+            assertTrue("testGMonthDay(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testGMonthDay(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testGMonthDay(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testGDay() throws Exception {
+        javax.xml.datatype.DatatypeFactory datatypeFactory = javax.xml.datatype.DatatypeFactory.newInstance();
+
+        XMLGregorianCalendar x = datatypeFactory.newXMLGregorianCalendar("---21");
+        XMLGregorianCalendar yOrig = datatypeFactory.newXMLGregorianCalendar("---05+05:00");
+
+        Holder<XMLGregorianCalendar> y = new Holder<XMLGregorianCalendar>(yOrig);
+        Holder<XMLGregorianCalendar> z = new Holder<XMLGregorianCalendar>();
+
+        XMLGregorianCalendar ret = client.testGDay(x, y, z);            
+        if (!perfTestOnly) {
+            assertTrue("testGDay(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testGDay(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testGDay(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testDuration() throws Exception {
+        javax.xml.datatype.DatatypeFactory datatypeFactory = javax.xml.datatype.DatatypeFactory.newInstance();
+
+        Duration x = datatypeFactory.newDuration("P1Y35DT60M60.500S");
+        Duration yOrig = datatypeFactory.newDuration("-P2MT24H60S");
+
+        Holder<Duration> y = new Holder<Duration>(yOrig);
+        Holder<Duration> z = new Holder<Duration>();
+
+        Duration ret = client.testDuration(x, y, z);            
+        if (!perfTestOnly) {
+            assertTrue("testDuration(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testDuration(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testDuration(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testNormalizedString() throws Exception {
+        String x = "  normalized string ";
+        String yOrig = "  another normalized  string ";
+
+        Holder<String> y = new Holder<String>(yOrig);
+        Holder<String> z = new Holder<String>();
+
+        String ret = client.testNormalizedString(x, y, z);            
+        if (!perfTestOnly) {
+            assertTrue("testNormalizedString(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testNormalizedString(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testNormalizedString(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testToken() throws Exception {
+        String x = "token";
+        String yOrig = "another token";
+
+        Holder<String> y = new Holder<String>(yOrig);
+        Holder<String> z = new Holder<String>();
+
+        String ret = client.testToken(x, y, z);            
+        if (!perfTestOnly) {
+            assertTrue("testToken(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testToken(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testToken(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testLanguage() throws Exception {
+        String x = "abc";
+        String yOrig = "abc-def";
+
+        Holder<String> y = new Holder<String>(yOrig);
+        Holder<String> z = new Holder<String>();
+
+        String ret = client.testLanguage(x, y, z);            
+        if (!perfTestOnly) {
+            assertTrue("testLanguage(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testLanguage(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testLanguage(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testNMTOKEN() throws Exception {
+        String x = "123:abc";
+        String yOrig = "abc.-_:";
+
+        Holder<String> y = new Holder<String>(yOrig);
+        Holder<String> z = new Holder<String>();
+
+        String ret = client.testNMTOKEN(x, y, z);            
+        if (!perfTestOnly) {
+            assertTrue("testNMTOKEN(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testNMTOKEN(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testNMTOKEN(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testNMTOKENS() throws Exception {
+    }
+    
+    public void testName() throws Exception {
+        String x = "abc:123";
+        String yOrig = "abc.-_";
+
+        Holder<String> y = new Holder<String>(yOrig);
+        Holder<String> z = new Holder<String>();
+
+        String ret = client.testName(x, y, z);
+        if (!perfTestOnly) {
+            assertTrue("testName(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testName(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testName(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testNCName() throws Exception {
+        String x = "abc-123";
+        String yOrig = "abc.-";
+
+        Holder<String> y = new Holder<String>(yOrig);
+        Holder<String> z = new Holder<String>();
+
+        String ret = client.testNCName(x, y, z);
+        if (!perfTestOnly) {
+            assertTrue("testNCName(): Incorrect value for inout param", x.equals(y.value));
+            assertTrue("testNCName(): Incorrect value for out param", yOrig.equals(z.value));
+            assertTrue("testNCName(): Incorrect return value", x.equals(ret));
+        }
+    }
+
+    public void testID() throws Exception {
+    }
+    
+    public void testDecimal() throws Exception {
+        BigDecimal valueSets[][] = {
+            {new BigDecimal("-1234567890.000000"), new BigDecimal("1234567890.000000")},
+            {new BigDecimal("-" + String.valueOf(Long.MAX_VALUE * Long.MAX_VALUE) + ".000000"),
+             new BigDecimal(String.valueOf(Long.MAX_VALUE * Long.MAX_VALUE) + ".000000")}
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            BigDecimal x = valueSets[i][0];
+            Holder<BigDecimal> yOrig = new Holder<BigDecimal>(valueSets[i][1]);
+            Holder<BigDecimal> y = new Holder<BigDecimal>(valueSets[i][1]);
+            Holder<BigDecimal> z = new Holder<BigDecimal>();
+
+            BigDecimal ret = client.testDecimal(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testDecimal(): Incorrect value for inout param", x, y.value);
+                assertEquals("testDecimal(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testDecimal(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testInteger() throws Exception {
+        BigInteger valueSets[][] = {
+            {new BigInteger("-1234567890"), new BigInteger("1234567890")},
+            {new BigInteger("-" + String.valueOf(Long.MAX_VALUE * Long.MAX_VALUE)),
+             new BigInteger(String.valueOf(Long.MAX_VALUE * Long.MAX_VALUE))}
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            BigInteger x = valueSets[i][0];
+            Holder<BigInteger> yOrig = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> y = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> z = new Holder<BigInteger>();
+
+            BigInteger ret = client.testInteger(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testInteger(): Incorrect value for inout param", x, y.value);
+                assertEquals("testInteger(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testInteger(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testPositiveInteger() throws Exception {
+        BigInteger valueSets[][] = {
+            {new BigInteger("1"), new BigInteger("1234567890")},
+            {new BigInteger(String.valueOf(Integer.MAX_VALUE * Integer.MAX_VALUE)),
+             new BigInteger(String.valueOf(Long.MAX_VALUE * Long.MAX_VALUE))}
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            BigInteger x = valueSets[i][0];
+            Holder<BigInteger> yOrig = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> y = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> z = new Holder<BigInteger>();
+
+            BigInteger ret = client.testPositiveInteger(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testPositiveInteger(): Incorrect value for inout param", x, y.value);
+                assertEquals("testPositiveInteger(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testPositiveInteger(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testNonPositiveInteger() throws Exception {
+        BigInteger valueSets[][] = {
+            {new BigInteger("0"), new BigInteger("-1234567890")},
+            {new BigInteger("-" + String.valueOf(Integer.MAX_VALUE * Integer.MAX_VALUE)),
+             new BigInteger("-" + String.valueOf(Long.MAX_VALUE * Long.MAX_VALUE))}
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            BigInteger x = valueSets[i][0];
+            Holder<BigInteger> yOrig = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> y = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> z = new Holder<BigInteger>();
+
+            BigInteger ret = client.testNonPositiveInteger(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testNonPositiveInteger(): Incorrect value for inout param", x, y.value);
+                assertEquals("testNonPositiveInteger(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testNonPositiveInteger(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testNegativeInteger() throws Exception {
+        BigInteger valueSets[][] = {
+            {new BigInteger("-1"), new BigInteger("-1234567890")},
+            {new BigInteger("-" + String.valueOf(Integer.MAX_VALUE * Integer.MAX_VALUE)),
+             new BigInteger("-" + String.valueOf(Long.MAX_VALUE * Long.MAX_VALUE))}
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            BigInteger x = valueSets[i][0];
+            Holder<BigInteger> yOrig = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> y = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> z = new Holder<BigInteger>();
+
+            BigInteger ret = client.testNegativeInteger(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testNegativeInteger(): Incorrect value for inout param", x, y.value);
+                assertEquals("testNegativeInteger(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testNegativeInteger(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testNonNegativeInteger() throws Exception {
+        BigInteger valueSets[][] = {
+            {new BigInteger("0"), new BigInteger("1234567890")},
+            {new BigInteger(String.valueOf(Integer.MAX_VALUE * Integer.MAX_VALUE)),
+             new BigInteger(String.valueOf(Long.MAX_VALUE * Long.MAX_VALUE))}
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            BigInteger x = valueSets[i][0];
+            Holder<BigInteger> yOrig = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> y = new Holder<BigInteger>(valueSets[i][1]);
+            Holder<BigInteger> z = new Holder<BigInteger>();
+
+            BigInteger ret = client.testNonNegativeInteger(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testNonNegativeInteger(): Incorrect value for inout param", x, y.value);
+                assertEquals("testNonNegativeInteger(): Incorrect value for out param", yOrig.value, z.value);
+                assertEquals("testNonNegativeInteger(): Incorrect return value", x, ret);
+            }
+        }
+    }
+
+    public void testHexBinary() throws Exception {
+        byte[] x = "hello".getBytes();
+        Holder<byte[]> y = new Holder<byte[]>("goodbye".getBytes());
+        Holder<byte[]> yOriginal = new Holder<byte[]>("goodbye".getBytes());
+        Holder<byte[]> z = new Holder<byte[]>();
+        byte[] ret = client.testHexBinary(x, y, z);
+
+        if (!perfTestOnly) {
+            assertTrue("testHexBinary(): Incorrect value for inout param",
+                       Arrays.equals(x, y.value));
+            assertTrue("testHexBinary(): Incorrect value for out param",
+                       Arrays.equals(yOriginal.value, z.value));
+            assertTrue("testHexBinary(): Incorrect return value",
+                       Arrays.equals(x, ret));
+        }
+    }
+
+    public void testBase64Binary() throws Exception {
+        byte[] x = "hello".getBytes();
+        Holder<byte[]> y = new Holder<byte[]>("goodbye".getBytes());
+        Holder<byte[]> yOriginal = new Holder<byte[]>("goodbye".getBytes());
+        Holder<byte[]> z = new Holder<byte[]>();
+        byte[] ret = client.testBase64Binary(x, y, z);
+
+        if (!perfTestOnly) {
+            assertTrue("testBase64Binary(): Incorrect value for inout param",
+                       Arrays.equals(x, y.value));
+            assertTrue("testBase64Binary(): Incorrect value for out param",
+                       Arrays.equals(yOriginal.value, z.value));
+            assertTrue("testBase64Binary(): Incorrect return value",
+                       Arrays.equals(x, ret));
+        }
+
+        // Test uninitialized holder value
+        try {
+            y = new Holder<byte[]>();
+            z = new Holder<byte[]>();
+            
+            client.testBase64Binary(x, y, z);
+
+            //fail("Uninitialized Holder for inout parameter should have thrown an error.");
+        } catch (Exception e) {
+            // Ignore expected //failure.
+        }
+    }
+
+    public void testAnyURI() throws Exception {
+        String valueSets[][] = {
+            {"file:///root%20%20/-;?&+", "file:///w:/test!artix~java*"},
+            {"http://iona.com/", "file:///z:/mail_iona=com,\'xmlbus\'"},
+            {"mailto:windows@systems", "file:///"}
+        };
+
+        for (int i = 0; i < valueSets.length; i++) {
+            String x = new String(valueSets[i][0]);
+            String yOrig = new String(valueSets[i][1]);
+            Holder<String> y = new Holder<String>(yOrig);
+            Holder<String> z = new Holder<String>();
+
+            String ret = client.testAnyURI(x, y, z);
+
+            if (!perfTestOnly) {
+                assertEquals("testAnyURI(): Incorrect value for inout param", x, y.value);
+                assertEquals("testAnyURI(): Incorrect value for out param", yOrig, z.value);
+                assertEquals("testAnyURI(): Incorrect return value", x, ret);
+            }
+        }
+    }
+    
+    protected boolean equals(byte[] x, byte[] y) {
+        String xx = new String(x);
+        String yy = new String(y);
+        return xx.equals(yy);
+    }
+    
+}

Propchange: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/AbstractTypeTestClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/AbstractTypeTestClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java?view=auto&rev=487225
==============================================================================
--- incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java (added)
+++ incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java Thu Dec 14 07:01:35 2006
@@ -0,0 +1,210 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.yoko.bindings.corba;
+
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class CorbaTypeTest extends AbstractTypeTestClient {
+    protected static final String WSDL_PATH = "/wsdl/type_test/type_test_corba.wsdl";
+    protected static final QName SERVICE_NAME = new QName("http://apache.org/type_test/corba", "CORBAService");
+    protected static final QName PORT_NAME = new QName("http://apache.org/type_test/corba", "CORBAPort");
+
+    static boolean serverStarted = false;
+    
+    public CorbaTypeTest(String name) {
+        super(name);
+    }
+
+    public static Test suite() throws Exception {
+        TestSuite suite = new TestSuite(CorbaTypeTest.class);
+        return new CorbaTypeTestSetup(suite);
+    }
+
+    public static void main(String[] args) {
+        junit.textui.TestRunner.run(CorbaTypeTest.class);
+    }
+
+    public void testVoid() throws Exception {
+    }
+
+    public void testOneway() throws Exception {
+    }       
+
+    public void testByte() throws Exception  {
+    }
+        
+    public void testShort() throws Exception  {
+    }
+        
+    public void testInt() throws Exception  {
+    }
+        
+    public void testLong() throws Exception  {
+    }
+        
+    public void testUnsignedShort() throws Exception  {
+    }
+        
+    public void testUnsignedInt() throws Exception  {
+    }
+        
+    public void testUnsignedLong() throws Exception  {
+    }
+        
+    public void testFloat() throws Exception  {
+    }
+        
+    public void testDouble() throws Exception  {
+    }
+        
+    public void testUnsignedByte() throws Exception  {
+    }
+        
+    public void testBoolean() throws Exception  {
+    }
+        
+    public void testString() throws Exception  {
+        //super.testString();
+    }
+        
+    public void testQName() throws Exception  {
+    }
+        
+    public void testInteger() throws Exception  {
+    }
+        
+    public void testPositiveInteger() throws Exception  {
+    }
+        
+    public void testNonPositiveInteger() throws Exception  {
+    }
+        
+    public void testNegativeInteger() throws Exception  {
+    }
+        
+    public void testNonNegativeInteger() throws Exception  {
+    }
+        
+    public void testDecimal() throws Exception  {
+    }
+        
+    public void testDate() throws Exception  {
+    }
+        
+    public void testDateTime() throws Exception  {
+    }
+        
+    public void testTime() throws Exception  {
+    }
+        
+    public void testGYear() throws Exception  {
+    }
+        
+    public void testGYearMonth() throws Exception  {
+    }
+        
+    public void testGMonth() throws Exception  {
+    }
+        
+    public void testGMonthDay() throws Exception  {
+    }
+        
+    public void testGDay() throws Exception  {
+    }
+        
+    public void testDuration() throws Exception  {
+    }
+        
+    public void testAnyURI() throws Exception  {
+    }
+        
+    public void testNormalizedString() throws Exception  {
+    }
+        
+    public void testToken() throws Exception  {
+    }
+        
+    public void testLanguage() throws Exception  {
+    }
+        
+    public void testNMTOKEN() throws Exception  {
+    }
+        
+    public void testNMTOKENS() throws Exception  {
+    }
+        
+    public void testName() throws Exception  {
+    }
+        
+    public void testNCName() throws Exception  {
+    }
+        
+    public void testID() throws Exception  {
+    }
+        
+    public void testBase64Binary() throws Exception  {
+    }
+        
+    public void testHexBinary() throws Exception  {
+    }
+
+    static class CorbaTypeTestSetup extends TestSetup {
+
+        ServerLauncher sl = null;
+
+        public CorbaTypeTestSetup(Test test) {
+            super(test);
+            java.util.Map<String, String> properties = new java.util.HashMap<String, String>();
+            properties.put("java.endorsed.dirs", System.getProperty("java.endorsed.dirs"));
+            sl = new ServerLauncher(CorbaTypeTestServer.class.getName(), properties, null);
+        }
+
+        public void setUp() throws Exception {
+            boolean ok = sl.launchServer();
+            assertTrue("failed to launch server", ok);
+            initClient(AbstractTypeTestClient.class, SERVICE_NAME, PORT_NAME, WSDL_PATH);
+        }
+
+        public void tearDown() throws Exception {
+            boolean passed = true;
+            if (sl != null) {
+                try { 
+                    sl.signalStop();
+                } catch (IOException ex) {
+                    ex.printStackTrace();
+                }
+
+                try { 
+                    passed = passed && sl.stopServer(); 
+                } catch (IOException ex) {
+                    ex.printStackTrace();
+                }
+            }
+            System.gc();
+            assertTrue("server failed", passed);
+        }
+    }
+
+}

Propchange: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTestServer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTestServer.java?view=auto&rev=487225
==============================================================================
--- incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTestServer.java (added)
+++ incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTestServer.java Thu Dec 14 07:01:35 2006
@@ -0,0 +1,69 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.yoko.bindings.corba;
+
+import javax.jws.WebService;
+import javax.xml.ws.Endpoint;
+
+import org.apache.type_test.corba.TypeTestPortType;
+import org.apache.type_test.corba.TypeTestImpl;
+
+public class CorbaTypeTestServer {
+
+    boolean serverReady = false;
+
+    public void _start() {
+        Object implementor = new CORBATypeTestImpl();
+        String address = "corbaloc::localhost:40012/type_test";
+        Endpoint.publish(address, implementor);
+        serverReady = true;
+    }
+
+    public static void main(String[] args) {
+        try {
+            CorbaTypeTestServer s = new CorbaTypeTestServer();
+            s._start();
+            System.out.println("server ready...");
+            // wait for a key press then shut 
+            // down the server
+            //
+            System.in.read();
+            System.out.println("server passed...");
+            System.out.println("server stopped..."); 
+            System.exit(0);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            System.exit(-1);
+        } finally { 
+            System.out.println("done!");
+        }
+    }
+
+    public boolean isServerReady() {
+        return serverReady;
+    }
+
+    @WebService(serviceName = "CORBAService", portName = "CORBAPort",
+                endpointInterface = "org.apache.type_test.corba.TypeTestPortType",
+                targetNamespace = "http://apache.org/type_test/corba")
+    class CORBATypeTestImpl extends TypeTestImpl implements TypeTestPortType {
+    }
+
+}

Propchange: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTestServer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTestServer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/ServerLauncher.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/ServerLauncher.java?view=auto&rev=487225
==============================================================================
--- incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/ServerLauncher.java (added)
+++ incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/ServerLauncher.java Thu Dec 14 07:01:35 2006
@@ -0,0 +1,301 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.yoko.bindings.corba;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.lang.reflect.Constructor;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Logger;
+
+public class ServerLauncher {
+
+    public static final int DEFAULT_TIMEOUT = 3 * 60 * 1000;
+
+    protected static final String SERVER_FAILED = 
+        "server startup failed (not a log message)";
+
+    private static final Logger LOG = Logger.getLogger(ServerLauncher.class.getName());
+
+    boolean serverPassed;
+    final String className;
+
+
+    private final boolean debug = false;
+    
+    private final String javaExe;
+    private Process process;
+    private boolean serverIsReady;
+    private boolean serverIsStopped;
+    private boolean serverLaunchFailed;
+    private Map<String, String> properties;
+    private String[] serverArgs;
+
+    private final Mutex mutex = new Mutex();
+
+    public ServerLauncher(String theClassName) {
+        className = theClassName;
+        javaExe = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
+    }
+
+    public ServerLauncher(String theClassName, Map<String, String> p, String[] args) {
+        className = theClassName;
+        properties = p;
+        serverArgs = args;
+        javaExe = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
+    }
+
+    private boolean waitForServerToStop() {
+        synchronized (mutex) {
+            while (!serverIsStopped) {
+                try {
+                    TimeoutCounter tc = new TimeoutCounter(DEFAULT_TIMEOUT);
+                    mutex.wait(DEFAULT_TIMEOUT);
+                    if (tc.isTimeoutExpired()) {
+                        System.out.println("destroying server process");
+                        process.destroy();
+                        break;
+                    }
+                } catch (InterruptedException ex) {
+                    ex.printStackTrace();
+                }
+            }
+        }
+        return serverIsStopped;
+    }
+
+    public void signalStop() throws IOException {
+        if (process != null) {
+            process.getOutputStream().write('q');
+            process.getOutputStream().write('\n');
+            process.getOutputStream().flush();
+        }
+    }
+    public boolean stopServer() throws IOException {
+        if (process != null) {
+            if (!serverIsStopped) {
+                try {
+                    signalStop();
+                } catch (IOException ex) {
+                    //ignore
+                }
+            }
+            waitForServerToStop();
+            process.destroy();
+        }
+        return serverPassed;
+    }
+
+    public boolean launchServer() throws IOException {
+
+        serverIsReady = false;
+        serverLaunchFailed = false;
+
+        List<String> cmd = getCommand();
+
+        if (debug) {
+            System.err.print("CMD: ");
+        }
+            
+            
+        ProcessBuilder pb = new ProcessBuilder(cmd);
+        pb.redirectErrorStream(true);
+        process = pb.start();
+    
+        launchOutputMonitorThread(process.getInputStream(), System.out);
+        
+        synchronized (mutex) {
+            do {
+                TimeoutCounter tc = new TimeoutCounter(DEFAULT_TIMEOUT);
+                try {
+                    mutex.wait(DEFAULT_TIMEOUT);
+                    if (tc.isTimeoutExpired()) {
+                        break;
+                    }
+                } catch (InterruptedException e) {
+                        e.printStackTrace();
+                }
+            } while (!serverIsReady && !serverLaunchFailed);
+        }
+        return serverIsReady;
+    }
+
+    public int waitForServer() {
+        int ret = -1;
+        try {
+            process.waitFor();
+            ret = process.exitValue();
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        return ret;
+    }
+
+    private void launchOutputMonitorThread(final InputStream in, final PrintStream out) {
+        Thread t = new OutputMonitorThread(in, out);
+        t.start();
+    }
+    private class OutputMonitorThread extends Thread {
+        InputStream in;
+        PrintStream out;
+
+        OutputMonitorThread(InputStream i, PrintStream o) {
+            in = i;
+            out = o;
+        }
+
+        public void run() {
+            try {
+                StringBuilder serverOutput = new StringBuilder();
+                String outputDir = System.getProperty("server.output.dir", "target/surefire-reports/");
+                FileOutputStream fos;
+                try {
+                    fos = new FileOutputStream(outputDir + className + ".out");
+                } catch (FileNotFoundException fex) {
+                    outputDir = System.getProperty("basedir") + "/target/surefire-reports/";
+                    File file = new File(outputDir);
+                    file.mkdirs();
+                    fos = new FileOutputStream(outputDir + className + ".out");
+                }
+                PrintStream ps = new PrintStream(fos);
+                boolean running = true;
+                for (int ch = in.read(); ch != -1; ch = in.read()) {
+                    serverOutput.append((char)ch);
+                    if (debug) {
+                        System.err.print((char)ch);
+                    }
+                    String s = serverOutput.toString();
+                    if (s.contains("server ready")) {
+                        notifyServerIsReady();
+                    } else if (s.contains("server passed")) {
+                        serverPassed = true;
+                    } else if (s.contains("server stopped")) {
+                        notifyServerIsStopped();
+                        running = false;
+                    } else if (s.contains(SERVER_FAILED)) {
+                        notifyServerFailed();
+                        running = false;
+                    }
+                    if (ch == '\n' || !running) {
+                        synchronized (out) {
+                            ps.print(serverOutput.toString());
+                            serverOutput = new StringBuilder();
+                            ps.flush();
+                        }
+                    }
+                }
+                
+            } catch (IOException ex) {
+                if (!ex.getMessage().contains("Stream closed")) {
+                    ex.printStackTrace();
+                }
+            }
+        }
+    }
+
+    void notifyServerIsReady() {
+        synchronized (mutex) {
+            serverIsReady = true;
+            mutex.notifyAll();
+        }
+    }
+
+    void notifyServerIsStopped() {
+        synchronized (mutex) {
+            LOG.info("notify server stopped");
+            serverIsStopped = true;
+            mutex.notifyAll();
+        }
+    }
+
+    void notifyServerFailed() {
+        synchronized (mutex) {
+            serverIsStopped = true;
+            mutex.notifyAll();
+        }
+    }
+
+    private List<String> getCommand() {
+
+        List<String> cmd = new ArrayList<String>();
+        cmd.add(javaExe);
+        
+        if (null != properties) {
+            for (Map.Entry<String, String> entry : properties.entrySet()) {
+                cmd.add("-D" + entry.getKey() + "=" + entry.getValue());
+            }
+        }
+
+        cmd.add("-ea");
+        cmd.add("-classpath");
+        
+        ClassLoader loader = this.getClass().getClassLoader();
+        StringBuffer classpath = new StringBuffer(System.getProperty("java.class.path"));
+        if (loader instanceof URLClassLoader) {
+            URLClassLoader urlloader = (URLClassLoader)loader; 
+            for (URL url : urlloader.getURLs()) {
+                classpath.append(File.pathSeparatorChar);
+                classpath.append(url.getFile());
+            }
+        }
+        cmd.add(classpath.toString());
+        
+        cmd.add("-Djavax.xml.ws.spi.Provider=org.apache.cxf.bus.jaxws.spi.ProviderImpl");
+        
+        String loggingPropertiesFile = System.getProperty("java.util.logging.config.file");
+        if (null != loggingPropertiesFile) {
+            cmd.add("-Djava.util.logging.config.file=" + loggingPropertiesFile);
+        } 
+
+        cmd.add(className);
+
+        if (null != serverArgs) {
+            for (String s : serverArgs) {
+                cmd.add(s);
+            }
+        }
+
+        return cmd;
+    }
+
+    static class Mutex {
+        // empty
+    }
+
+    static class TimeoutCounter {
+        private final long expectedEndTime;
+
+        public TimeoutCounter(long theExpectedTimeout) {
+            expectedEndTime = System.currentTimeMillis() + theExpectedTimeout;
+        }
+
+        public boolean isTimeoutExpired() {
+            return System.currentTimeMillis() > expectedEndTime;
+        }
+    }
+}

Propchange: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/ServerLauncher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/ServerLauncher.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_signature.xsl
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_signature.xsl?view=auto&rev=487225
==============================================================================
--- incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_signature.xsl (added)
+++ incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_signature.xsl Thu Dec 14 07:01:35 2006
@@ -0,0 +1,59 @@
+<!--
+  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.
+-->
+<!--
+     Stylesheet to convert schema into java file for test implementation.
+-->
+<xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:xalan="http://xml.apache.org/xslt"
+    xmlns:itst="http://tests.iona.com/ittests">
+
+    <xsl:import href="inc_type_test_java_types.xsl"/>
+
+    <xsl:output method="text"/>
+    <xsl:strip-space elements="*"/>
+    
+    <xsl:template match="xsd:simpleType|xsd:complexType|xsd:element|itst:builtIn" mode="test_signature">
+        <xsl:variable name="the_name">
+            <xsl:value-of select="concat(translate(substring(@name, 1, 1),
+                                         'abcdefghijklmnopqrstuvwxyz', 
+                                         'ABCDEFGHIJKLMNOPQRSTUVWXYZ'),
+                                         substring(@name, 2))"/>
+        </xsl:variable>
+        <xsl:variable name="operation_name">
+            <xsl:value-of select="concat('test', $the_name)"/>
+        </xsl:variable>
+        <xsl:variable name="class_name">
+            <xsl:value-of select="concat('Test', $the_name)"/>
+        </xsl:variable>
+        <xsl:text>&#10;    public </xsl:text>
+        <xsl:apply-templates select="." mode="javaType"/>
+        <xsl:text> </xsl:text>
+        <xsl:value-of select="$operation_name"/>
+        <xsl:text>(&#10;            </xsl:text>
+        <xsl:apply-templates select="." mode="javaType"/>
+        <xsl:text> x,</xsl:text>
+        <xsl:apply-templates select="." mode="javaHolderType"/>
+        <xsl:text> y,</xsl:text>
+        <xsl:apply-templates select="." mode="javaHolderType"/>
+        <xsl:text> z)</xsl:text>
+    </xsl:template>
+
+</xsl:stylesheet>

Propchange: incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_signature.xsl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_signature.xsl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_signature.xsl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_types.xsl
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_types.xsl?view=auto&rev=487225
==============================================================================
--- incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_types.xsl (added)
+++ incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_types.xsl Thu Dec 14 07:01:35 2006
@@ -0,0 +1,69 @@
+<!--
+  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.
+-->
+<!--
+     Stylesheet to convert schema into java file for test implementation.
+-->
+<xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:xalan="http://xml.apache.org/xslt"
+    xmlns:itst="http://tests.iona.com/ittests">
+
+    <xsl:output method="text"/>
+    <xsl:strip-space elements="*"/>
+
+    <xsl:template match="itst:builtIn" mode="javaHolderType">
+        <xsl:text>&#10;            Holder&#x3c;</xsl:text>
+        <xsl:value-of select="@javaHolder"/>
+        <xsl:text>&#x3e;</xsl:text>
+    </xsl:template>
+    
+    <xsl:template match="itst:builtIn" mode="javaType">
+        <xsl:value-of select="@javaType"/>
+    </xsl:template>
+
+    <xsl:template match="xsd:simpleType|xsd:complexType|xsd:element" mode="javaHolderType">
+        <xsl:text>&#10;            Holder&#x3c;</xsl:text>
+        <xsl:apply-templates select="." mode="javaType"/>
+        <xsl:text>&#x3e;</xsl:text>
+    </xsl:template>
+    
+    <xsl:template match="xsd:simpleType" mode="javaType">
+        <xsl:choose>
+            <xsl:when test="contains(@name, 'Union') and (contains(@name, 'List')
+                    or @name='UnionWithUnion'
+                    or @name='UnionWithAnonUnion')">
+                <xsl:value-of select="'List&#x3c;String&#x3e;'"/>
+            </xsl:when>
+            <xsl:when test="contains(@name, 'Union') and not(contains(@name, 'List') 
+                    or @name='UnionWithUnion' 
+                    or @name='UnionWithAnonUnion')">
+                <xsl:value-of select="'String'"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:value-of select="@name"/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+
+    <xsl:template match="xsd:complexType|xsd:element" mode="javaType">
+        <xsl:value-of select="@name"/>
+    </xsl:template>
+
+</xsl:stylesheet>

Propchange: incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_types.xsl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_types.xsl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/inc_type_test_java_types.xsl
------------------------------------------------------------------------------
    svn:mime-type = text/xml



Mime
View raw message