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 2007/12/13 20:25:54 UTC

svn commit: r603995 - in /incubator/tuscany/java/sca/modules: core-databinding/ core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/ databinding/src/main/java/org/apache/tuscany/sca/databinding/

Author: rfeng
Date: Thu Dec 13 11:25:52 2007
New Revision: 603995

URL: http://svn.apache.org/viewvc?rev=603995&view=rev
Log:
Use JAXB to handle the XML copy when the Java object is not Serializable

Modified:
    incubator/tuscany/java/sca/modules/core-databinding/pom.xml
    incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/PassByValueInterceptor.java
    incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java

Modified: incubator/tuscany/java/sca/modules/core-databinding/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/pom.xml?rev=603995&r1=603994&r2=603995&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core-databinding/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/core-databinding/pom.xml Thu Dec 13 11:25:52 2007
@@ -42,7 +42,7 @@
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-databinding-jaxb</artifactId>
             <version>${project.version}</version>
-            <scope>runtime</scope>
+            <scope>compile</scope>
         </dependency>
         
         <dependency>

Modified: incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/PassByValueInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/PassByValueInterceptor.java?rev=603995&r1=603994&r2=603995&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/PassByValueInterceptor.java (original)
+++ incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/PassByValueInterceptor.java Thu Dec 13 11:25:52 2007
@@ -19,11 +19,14 @@
 
 package org.apache.tuscany.sca.core.databinding.wire;
 
+import java.io.Serializable;
 import java.util.IdentityHashMap;
 import java.util.Map;
 
 import org.apache.tuscany.sca.databinding.DataBinding;
 import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
+import org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding;
+import org.apache.tuscany.sca.databinding.jaxb.JAXBDataBinding;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.invocation.Interceptor;
@@ -72,6 +75,10 @@
                 } else {
                     String dataBindingId = operation.getInputType().getLogical().get(i).getDataBinding();
                     DataBinding dataBinding = dataBindings.getDataBinding(dataBindingId);
+                    // HACK: Use JAXB to copy non-Serializable beans
+                    if (JavaBeansDataBinding.NAME.equals(dataBinding.getName()) && !(args[i] instanceof Serializable)) {
+                        dataBinding = dataBindings.getDataBinding(JAXBDataBinding.NAME);
+                    }
                     copiedArg = copy(args[i], dataBinding);
                     map.put(args[i], copiedArg);
                     copiedArgs[i] = copiedArg;

Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java?rev=603995&r1=603994&r2=603995&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java Thu Dec 13 11:25:52 2007
@@ -210,7 +210,7 @@
 
     private boolean introspectArray(DataType dataType, Annotation[] annotations) {
         Class physical = dataType.getPhysical();
-        if (!physical.isArray()) {
+        if (!physical.isArray() || physical == byte[].class) {
             return false;
         }
         Class componentType = physical.getComponentType();



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org