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]