You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ra...@apache.org on 2010/01/27 16:05:01 UTC

svn commit: r903668 [3/8] - in /tuscany/sca-java-2.x/trunk/itest: ./ databindings/ databindings/jaxb-bottom-up/ databindings/jaxb-bottom-up/src/ databindings/jaxb-bottom-up/src/main/ databindings/jaxb-bottom-up/src/main/java/ databindings/jaxb-bottom-u...

Added: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/main/resources/primitivesservice.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/main/resources/primitivesservice.composite?rev=903668&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/main/resources/primitivesservice.composite (added)
+++ tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/main/resources/primitivesservice.composite Wed Jan 27 15:04:56 2010
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    *
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    *
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" 
+           xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance"
+           targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/"
+           name="PrimitivesService">
+           
+    <!-- Clients to test the service -->
+    <!-- A PrimitivesServiceClient component that uses WS binding to invoke PrimitivesService -->
+    <component name="PrimitivesServiceClientWSComponent">
+        <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.PrimitivesServiceClientImpl" />
+        <reference name="primitivesService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService"/>
+            <binding.ws uri="http://localhost:8085/ps-ep" requires="MTOM"/>
+        </reference>
+    </component>
+
+    <!-- A PrimitivesServiceClient component that uses SCA binding to invoke PrimitivesService service -->
+    <component name="PrimitivesServiceClientSCAComponent">
+        <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.PrimitivesServiceClientImpl" />
+        <reference name="primitivesService" target="PrimitivesServiceComponent/PrimitivesService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService"/>
+            <binding.sca/>
+        </reference>
+    </component>
+    
+    <!-- A PrimitivesLocalServiceClient component that uses SCA binding to invoke PrimitivesLocalService service -->
+    <component name="PrimitivesLocalServiceClientSCAComponent">
+        <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.PrimitivesLocalServiceClientImpl" />
+        <reference name="primitivesLocalService" target="PrimitivesServiceComponent/PrimitivesLocalService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesLocalService"/>
+            <binding.sca/>
+        </reference>
+    </component>
+
+    <!-- Components used to implement the services -->
+    <!-- A PrimitivesService component. -->
+    <component name="PrimitivesServiceComponent">
+        <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.PrimitivesServiceImpl"/>
+        <service name="PrimitivesService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService"/>
+            <binding.ws uri="http://localhost:8085/ps-ep" requires="MTOM"/>
+        </service>
+        <service name="PrimitivesLocalService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesLocalService"/>
+            <binding.sca/>
+        </service>
+    </component>
+</composite>

Added: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/main/resources/standard-types-service.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/main/resources/standard-types-service.composite?rev=903668&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/main/resources/standard-types-service.composite (added)
+++ tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/main/resources/standard-types-service.composite Wed Jan 27 15:04:56 2010
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    *
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    *
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" 
+           xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance"
+           targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/"
+           name="StandardTypesService">
+           
+    <!-- Clients to test the service -->
+    <!-- A StandardTypesServiceClient component that uses WS binding to invoke StandardTypesService -->
+    <component name="StandardTypesServiceClientWSComponent">
+        <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesServiceClientImpl" />
+        <reference name="standardTypesService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesService"/>
+            <binding.ws uri="http://localhost:8085/sts-ep" requires="MTOM"/>
+        </reference>
+    </component>
+
+    <!-- A StandardTypesServiceClient component that uses SCA binding to invoke StandardTypesService service -->
+    <component name="StandardTypesServiceClientSCAComponent">
+        <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesServiceClientImpl" />
+        <reference name="standardTypesService" target="StandardTypesServiceComponent/StandardTypesService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesService"/>
+            <binding.sca/>
+        </reference>
+    </component>
+    
+    <!-- A StandardTypesLocalServiceClient component that uses SCA binding to invoke StandardTypesLocalService service -->
+    <component name="StandardTypesLocalServiceClientSCAComponent">
+        <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesLocalServiceClientImpl" />
+        <reference name="standardTypesLocalService" target="StandardTypesServiceComponent/StandardTypesLocalService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesLocalService"/>
+            <binding.sca/>
+        </reference>
+    </component>
+
+    <!-- Components used to implement the services -->
+    <!-- A StandardTypesService component. -->
+    <component name="StandardTypesServiceComponent">
+        <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesServiceImpl"/>
+        <service name="StandardTypesService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesService"/>
+            <binding.ws uri="http://localhost:8085/sts-ep" requires="MTOM"/>
+        </service>
+        <service name="StandardTypesLocalService">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesLocalService"/>
+            <binding.sca/>
+        </service>
+    </component>
+</composite>

Added: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java?rev=903668&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java (added)
+++ tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java Wed Jan 27 15:04:56 2010
@@ -0,0 +1,347 @@
+/*
+ * 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.tuscany.sca.itest.databindings.jaxb;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.io.File;
+
+import junit.framework.Assert;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DatabindingTestCase {
+
+    private static Node node;
+
+    /**
+     * Runs once before running the tests
+     */
+    @BeforeClass
+    public static void setUp() throws Exception {
+        try { 
+            NodeFactory factory = NodeFactory.newInstance();
+            node = factory.createNode(new File("src/main/resources/helloservice.composite").toURI().toURL().toString(),
+                new Contribution("TestContribution", new File("src/main/resources/").toURI().toURL().toString()));
+            node.start();
+        } catch(Throwable e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Runs once after running the tests
+     */
+    @AfterClass
+    public static void tearDown() {
+        node.stop();
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using SCA binding.
+     * Service method invoked is getGreetings.
+     */
+    @Test
+    public void testSCA() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
+        performTest(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsArray.
+     */
+    @Test
+    public void testSCAArray() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
+        performTestArray(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsList.
+     */
+    @Test
+    public void testSCAList() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
+        performTestList(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsArrayList.
+     */
+    @Test
+    public void testSCAArrayList() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
+        performTestArrayList(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsMap.
+     */
+    @Test
+    public void testSCAMap() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
+        performTestMap(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsHashMap.
+     */
+    @Test
+    public void testSCAHashMap() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
+        performTestHashMap(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsVarArgs.
+     */
+    @Test
+    public void testSCAVarArgs() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientSCAComponent");
+        performTestVarArgs(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using WS binding.
+     * Service method invoked is getGreetings.
+     */
+    @Test
+    public void testWS() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
+        performTest(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using WS binding.
+     * Service method invoked is getGreetingsArray.
+     */
+    @Test
+    public void testWSArray() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
+        performTestArray(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using WS binding.
+     * Service method invoked is getGreetingsList.
+     */
+    @Test
+    public void testWSList() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
+        performTestList(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using WS binding.
+     * Service method invoked is getGreetingsArrayList.
+     */
+    @Test
+    public void testWSArrayList() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
+        performTestArrayList(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using WS binding.
+     * Service method invoked is getGreetingsMap.
+     */
+    @Test
+    public void testWSMap() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
+        performTestMap(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using WS binding.
+     * Service method invoked is getGreetingsHashMap.
+     */
+    @Test
+    public void testWSHashMap() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
+        performTestHashMap(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloServiceSimple service using WS binding.
+     * Service method invoked is getGreetingsVarArgs.
+     */
+    @Test
+    public void testWSVarArgs() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
+        performTestVarArgs(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloLocalServiceSimple service using SCA binding.
+     * Service method invoked is getGreetings.
+     */
+    @Test
+    public void testSCALocal() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
+        performTest(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloLocalServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsArray.
+     */
+    @Test
+    public void testSCALocalArray() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
+        performTestArray(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloLocalServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsList.
+     */
+    @Test
+    public void testSCALocalList() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
+        performTestList(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloLocalServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsArrayList.
+     */
+    @Test
+    public void testSCALocalArrayList() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
+        performTestArrayList(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloLocalServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsMap.
+     */
+    @Test
+    public void testSCALocalMap() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
+        performTestMap(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloLocalServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsHashMap.
+     */
+    @Test
+    public void testSCALocalHashMap() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
+        performTestHashMap(helloServiceSimpleClient);
+    }
+
+    /**
+     * Invokes the HelloLocalServiceSimple service using SCA binding.
+     * Service method invoked is getGreetingsVarArgs.
+     */
+    @Test
+    public void testSCALocalVarArgs() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = ((Client)node).getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
+        performTestVarArgs(helloServiceSimpleClient);
+    }
+
+    private void performTest(HelloServiceSimpleClient helloServiceSimpleClient) {
+        String name = "Pandu";
+        String resp = helloServiceSimpleClient.getGreetingsForward(name);
+        Assert.assertEquals("Hello "+name, resp);
+    }
+
+    private void performTestArray(HelloServiceSimpleClient helloServiceSimpleClient) {
+        String[] names = {"Me", "Pandu"};
+        String[] resps = helloServiceSimpleClient.getGreetingsArrayForward(names);
+        for(int i = 0; i < names.length; ++i) {
+            Assert.assertEquals("Hello "+names[i], resps[i]);
+        }
+    }
+
+    private void performTestList(HelloServiceSimpleClient helloServiceSimpleClient) {
+        List<String> namesList = new ArrayList<String>();
+        namesList.add("Me");
+        namesList.add("Pandu");
+        namesList.add("Chinnipandu");
+        List<String> respList = helloServiceSimpleClient.getGreetingsListForward(namesList);
+        Assert.assertEquals(namesList.size(), respList.size());
+        for(int i = 0; i < namesList.size(); ++i) {
+            Assert.assertEquals("Hello "+namesList.get(i), respList.get(i));
+        }
+    }
+
+    private void performTestArrayList(HelloServiceSimpleClient helloServiceSimpleClient) {
+        ArrayList<String> namesList = new ArrayList<String>();
+        namesList.add("Me");
+        namesList.add("Pandu");
+        namesList.add("Chinnipandu");
+        ArrayList<String> respList = helloServiceSimpleClient.getGreetingsArrayListForward(namesList);
+        Assert.assertEquals(namesList.size(), respList.size());
+        for(int i = 0; i < namesList.size(); ++i) {
+            Assert.assertEquals("Hello "+namesList.get(i), respList.get(i));
+        }
+    }
+
+    private void performTestMap(HelloServiceSimpleClient helloServiceSimpleClient) {
+        Map<String, String> namesMap = new HashMap<String, String>();
+        namesMap.put("Me", null);
+        namesMap.put("Pandu", null);
+        namesMap.put("Chinnipandu", null);
+        Map<String, String> respMap = helloServiceSimpleClient.getGreetingsMapForward(namesMap);
+        Assert.assertEquals(namesMap.keySet().size(), respMap.keySet().size());
+        for(Map.Entry<String, String> entry: namesMap.entrySet()) {
+            Assert.assertEquals("Hello "+entry.getKey(), respMap.get(entry.getKey()));
+        }
+    }
+
+    private void performTestHashMap(HelloServiceSimpleClient helloServiceSimpleClient) {
+        HashMap<String, String> namesMap = new HashMap<String, String>();
+        namesMap.put("Me", null);
+        namesMap.put("Pandu", null);
+        namesMap.put("Chinnipandu", null);
+        Map<String, String> respMap = helloServiceSimpleClient.getGreetingsHashMapForward(namesMap);
+        Assert.assertEquals(namesMap.keySet().size(), respMap.keySet().size());
+        for(Map.Entry<String, String> entry: namesMap.entrySet()) {
+            Assert.assertEquals("Hello "+entry.getKey(), respMap.get(entry.getKey()));
+        }
+    }
+
+    private void performTestVarArgs(HelloServiceSimpleClient helloServiceSimpleClient) {
+        String[] names = { "Me", "You", "Pandu" }; // Do not change the array size from 3.
+        String expected = "Hello Me You Pandu";
+        String actual = helloServiceSimpleClient.getGreetingsVarArgsForward(names[0], names[1], names[2]);
+        Assert.assertEquals(expected, actual);
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DocLitBareWsdlTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DocLitBareWsdlTestCase.java?rev=903668&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DocLitBareWsdlTestCase.java (added)
+++ tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DocLitBareWsdlTestCase.java Wed Jan 27 15:04:56 2010
@@ -0,0 +1,76 @@
+/*
+ * 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.tuscany.sca.itest.databindings.jaxb;
+
+import junit.framework.Assert;
+import java.io.File;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DocLitBareWsdlTestCase {
+
+    private static Node node;
+
+    /**
+     * Runs once before running the tests
+     */
+    @BeforeClass
+    public static void setUp() throws Exception {
+        try {
+            NodeFactory factory = NodeFactory.newInstance();
+            node = factory.createNode(new File("src/main/resources/doclitbarewsdl.composite").toURI().toURL().toString(),
+                new Contribution("TestContribution", new File("src/main/resources/").toURI().toURL().toString()));
+            node.start();
+        } catch (Throwable e) {
+            // @Ignore("TUSCANY-2398")
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Runs once after running the tests
+     */
+    @AfterClass
+    public static void tearDown() {
+        if (node != null) {
+            node.stop();
+        }
+    }
+
+    // @Ignore("TUSCANY-2398")
+    @Test
+    public void testDocLitBareWsdl() throws Exception {
+        AClientService client = ((Client)node).getService(AClientService.class, "AClientComponent");
+        String name = "Pandu";
+        String resp = client.getGreetingsForward(name);
+        Assert.assertEquals("Hello " + name, resp);
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DocLitBareWsdlTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DocLitBareWsdlTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java?rev=903668&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java (added)
+++ tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java Wed Jan 27 15:04:56 2010
@@ -0,0 +1,494 @@
+/*
+ * 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.tuscany.sca.itest.databindings.jaxb;
+
+import junit.framework.Assert;
+import java.io.File;
+
+import org.apache.tuscany.sca.itest.databindings.jaxb.impl.GenericsTransformer;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+
+
+/**
+ * Databinding tests for generics, parameterized and polymorphic types.
+ * 
+ * @version $Rev$ $Date$
+ */
+public class GenericsDatabindingTestCase {
+
+    private static Node node;
+ 
+    /**
+     * Runs before each test method
+     */
+    @BeforeClass
+    public static void setUp() throws Exception {
+        try {
+	    NodeFactory factory = NodeFactory.newInstance();
+            node = factory.createNode(new File("src/main/resources/generics-service.composite").toURI().toURL().toString(),
+                new Contribution("TestContribution", new File("src/main/resources/").toURI().toURL().toString()));
+            node.start();
+        } catch(Throwable e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Runs after each test method
+     */
+    @AfterClass
+    public static void tearDown() {
+        node.stop();
+    }
+
+    /**
+     * Invokes the GenericsService service using SCA binding.
+     * Service method invoked is getTypeExplicit.
+     */
+    @Test
+    public void testSCATypeExplicit() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientSCAComponent");
+        performTestTypeExplicit(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using SCA binding.
+     * Service method invoked is getTypeUnbound.
+     */
+    @Test
+    public void testSCATypeUnbound() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientSCAComponent");
+        performTestTypeUnbound(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using SCA binding.
+     * Service method invoked is getTypeExtends.
+     */
+    @Test
+    public void testSCATypeExtends() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientSCAComponent");
+        performTestTypeExtends(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using SCA binding.
+     * Service method invoked is getRecursiveTypeBound.
+     */
+    @Test
+    public void testSCARecursiveTypeBound() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientSCAComponent");
+        performTestRecursiveTypeBound(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using SCA binding.
+     * Service method invoked is getWildcardUnbound.
+     */
+    @Test
+    public void testSCAWildcardUnbound() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientSCAComponent");
+        performTestWildcardUnbound(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using SCA binding.
+     * Service method invoked is getWildcardSuper.
+     */
+    @Test
+    public void testSCAWildcardSuper() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientSCAComponent");
+        performTestWildcardSuper(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using SCA binding.
+     * Service method invoked is getWildcardExtends.
+     */
+    @Test
+    public void testSCAWildcardExtends() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientSCAComponent");
+        performTestWildcardExtends(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using SCA binding.
+     * Service method invoked is getPolymorphic.
+     */
+    @Test
+    public void testSCAPolymorphic() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientSCAComponent");
+        performTestPolymorphic(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using WS binding.
+     * Service method invoked is getTypeExplicit.
+     */
+    @Test
+    public void testWSTypeExplicit() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientWSComponent");
+        performTestTypeExplicit(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using WS binding.
+     * Service method invoked is getTypeUnbound.
+     */
+    @Test
+    public void testWSTypeUnbound() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientWSComponent");
+        performTestTypeUnbound(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using WS binding.
+     * Service method invoked is getTypeExtends.
+     */
+    @Test
+    public void testWSTypeExtends() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientWSComponent");
+        performTestTypeExtends(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using WS binding.
+     * Service method invoked is getRecursiveTypeBound.
+     */
+    @Test
+    public void testWSRecursiveTypeBound() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientWSComponent");
+        performTestRecursiveTypeBound(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using WS binding.
+     * Service method invoked is getWildcardUnbound.
+     */
+    @Test
+    public void testWSWildcardUnbound() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientWSComponent");
+        performTestWildcardUnbound(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using WS binding.
+     * Service method invoked is getWildcardSuper.
+     */
+    @Test
+    public void testWSWildcardSuper() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientWSComponent");
+        performTestWildcardSuper(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using WS binding.
+     * Service method invoked is getWildcardExtends.
+     */
+    @Test
+    public void testWSWildcardExtends() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientWSComponent");
+        performTestWildcardExtends(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsService service using WS binding.
+     * Service method invoked is getPolymorphic.
+     */
+    @Test
+    public void testWSPolymorphic() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsServiceClientWSComponent");
+        performTestPolymorphic(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsLocalService service using SCA binding.
+     * Service method invoked is getTypeExplicit.
+     */
+    @Test
+    public void testSCALocalTypeExplicit() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsLocalServiceClientSCAComponent");
+        performTestTypeExplicit(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsLocalService service using SCA binding.
+     * Service method invoked is getTypeUnbound.
+     */
+    @Test
+    public void testSCALocalTypeUnbound() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsLocalServiceClientSCAComponent");
+        performTestTypeUnbound(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsLocalService service using SCA binding.
+     * Service method invoked is getTypeExtends.
+     */
+    @Test
+    public void testSCALocalTypeExtends() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsLocalServiceClientSCAComponent");
+        performTestTypeExtends(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsLocalService service using SCA binding.
+     * Service method invoked is getRecursiveTypeBound.
+     */
+    @Test
+    public void testSCALocalRecursiveTypeBound() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsLocalServiceClientSCAComponent");
+        performTestRecursiveTypeBound(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsLocalService service using SCA binding.
+     * Service method invoked is getWildcardUnbound.
+     */
+    @Test
+    public void testSCALocalWildcardUnbound() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsLocalServiceClientSCAComponent");
+        performTestWildcardUnbound(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsLocalService service using SCA binding.
+     * Service method invoked is getWildcardSuper.
+     */
+    @Test
+    public void testSCALocalWildcardSuper() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsLocalServiceClientSCAComponent");
+        performTestWildcardSuper(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsLocalService service using SCA binding.
+     * Service method invoked is getWildcardExtends.
+     */
+    @Test
+    public void testSCALocalWildcardExtends() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsLocalServiceClientSCAComponent");
+        performTestWildcardExtends(serviceClient);
+    }
+
+    /**
+     * Invokes the GenericsLocalService service using SCA binding.
+     * Service method invoked is getPolymorphic.
+     */
+    @Test
+    public void testSCALocalPolymorphic() throws Exception {
+        GenericsServiceClient serviceClient = ((Client)node).getService(GenericsServiceClient.class, "GenericsLocalServiceClientSCAComponent");
+        performTestPolymorphic(serviceClient);
+    }
+
+    private void performTestTypeExplicit(GenericsServiceClient serviceClient) {
+        Bean1<String> args[] = new Bean1[2];
+        args[0] = new Bean1<String>("Me");
+        args[1] = new Bean1<String>();
+        for(int i = 0; i < args.length; ++i) {
+            Bean1<String> arg = args[i];
+            Bean1<String> expected = GenericsTransformer.getTypeExplicit(arg);
+            Bean1<String> actual = serviceClient.getTypeExplicitForward(arg);
+            Assert.assertEquals(expected, actual);
+        }
+    }
+
+    private void performTestTypeUnbound(GenericsServiceClient serviceClient) {
+        {   // String
+            String[] args = { "Me", "You", "Him" };
+            Bean1<String> expected = GenericsTransformer.getTypeUnbound(args);
+            Bean1<String> actual = serviceClient.getTypeUnboundForward(args);
+            // Assert.assertEquals(expected, actual);
+        }
+        {   // Integer
+            Integer[] args = new Integer[3];
+            args[0] = -10;
+            args[1] = 0;
+            args[2] = 10;
+            Bean1<Integer> expected = GenericsTransformer.getTypeUnbound(args);
+            Bean1<Integer> actual = serviceClient.getTypeUnboundForward(args);
+            // Assert.assertEquals(expected, actual);
+        }
+        {   // Object
+            Object[] args = new Object[3];
+            args[0] = "Me";
+            args[1] = 10;
+            args[2] = "Him";
+            Bean1<Object> expected = GenericsTransformer.getTypeUnbound(args);
+            Bean1<Object> actual = serviceClient.getTypeUnboundForward(args);
+            Assert.assertEquals(expected, actual);
+        }
+    }
+    
+    private void performTestTypeExtends(GenericsServiceClient serviceClient) {
+        {   // Bean2
+            Bean2[] args = new Bean2[3];
+            for(int i = 0; i < args.length; ++i) {
+                args[i] = new Bean2();
+                args[i].setName("Name"+i);
+            }
+            
+            Bean1<Bean2> expected = GenericsTransformer.getTypeExtends(args);
+            Bean1<Bean2> actual = serviceClient.getTypeExtendsForward(args);
+            Assert.assertEquals(expected, actual);
+        }
+        {   // Bean3 extends Bean2
+            Bean3[] args = new Bean3[3];
+            for(int i = 0; i < args.length; ++i) {
+                args[i] = new Bean3();
+                args[i].setName("Name"+i);
+                args[i].setAddress("Address"+i);
+            }
+            
+            Bean1<Bean3> expected = GenericsTransformer.getTypeExtends(args);
+            Bean1<Bean3> actual = serviceClient.getTypeExtendsForward(args);
+            // Assert.assertEquals(expected, actual);
+        }
+        {   //Bean31 extends Bean2
+            Bean31[] args = new Bean31[3];
+            for(int i = 0; i < args.length; ++i) {
+                args[i] = new Bean31();
+                args[i].setName("Name"+i);
+                args[i].setAddress("Address"+i);
+            }
+            
+            Bean1<Bean31> expected = GenericsTransformer.getTypeExtends(args);
+            Bean1<Bean31> actual = serviceClient.getTypeExtendsForward(args);
+            // Assert.assertEquals(expected, actual);
+        }
+    }
+
+    private void performTestRecursiveTypeBound(GenericsServiceClient serviceClient) {
+        {   // Bean1<String>
+            Bean1<String>[] args = new Bean1[3];
+            for(int i = 0; i < args.length; ++i) {
+                args[i] = new Bean1<String>();
+                args[i].setItem("Bean."+i);
+            }
+            Bean1<Bean1<String>> expected = GenericsTransformer.getRecursiveTypeBound(args);
+            Bean1<Bean1<String>> actual = serviceClient.getRecursiveTypeBoundForward(args);
+            Assert.assertEquals(expected, actual);
+        }
+        {   // Bean10 extends Bean1<String>
+            Bean10[] args = new Bean10[3];
+            for(int i = 0; i < args.length; ++i) {
+                args[i] = new Bean10();
+                args[i].setItem("Bean10."+i);
+            }
+            Bean1<Bean10> expected = GenericsTransformer.getRecursiveTypeBound(args);
+            Bean1<Bean10> actual = serviceClient.getRecursiveTypeBoundForward(args);
+            // Assert.assertEquals(expected, actual);
+        }
+        {   // Bean11 extends Bean1<String>
+            Bean11[] args = new Bean11[3];
+            for(int i = 0; i < args.length; ++i) {
+                args[i] = new Bean11();
+                args[i].setItem("Bean11."+i);
+            }
+            Bean1<Bean11> expected = GenericsTransformer.getRecursiveTypeBound(args);
+            Bean1<Bean11> actual = serviceClient.getRecursiveTypeBoundForward(args);
+            // Assert.assertEquals(expected, actual);
+        }
+    }
+    
+    private void performTestWildcardUnbound(GenericsServiceClient serviceClient) {
+        {
+            Bean1<?> arg = new Bean1<String>("Me");
+            Bean1<?> expected = GenericsTransformer.getWildcardUnbound(arg);
+            Bean1<?> actual = serviceClient.getWildcardUnboundForward(arg);
+            Assert.assertEquals(expected, actual);
+        }
+        {
+            Bean1<?> arg = new Bean1<Integer>(1);
+            Bean1<?> expected = GenericsTransformer.getWildcardUnbound(arg);
+            Bean1<?> actual = serviceClient.getWildcardUnboundForward(arg);
+            Assert.assertEquals(expected, actual);
+        }
+    }
+    
+    private void performTestWildcardSuper(GenericsServiceClient serviceClient) {
+        Bean1<? super Bean3> arg = new Bean1<Bean2>();
+        Bean3 item = new Bean3();
+        item.setName("Name");
+        item.setAddress("Address");
+        arg.setItem(item);
+        Bean1<? super Bean3> expected = GenericsTransformer.getWildcardSuper(arg);
+        Bean1<? super Bean3> actual = serviceClient.getWildcardSuperForward(arg);
+        Assert.assertEquals(expected, actual);
+    }
+
+    private void performTestWildcardExtends(GenericsServiceClient serviceClient) {
+        {   // Bean2
+            Bean2 temp = new Bean2();
+            temp.setName("Me");
+            Bean1<? extends Bean2> arg = new Bean1<Bean2>(temp);
+            Bean1<? extends Bean2> expected = GenericsTransformer.getWildcardExtends(arg);
+            Bean1<? extends Bean2> actual = serviceClient.getWildcardExtendsForward(arg);
+            Assert.assertEquals(expected, actual);
+        }
+        {   // Bean3 extends Bean2
+            Bean3 temp = new Bean3();
+            temp.setName("Me");
+            temp.setAddress("My address");
+            Bean1<? extends Bean2> arg = new Bean1<Bean3>(temp);
+            Bean1<? extends Bean2> expected = GenericsTransformer.getWildcardExtends(arg);
+            Bean1<? extends Bean2> actual = serviceClient.getWildcardExtendsForward(arg);
+            // The Bean3 will be unmarshalled into Bean2
+            // Assert.assertEquals(expected, actual);
+            Assert.assertTrue(actual.getItem() instanceof Bean2);
+        }
+        {   // Bean31 extends Bean2
+            Bean31 temp = new Bean31();
+            temp.setName("Me1");
+            temp.setAddress("My address1");
+            Bean1<? extends Bean2> arg = new Bean1<Bean31>(temp);
+            Bean1<? extends Bean2> expected = GenericsTransformer.getWildcardExtends(arg);
+            Bean1<? extends Bean2> actual = serviceClient.getWildcardExtendsForward(arg);
+            // The Bean31 will be unmarshalled into Bean2
+            // Assert.assertEquals(expected, actual);
+            Assert.assertTrue(actual.getItem() instanceof Bean2);
+        }
+    }
+    
+    private void performTestPolymorphic(GenericsServiceClient serviceClient) {
+        {   // Bean2
+            Bean2 arg = new Bean2();
+            arg.setName("Me");
+            Bean2 expected = GenericsTransformer.getPolymorphic(arg);
+            Bean2 actual = serviceClient.getPolymorphicForward(arg);
+            Assert.assertEquals(expected, actual);
+        }
+        {   // Bean3 extends Bean2
+            Bean3 arg = new Bean3();
+            arg.setName("Me");
+            arg.setAddress("My address");
+            Bean2 expected = GenericsTransformer.getPolymorphic(arg);
+            Bean2 actual = serviceClient.getPolymorphicForward(arg);
+            Assert.assertEquals(expected.getName(), actual.getName());
+        }
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java?rev=903668&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java (added)
+++ tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java Wed Jan 27 15:04:56 2010
@@ -0,0 +1,785 @@
+/*
+ * 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.tuscany.sca.itest.databindings.jaxb;
+
+import junit.framework.Assert;
+import java.io.File;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class PrimitivesDatabindingTestCase {
+
+    private static Node node;
+
+    /**
+     * Runs before each test method
+     */
+    @BeforeClass
+    public static void setUp() throws Exception {
+        try {
+            NodeFactory factory = NodeFactory.newInstance();
+            node = factory.createNode(new File("src/main/resources/primitivesservice.composite").toURI().toURL().toString(),
+                new Contribution("TestContribution", new File("src/main/resources/").toURI().toURL().toString()));
+            node.start();
+        } catch(Throwable e) {
+            e.printStackTrace();
+            Assert.fail();
+        }
+    }
+
+    /**
+     * Runs after each test method
+     */
+    @AfterClass
+    public static void tearDown() {
+        node.stop();
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateBoolean.
+     */
+    @Test
+    public void testSCANegateBoolean() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateBoolean(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateBooleanArray.
+     */
+    @Test
+    public void testSCANegateBooleanArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateBooleanArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with SCA binding.
+     * Test for boolean array.
+     */
+    @Test
+    public void testSCAPassByValueBooleanArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueBooleanArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateByte.
+     */
+    @Test
+    public void testSCANegateByte() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateByte(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateByteArray.
+     */
+    @Test
+    public void testSCANegateByteArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateByteArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with SCA binding.
+     * Test for byte array.
+     */
+    @Test
+    public void testSCAPassByValueByteArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueByteArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateShort.
+     */
+    @Test
+    public void testSCANegateShort() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateShort(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateShortArray.
+     */
+    @Test
+    public void testSCANegateShortArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateShortArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with SCA binding.
+     * Test for short array.
+     */
+    @Test
+    public void testSCAPassByValueShortArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueShortArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateInt.
+     */
+    @Test
+    public void testSCANegateInt() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateInt(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateIntArray.
+     */
+    @Test
+    public void testSCANegateIntArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateIntArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with SCA binding.
+     * Test for int array.
+     */
+    @Test
+    public void testSCAPassByValueIntArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueIntArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateLong.
+     */
+    @Test
+    public void testSCANegateLong() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateLong(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateLongArray.
+     */
+    @Test
+    public void testSCANegateLongArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateLongArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with SCA binding.
+     * Test for long array.
+     */
+    @Test
+    public void testSCAPassByValueLongArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueLongArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateFloat.
+     */
+    @Test
+    public void testSCANegateFloat() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateFloat(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateFloatArray.
+     */
+    @Test
+    public void testSCANegateFloatArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateFloatArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with SCA binding.
+     * Test for float array.
+     */
+    @Test
+    public void testSCAPassByValueFloatArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueFloatArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateDouble.
+     */
+    @Test
+    public void testSCANegateDouble() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateDouble(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateDoubleArray.
+     */
+    @Test
+    public void testSCANegateDoubleArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateDoubleArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with SCA binding.
+     * Test for double array.
+     */
+    @Test
+    public void testSCAPassByValueDoubleArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueDoubleArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateBoolean.
+     */
+    @Test
+    public void testWSNegateBoolean() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateBoolean(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateBooleanArray.
+     */
+    @Test
+    public void testWSNegateBooleanArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateBooleanArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with WS binding.
+     * Test for boolean array.
+     */
+    @Test
+    public void testWSPassByValueBooleanArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueBooleanArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateByte.
+     */
+    @Test
+    public void testWSNegateByte() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateByte(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateByteArray.
+     */
+    @Test
+    public void testWSNegateByteArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateByteArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with WS binding.
+     * Test for byte array.
+     */
+    @Test
+    public void testWSPassByValueByteArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueByteArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateShort.
+     */
+    @Test
+    public void testWSNegateShort() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateShort(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateShortArray.
+     */
+    @Test
+    public void testWSNegateShortArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateShortArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with WS binding.
+     * Test for short array.
+     */
+    @Test
+    public void testWSPassByValueShortArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueShortArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateInt.
+     */
+    @Test
+    public void testWSNegateInt() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateInt(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateIntArray.
+     */
+    @Test
+    public void testWSNegateIntArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateIntArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with WS binding.
+     * Test for int array.
+     */
+    @Test
+    public void testWSPassByValueIntArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueIntArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateLong.
+     */
+    @Test
+    public void testWSNegateLong() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateLong(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateLongArray.
+     */
+    @Test
+    public void testWSNegateLongArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateLongArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with WS binding.
+     * Test for long array.
+     */
+    @Test
+    public void testWSPassByValueLongArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueLongArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateFloat.
+     */
+    @Test
+    public void testWSNegateFloat() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateFloat(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateFloatArray.
+     */
+    @Test
+    public void testWSNegateFloatArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateFloatArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with WS binding.
+     * Test for float array.
+     */
+    @Test
+    public void testWSPassByValueFloatArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueFloatArray());
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateDouble.
+     */
+    @Test
+    public void testWSNegateDouble() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateDouble(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateDoubleArray.
+     */
+    @Test
+    public void testWSNegateDoubleArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateDoubleArray(primitivesServiceClient);
+    }
+
+    /**
+     * Test the pass-by-value semantics of a remotable service with WS binding.
+     * Test for double array.
+     */
+    @Test
+    public void testWSPassByValueDoubleArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        Assert.assertTrue(primitivesServiceClient.passByValueDoubleArray());
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateBoolean.
+     */
+    @Test
+    public void testSCALocalNegateBoolean() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateBoolean(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateBooleanArray.
+     */
+    @Test
+    public void testSCALocalNegateBooleanArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateBooleanArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateByte.
+     */
+    @Test
+    public void testSCALocalNegateByte() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateByte(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateByteArray.
+     */
+    @Test
+    public void testSCALocalNegateByteArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateByteArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateShort.
+     */
+    @Test
+    public void testSCALocalNegateShort() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateShort(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateShortArray.
+     */
+    @Test
+    public void testSCALocalNegateShortArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateShortArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateInt.
+     */
+    @Test
+    public void testSCALocalNegateInt() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateInt(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateIntArray.
+     */
+    @Test
+    public void testSCALocalNegateIntArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateIntArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateLong.
+     */
+    @Test
+    public void testSCALocalNegateLong() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateLong(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateLongArray.
+     */
+    @Test
+    public void testSCALocalNegateLongArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateLongArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateFloat.
+     */
+    @Test
+    public void testSCALocalNegateFloat() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateFloat(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateFloatArray.
+     */
+    @Test
+    public void testSCALocalNegateFloatArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateFloatArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateDouble.
+     */
+    @Test
+    public void testSCALocalNegateDouble() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateDouble(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesLocalService service using SCA binding.
+     * Service method invoked is negateDoubleArray.
+     */
+    @Test
+    public void testSCALocalNegateDoubleArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = ((Client)node).getService(PrimitivesServiceClient.class, "PrimitivesLocalServiceClientSCAComponent");
+        performTestNegateDoubleArray(primitivesServiceClient);
+    }
+    
+    private void performTestNegateBoolean(PrimitivesServiceClient primitivesServiceClient) {
+        Assert.assertTrue(primitivesServiceClient.negateBooleanForward(false));
+        Assert.assertFalse(primitivesServiceClient.negateBooleanForward(true));
+    }
+
+    private void performTestNegateBooleanArray(PrimitivesServiceClient primitivesServiceClient) {
+        boolean flags[] = new boolean[2];
+        flags[0] = false;
+        flags[1] = true;
+        boolean[] respFlags = primitivesServiceClient.negateBooleanArrayForward(flags);
+        Assert.assertEquals(flags.length, respFlags.length);
+        for(int i = 0; i < flags.length; ++i) {
+            Assert.assertEquals(!flags[i], respFlags[i]);
+        }
+    }
+
+    private void performTestNegateByte(PrimitivesServiceClient primitivesServiceClient) {
+        byte[] ba = new byte[3];
+        ba[0] = -1;
+        ba[1] = 0;
+        ba[2] = 1;
+
+        for(int i = 0; i < ba.length; ++i) {
+            Assert.assertEquals((byte)-ba[i], primitivesServiceClient.negateByteForward(ba[i]));
+        }
+    }
+
+    private void performTestNegateByteArray(PrimitivesServiceClient primitivesServiceClient) {
+        byte[] ba = new byte[3];
+        ba[0] = -1;
+        ba[1] = 0;
+        ba[2] = 1;
+
+        byte[] r = primitivesServiceClient.negateByteArrayForward(ba);
+        Assert.assertEquals(ba.length, r.length);
+        for(int i = 0; i < ba.length; ++i) {
+            Assert.assertEquals((byte)-ba[i], r[i]);
+        }
+    }
+    
+    private void performTestNegateShort(PrimitivesServiceClient primitivesServiceClient) {
+        short[] s = new short[3];
+        s[0] = -1;
+        s[1] = 0;
+        s[2] = 1;
+
+        for(int i = 0; i < s.length; ++i) {
+            Assert.assertEquals((short)-s[i], primitivesServiceClient.negateShortForward(s[i]));
+        }
+    }
+
+    private void performTestNegateShortArray(PrimitivesServiceClient primitivesServiceClient) {
+        short[] s = new short[3];
+        s[0] = -1;
+        s[1] = 0;
+        s[2] = 1;
+
+        short[] r = primitivesServiceClient.negateShortArrayForward(s);
+        Assert.assertEquals(s.length, r.length);
+        for(int i = 0; i < s.length; ++i) {
+            Assert.assertEquals((short)-s[i], r[i]);
+        }
+    }
+
+    private void performTestNegateInt(PrimitivesServiceClient primitivesServiceClient) {
+        int[] ia = new int[3];
+        ia[0] = -1;
+        ia[1] = 0;
+        ia[2] = 1;
+
+        for(int i = 0; i < ia.length; ++i) {
+            Assert.assertEquals(-ia[i], primitivesServiceClient.negateIntForward(ia[i]));
+        }
+    }
+
+    private void performTestNegateIntArray(PrimitivesServiceClient primitivesServiceClient) {
+        int[] ia = new int[3];
+        ia[0] = -1;
+        ia[1] = 0;
+        ia[2] = 1;
+
+        int[] r = primitivesServiceClient.negateIntArrayForward(ia);
+        Assert.assertEquals(ia.length, r.length);
+        for(int i = 0; i < ia.length; ++i) {
+            Assert.assertEquals(-ia[i], r[i]);
+        }
+    }
+
+    private void performTestNegateLong(PrimitivesServiceClient primitivesServiceClient) {
+        long[] la = new long[3];
+        la[0] = -1;
+        la[1] = 0;
+        la[2] = 1;
+
+        for(int i = 0; i < la.length; ++i) {
+            Assert.assertEquals(-la[i], primitivesServiceClient.negateLongForward(la[i]));
+        }
+    }
+
+    private void performTestNegateLongArray(PrimitivesServiceClient primitivesServiceClient) {
+        long[] la = new long[3];
+        la[0] = -1;
+        la[1] = 0;
+        la[2] = 1;
+
+        long[] r = primitivesServiceClient.negateLongArrayForward(la);
+        Assert.assertEquals(la.length, r.length);
+        for(int i = 0; i < la.length; ++i) {
+            Assert.assertEquals(-la[i], r[i]);
+        }
+    }
+
+    private void performTestNegateFloat(PrimitivesServiceClient primitivesServiceClient) {
+        float[] fa = new float[3];
+        fa[0] = -1;
+        fa[1] = 0;
+        fa[2] = 1;
+
+        for(int i = 0; i < fa.length; ++i) {
+            Assert.assertEquals(-fa[i], primitivesServiceClient.negateFloatForward(fa[i]));
+        }
+    }
+
+    private void performTestNegateFloatArray(PrimitivesServiceClient primitivesServiceClient) {
+        float[] ia = new float[3];
+        ia[0] = -1;
+        ia[1] = 0;
+        ia[2] = 1;
+
+        float[] r = primitivesServiceClient.negateFloatArrayForward(ia);
+        Assert.assertEquals(ia.length, r.length);
+        for(int i = 0; i < ia.length; ++i) {
+            Assert.assertEquals(-ia[i], r[i]);
+        }
+    }
+
+    private void performTestNegateDouble(PrimitivesServiceClient primitivesServiceClient) {
+        double[] da = new double[3];
+        da[0] = -1;
+        da[1] = 0;
+        da[2] = 1;
+
+        for(int i = 0; i < da.length; ++i) {
+            Assert.assertEquals(-da[i], primitivesServiceClient.negateDoubleForward(da[i]));
+        }
+    }
+
+    private void performTestNegateDoubleArray(PrimitivesServiceClient primitivesServiceClient) {
+        double[] da = new double[3];
+        da[0] = -1;
+        da[1] = 0;
+        da[2] = 1;
+
+        double[] r = primitivesServiceClient.negateDoubleArrayForward(da);
+        Assert.assertEquals(da.length, r.length);
+        for(int i = 0; i < da.length; ++i) {
+            Assert.assertEquals(-da[i], r[i]);
+        }
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date