You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2008/05/31 23:39:06 UTC

svn commit: r662091 - in /incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src: main/java/org/apache/tuscany/sca/itest/databindings/jaxb/ main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/ main/resources/ test/java/org/apache/tu...

Author: rfeng
Date: Sat May 31 14:39:05 2008
New Revision: 662091

URL: http://svn.apache.org/viewvc?rev=662091&view=rev
Log:
Apply the patches from Vamsi for TUSCANY-2350 and TUSCANY-2356. Thanks.

Added:
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloLocalServiceSimple.java   (with props)
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java   (with props)
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java   (with props)
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloLocalServiceSimpleClientImpl.java   (with props)
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java   (with props)
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java   (with props)
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/primitivesservice.composite
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java   (with props)
Modified:
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloServiceSimple.java
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleClientImpl.java
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleImpl.java
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/helloservice.composite
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java

Added: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloLocalServiceSimple.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloLocalServiceSimple.java?rev=662091&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloLocalServiceSimple.java (added)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloLocalServiceSimple.java Sat May 31 14:39:05 2008
@@ -0,0 +1,58 @@
+/*
+ * 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 javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+/**
+ * The interface for HelloLocalServiceSimple.
+ */
+public interface HelloLocalServiceSimple {
+    String getGreetings(String name);
+    String[] getGreetingsArray(String[] names);
+    /**
+     * Add the RequestWrapper/ResponseWrapper annotations to support Collections.  These annotations are used
+     * by the remotable interface that extends this interface.
+     * @param names
+     * @return
+     */
+    @RequestWrapper(className="org.apache.tuscany.sca.itest.databindings.jaxb.impl.jaxws.GetGreetingsList")
+    @ResponseWrapper(className="org.apache.tuscany.sca.itest.databindings.jaxb.impl.jaxws.GetGreetingsListResponse")
+    List<String> getGreetingsList(List<String> names);
+    
+    /**
+     * Add the RequestWrapper/ResponseWrapper annotations to support Collections.  These annotations are used
+     * by the remotable interface that extends this interface.
+     * @param names
+     * @return
+     */
+    @RequestWrapper(className="org.apache.tuscany.sca.itest.databindings.jaxb.impl.jaxws.GetGreetingsList")
+    @ResponseWrapper(className="org.apache.tuscany.sca.itest.databindings.jaxb.impl.jaxws.GetGreetingsListResponse")
+    ArrayList<String> getGreetingsArrayList(ArrayList<String> names);
+    
+    Map<String, String> getGreetingsMap(Map<String, String> namesMap);
+    
+    HashMap<String, String> getGreetingsHashMap(HashMap<String, String> namesMap);
+}

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloLocalServiceSimple.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloLocalServiceSimple.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloServiceSimple.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloServiceSimple.java?rev=662091&r1=662090&r2=662091&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloServiceSimple.java (original)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloServiceSimple.java Sat May 31 14:39:05 2008
@@ -18,35 +18,12 @@
  */
 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 javax.xml.ws.RequestWrapper;
-import javax.xml.ws.ResponseWrapper;
-
 import org.osoa.sca.annotations.Remotable;
 
 /**
  * The interface for HelloServiceSimple.
  */
 @Remotable
-public interface HelloServiceSimple {
-    String getGreetings(String name);
-    String[] getGreetingsArray(String[] names);
-    /**
-     * Add the RequestWrapper/ResponseWrapper annotations to support Collections
-     * @param names
-     * @return
-     */
-    @RequestWrapper(className="org.apache.tuscany.sca.itest.databindings.jaxb.impl.jaxws.GetGreetingsList")
-    @ResponseWrapper(className="org.apache.tuscany.sca.itest.databindings.jaxb.impl.jaxws.GetGreetingsListResponse")
-    List<String> getGreetingsList(List<String> names);
-    
-    ArrayList<String> getGreetingsArrayList(ArrayList<String> names);
-    
-    Map<String, String> getGreetingsMap(Map<String, String> namesMap);
-    
-    HashMap<String, String> getGreetingsHashMap(HashMap<String, String> namesMap);
+public interface HelloServiceSimple extends HelloLocalServiceSimple {
+    // Add any methods to the local interface.
 }

Added: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java?rev=662091&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java (added)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java Sat May 31 14:39:05 2008
@@ -0,0 +1,42 @@
+/*
+ * 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 org.osoa.sca.annotations.Remotable;
+
+/**
+ * The interface for PrimitivesService.
+ */
+@Remotable
+public interface PrimitivesService {
+    boolean negateBoolean(boolean flag);
+    boolean[] negateBooleanArray(boolean[] flags);
+    byte negateByte(byte b);
+    byte[] negateByteArray(byte[] ba);
+    short negateShort(short s);
+    short[] negateShortArray(short[] s);
+    int negateInt(int s);
+    int[] negateIntArray(int[] s);
+    long negateLong(long l);
+    long[] negateLongArray(long[] la);
+    float negateFloat(float f);
+    float[] negateFloatArray(float[] fa);
+    double negateDouble(double d);
+    double[] negateDoubleArray(double[] da);
+}

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java?rev=662091&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java (added)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java Sat May 31 14:39:05 2008
@@ -0,0 +1,41 @@
+/*
+ * 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;
+
+
+/**
+ * The interface for PrimitivesServiceClient.
+ */
+public interface PrimitivesServiceClient {
+    boolean negateBooleanForward(boolean flag);
+    boolean[] negateBooleanArrayForward(boolean[] flags);
+    byte negateByteForward(byte b);
+    byte[] negateByteArrayForward(byte[] ba);
+    short negateShortForward(short s);
+    short[] negateShortArrayForward(short[] sa);
+    int negateIntForward(int i);
+    int[] negateIntArrayForward(int[] ia);
+    long negateLongForward(long l);
+    long[] negateLongArrayForward(long[] la);
+    float negateFloatForward(float f);
+    float[] negateFloatArrayForward(float[] fa);
+    double negateDoubleForward(double d);
+    double[] negateDoubleArrayForward(double[] da);
+}

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloLocalServiceSimpleClientImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloLocalServiceSimpleClientImpl.java?rev=662091&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloLocalServiceSimpleClientImpl.java (added)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloLocalServiceSimpleClientImpl.java Sat May 31 14:39:05 2008
@@ -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.tuscany.sca.itest.databindings.jaxb.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tuscany.sca.itest.databindings.jaxb.HelloLocalServiceSimple;
+import org.apache.tuscany.sca.itest.databindings.jaxb.HelloServiceSimpleClient;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * An implementation of HelloServiceSimpleClient.
+ * The client forwards the request to the service component and returns the response from the service component.
+ */
+@Service(HelloServiceSimpleClient.class)
+public class HelloLocalServiceSimpleClientImpl implements HelloServiceSimpleClient {
+
+    private HelloLocalServiceSimple service;
+
+    @Reference(required=false)
+    protected void setHelloLocalServiceSimple(HelloLocalServiceSimple service) {
+        this.service = service;
+    }
+
+    public String getGreetingsForward(String name) {
+        return service.getGreetings(name);
+    }
+
+    public String[] getGreetingsArrayForward(String[] names) {
+        return service.getGreetingsArray(names);
+    }
+
+    public List<String> getGreetingsListForward(List<String> names) {
+        return service.getGreetingsList(names);
+    }
+
+    public Map<String, String> getGreetingsMapForward(Map<String, String> namesMap) {
+        return service.getGreetingsMap(namesMap);
+    }
+
+    public ArrayList<String> getGreetingsArrayListForward(ArrayList<String> names) {
+        return service.getGreetingsArrayList(names);
+    }
+
+    public HashMap<String, String> getGreetingsHashMapForward(HashMap<String, String> namesMap) {
+        return service.getGreetingsHashMap(namesMap);
+    }
+}

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloLocalServiceSimpleClientImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloLocalServiceSimpleClientImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleClientImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleClientImpl.java?rev=662091&r1=662090&r2=662091&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleClientImpl.java (original)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleClientImpl.java Sat May 31 14:39:05 2008
@@ -19,11 +19,6 @@
 
 package org.apache.tuscany.sca.itest.databindings.jaxb.impl;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.tuscany.sca.itest.databindings.jaxb.HelloServiceSimple;
 import org.apache.tuscany.sca.itest.databindings.jaxb.HelloServiceSimpleClient;
 import org.osoa.sca.annotations.Reference;
@@ -34,36 +29,10 @@
  * The client forwards the request to the service component and returns the response from the service component.
  */
 @Service(HelloServiceSimpleClient.class)
-public class HelloServiceSimpleClientImpl implements HelloServiceSimpleClient {
-
-    private HelloServiceSimple service;
+public class HelloServiceSimpleClientImpl extends HelloLocalServiceSimpleClientImpl {
 
     @Reference
     public void setHelloServiceSimple(HelloServiceSimple service) {
-        this.service = service;
-    }
-
-    public String getGreetingsForward(String name) {
-        return service.getGreetings(name);
-    }
-
-    public String[] getGreetingsArrayForward(String[] names) {
-        return service.getGreetingsArray(names);
-    }
-
-    public List<String> getGreetingsListForward(List<String> names) {
-        return service.getGreetingsList(names);
-    }
-
-    public Map<String, String> getGreetingsMapForward(Map<String, String> namesMap) {
-        return service.getGreetingsMap(namesMap);
-    }
-
-    public ArrayList<String> getGreetingsArrayListForward(ArrayList<String> names) {
-        return service.getGreetingsArrayList(names);
-    }
-
-    public HashMap<String, String> getGreetingsHashMapForward(HashMap<String, String> namesMap) {
-        return service.getGreetingsHashMap(namesMap);
+        super.setHelloLocalServiceSimple(service);
     }
 }

Modified: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleImpl.java?rev=662091&r1=662090&r2=662091&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleImpl.java (original)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceSimpleImpl.java Sat May 31 14:39:05 2008
@@ -29,13 +29,15 @@
 import javax.jws.WebResult;
 import javax.jws.WebService;
 
+import org.apache.tuscany.sca.itest.databindings.jaxb.HelloLocalServiceSimple;
 import org.apache.tuscany.sca.itest.databindings.jaxb.HelloServiceSimple;
 import org.osoa.sca.annotations.Service;
 
 /**
  * An implementation of HelloServiceSimple.
+ * The implementation provides both a local and a remotable service.
  */
-@Service(HelloServiceSimple.class)
+@Service(interfaces = {HelloServiceSimple.class, HelloLocalServiceSimple.class})
 @WebService(targetNamespace = "http://jaxb.databindings.itest.sca.tuscany.apache.org/")
 public class HelloServiceSimpleImpl implements HelloServiceSimple {
 
@@ -50,30 +52,33 @@
     @WebResult(name = "return", targetNamespace = "")
     public String[] getGreetingsArray(@WebParam(name = "arg0", targetNamespace = "")
     String[] names) {
+        String[] resps = new String[names.length];
         for (int i = 0; i < names.length; ++i) {
-            names[i] = "Hello " + names[i];
+            resps[i] = "Hello " + names[i];
         }
-        return names;
+        return resps;
     }
 
     @WebMethod
     @WebResult(name = "return", targetNamespace = "")
     public List<String> getGreetingsList(@WebParam(name = "arg0", targetNamespace = "")
     List<String> names) {
+        List<String> resps = new ArrayList<String>();
         for (int i = 0; i < names.size(); ++i) {
-            names.set(i, "Hello " + names.get(i));
+            resps.add("Hello " + names.get(i));
         }
-        return names;
+        return resps;
     }
 
     @WebMethod
     @WebResult(name = "return", targetNamespace = "")
     public ArrayList<String> getGreetingsArrayList(@WebParam(name = "arg0", targetNamespace = "")
     ArrayList<String> names) {
+        ArrayList<String> resps = new ArrayList<String>();
         for (int i = 0; i < names.size(); ++i) {
-            names.set(i, "Hello " + names.get(i));
+            resps.add("Hello " + names.get(i));
         }
-        return names;
+        return resps;
     }
 
     //    @WebMethod

Added: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java?rev=662091&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java (added)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java Sat May 31 14:39:05 2008
@@ -0,0 +1,96 @@
+/*
+ * 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.impl;
+
+import org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService;
+import org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesServiceClient;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * An implementation of PrimitivesServiceClient.
+ * The client forwards the request to the service component and returns the response from the service component.
+ */
+@Service(PrimitivesServiceClient.class)
+public class PrimitivesServiceClientImpl implements PrimitivesServiceClient {
+
+    private PrimitivesService service;
+
+    @Reference
+    public void setPrimitivesService(PrimitivesService service) {
+        this.service = service;
+    }
+
+    public boolean negateBooleanForward(boolean flag) {
+        return service.negateBoolean(flag);
+    }
+    
+    public boolean[] negateBooleanArrayForward(boolean[] flags) {
+        return service.negateBooleanArray(flags);
+    }
+
+    public byte negateByteForward(byte b) {
+        return service.negateByte(b);
+    }
+    
+    public byte[] negateByteArrayForward(byte[] ba) {
+        return service.negateByteArray(ba);
+    }
+
+    public short negateShortForward(short s) {
+        return service.negateShort(s);
+    }
+    
+    public short[] negateShortArrayForward(short[] s) {
+        return service.negateShortArray(s);
+    }
+
+    public int negateIntForward(int i) {
+        return service.negateInt(i);
+    }
+    
+    public int[] negateIntArrayForward(int[] ia) {
+        return service.negateIntArray(ia);
+    }
+
+    public long negateLongForward(long l) {
+        return service.negateLong(l);
+    }
+    
+    public long[] negateLongArrayForward(long[] la) {
+        return service.negateLongArray(la);
+    }
+
+    public float negateFloatForward(float f) {
+        return service.negateFloat(f);
+    }
+    
+    public float[] negateFloatArrayForward(float[] fa) {
+        return service.negateFloatArray(fa);
+    }
+
+    public double negateDoubleForward(double d) {
+        return service.negateDouble(d);
+    }
+    
+    public double[] negateDoubleArrayForward(double[] da) {
+        return service.negateDoubleArray(da);
+    }
+}

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java?rev=662091&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java (added)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java Sat May 31 14:39:05 2008
@@ -0,0 +1,107 @@
+/*
+ * 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.impl;
+
+import org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * An implementation of PrimitivesService.
+ */
+@Service(PrimitivesService.class)
+public class PrimitivesServiceImpl implements PrimitivesService {
+
+    public boolean negateBoolean(boolean flag) {
+        return !flag;
+    }
+
+    public boolean[] negateBooleanArray(boolean[] flags) {
+        for(int i = 0; i < flags.length; ++i) {
+            flags[i] = !flags[i];
+        }
+        return flags;
+    }
+    
+    public byte negateByte(byte b) {
+        return (byte)-b;
+    }
+
+    public byte[] negateByteArray(byte[] ba) {
+        for(int i = 0; i < ba.length; ++i) {
+            ba[i] = (byte)-ba[i];
+        }
+        return ba;
+    }
+    
+    public short negateShort(short s) {
+        return (short)-s;
+    }
+
+    public short[] negateShortArray(short[] s) {
+        for(int i = 0; i < s.length; ++i) {
+            s[i] = (short)-s[i];
+        }
+        return s;
+    }
+    
+    public int negateInt(int i) {
+        return -i;
+    }
+
+    public int[] negateIntArray(int[] ia) {
+        for(int i = 0; i < ia.length; ++i) {
+            ia[i] = -ia[i];
+        }
+        return ia;
+    }
+    
+    public long negateLong(long l) {
+        return -l;
+    }
+
+    public long[] negateLongArray(long[] la) {
+        for(int i = 0; i < la.length; ++i) {
+            la[i] = -la[i];
+        }
+        return la;
+    }
+    
+    public float negateFloat(float f) {
+        return -f;
+    }
+
+    public float[] negateFloatArray(float[] fa) {
+        for(int i = 0; i < fa.length; ++i) {
+            fa[i] = -fa[i];
+        }
+        return fa;
+    }
+    
+    public double negateDouble(double d) {
+        return -d;
+    }
+
+    public double[] negateDoubleArray(double[] da) {
+        for(int i = 0; i < da.length; ++i) {
+            da[i] = -da[i];
+        }
+        return da;
+    }
+}

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/helloservice.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/helloservice.composite?rev=662091&r1=662090&r2=662091&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/helloservice.composite (original)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/helloservice.composite Sat May 31 14:39:05 2008
@@ -34,12 +34,21 @@
     <!-- A HelloServiceSimpleClient component that uses SCA binding to invoke HelloServiceSimple service -->
     <component name="HelloServiceSimpleClientSCAComponent">
         <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.HelloServiceSimpleClientImpl" />
-        <reference name="helloServiceSimple" target="HelloServiceSimpleComponent">
+        <reference name="helloServiceSimple" target="HelloServiceSimpleComponent/HelloServiceSimple">
             <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.HelloServiceSimple"/>
             <binding.sca/>
         </reference>
     </component>
     
+    <!-- A HelloLocalServiceSimpleClient component that uses SCA binding to invoke HelloLocalServiceSimple service -->
+    <component name="HelloLocalServiceSimpleClientSCAComponent">
+        <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.HelloLocalServiceSimpleClientImpl" />
+        <reference name="helloLocalServiceSimple" target="HelloServiceSimpleComponent/HelloLocalServiceSimple">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.HelloLocalServiceSimple"/>
+            <binding.sca/>
+        </reference>
+    </component>
+
     <!-- Components used to implement the services -->
     <!-- A HelloServiceSimple component. -->
     <component name="HelloServiceSimpleComponent">
@@ -49,5 +58,8 @@
             <binding.ws uri="http://localhost:8085/hs-ep0"/>
             <binding.sca/>
         </service>
+        <service name="HelloLocalServiceSimple">
+            <binding.sca/>
+        </service>
     </component>
 </composite>

Added: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/primitivesservice.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/primitivesservice.composite?rev=662091&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/primitivesservice.composite (added)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/resources/primitivesservice.composite Sat May 31 14:39:05 2008
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    *
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    *
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" 
+           xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance"
+           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"/>
+        </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">
+            <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService"/>
+            <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"/>
+            <binding.sca/>
+        </service>
+    </component>
+</composite>

Modified: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java?rev=662091&r1=662090&r2=662091&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/DatabindingTestCase.java Sat May 31 14:39:05 2008
@@ -154,7 +154,6 @@
      * Service method invoked is getGreetingsArrayList.
      */
     @Test
-    @Ignore
     public void testWSArrayList() throws Exception {
         HelloServiceSimpleClient helloServiceSimpleClient = domain.getService(HelloServiceSimpleClient.class, "HelloServiceSimpleClientWSComponent");
         performTestArrayList(helloServiceSimpleClient);
@@ -182,6 +181,66 @@
         performTestHashMap(helloServiceSimpleClient);
     }
 
+    /**
+     * Invokes the HelloLocalServiceSimple service using SCA binding.
+     * Service method invoked is getGreetings.
+     */
+    @Test
+    public void testSCALocal() throws Exception {
+        HelloServiceSimpleClient helloServiceSimpleClient = domain.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 = domain.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 = domain.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 = domain.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 = domain.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 = domain.getService(HelloServiceSimpleClient.class, "HelloLocalServiceSimpleClientSCAComponent");
+        performTestHashMap(helloServiceSimpleClient);
+    }
+
     private void performTest(HelloServiceSimpleClient helloServiceSimpleClient) {
         String name = "Pandu";
         String resp = helloServiceSimpleClient.getGreetingsForward(name);

Added: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java?rev=662091&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java Sat May 31 14:39:05 2008
@@ -0,0 +1,498 @@
+/*
+ * 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 org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class PrimitivesDatabindingTestCase {
+
+    private SCADomain domain;
+
+    /**
+     * Runs before each test method
+     */
+    @Before
+    public void setUp() throws Exception {
+        try { 
+            domain = SCADomain.newInstance("primitivesservice.composite");
+        } catch(Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Runs after each test method
+     */
+    @After
+    public void tearDown() {
+        domain.close();
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateBoolean.
+     */
+    @Test
+    public void testSCANegateBoolean() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateBooleanArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateByte.
+     */
+    @Test
+    public void testSCANegateByte() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateByte(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateByteArray.
+     */
+    @Test
+    @Ignore("TUSCANY-2351")
+    public void testSCANegateByteArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateByteArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateShort.
+     */
+    @Test
+    public void testSCANegateShort() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateShortArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateInt.
+     */
+    @Test
+    public void testSCANegateInt() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateIntArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateLong.
+     */
+    @Test
+    public void testSCANegateLong() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateLongArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateFloat.
+     */
+    @Test
+    public void testSCANegateFloat() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateFloatArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using SCA binding.
+     * Service method invoked is negateDouble.
+     */
+    @Test
+    public void testSCANegateDouble() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientSCAComponent");
+        performTestNegateDoubleArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateBoolean.
+     */
+    @Test
+    public void testWSNegateBoolean() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateBooleanArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateByte.
+     */
+    @Test
+    public void testWSNegateByte() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateByte(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateByteArray.
+     */
+    @Test
+    @Ignore("TUSCANY-2349")
+    public void testWSNegateByteArray() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateByteArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateShort.
+     */
+    @Test
+    public void testWSNegateShort() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateShortArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateInt.
+     */
+    @Test
+    public void testWSNegateInt() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateIntArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateLong.
+     */
+    @Test
+    public void testWSNegateLong() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateLongArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateFloat.
+     */
+    @Test
+    public void testWSNegateFloat() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        performTestNegateFloatArray(primitivesServiceClient);
+    }
+
+    /**
+     * Invokes the PrimitivesService service using WS binding.
+     * Service method invoked is negateDouble.
+     */
+    @Test
+    public void testWSNegateDouble() throws Exception {
+        PrimitivesServiceClient primitivesServiceClient = domain.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 = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientWSComponent");
+        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: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesDatabindingTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

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