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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to