You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sc...@apache.org on 2011/01/13 21:54:22 UTC
svn commit: r1058748 - in
/tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding:
Mediator.java impl/MediatorImpl.java impl/TransformationContextImpl.java
Author: scottkurz
Date: Thu Jan 13 20:54:22 2011
New Revision: 1058748
URL: http://svn.apache.org/viewvc?rev=1058748&view=rev
Log:
Add context via MediatorImpl so a transformer can know whether a transform is for input/output/fault.
Modified:
tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java
tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java
tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java
Modified: tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java?rev=1058748&r1=1058747&r2=1058748&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java Thu Jan 13 20:54:22 2011
@@ -33,6 +33,17 @@ import org.apache.tuscany.sca.interfaced
*/
public interface Mediator {
+ // Constants used by the databinding framework's TransformationContext metadata
+ public final static String SOURCE_OPERATION = "source.operation";
+ public final static String TARGET_OPERATION = "target.operation";
+
+ // Use String constants rather than an enum, in case the dependency isn't factored
+ // out well enough and someone needs to use the String values.
+ public static final String BODY_TYPE = "body.type";
+ public static final String BODY_TYPE_INPUT = "input";
+ public static final String BODY_TYPE_OUTPUT = "output";
+ public static final String BODY_TYPE_FAULT = "fault";
+
/**
* Mediate the data from the source type to the target type
* @param source The data to be mediated
@@ -201,4 +212,5 @@ public interface Mediator {
TransformationContext createTransformationContext(DataType sourceDataType,
DataType targetDataType,
Map<String, Object> metadata);
+
}
Modified: tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java?rev=1058748&r1=1058747&r2=1058748&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java Thu Jan 13 20:54:22 2011
@@ -64,8 +64,7 @@ import org.oasisopen.sca.ServiceRuntimeE
* @tuscany.spi.extension.asclient
*/
public class MediatorImpl implements Mediator {
- private static final String TARGET_OPERATION = "target.operation";
- private static final String SOURCE_OPERATION = "source.operation";
+
private ExtensionPointRegistry registry;
private DataBindingExtensionPoint dataBindings;
private TransformerExtensionPoint transformers;
@@ -327,6 +326,10 @@ public class MediatorImpl implements Med
if (sourceOperation != null) {
context.put(TARGET_OPERATION, sourceOperation);
}
+ if (context.get(BODY_TYPE) == null) {
+ context.put(BODY_TYPE, BODY_TYPE_FAULT);
+ }
+
Object newResult =
transformException(result, targetDataType, sourceDataType, targetFaultType, sourceFaultType, context);
@@ -403,6 +406,10 @@ public class MediatorImpl implements Med
if (sourceOperation != null) {
context.put(TARGET_OPERATION, sourceOperation);
}
+ if (context.get(BODY_TYPE) == null) {
+ context.put(BODY_TYPE, BODY_TYPE_OUTPUT);
+ }
+
return mediate(output, targetType, sourceType, context);
}
@@ -429,6 +436,10 @@ public class MediatorImpl implements Med
if (targetOperation != null) {
context.put(TARGET_OPERATION, targetOperation);
}
+ if (context.get(BODY_TYPE) == null) {
+ context.put(BODY_TYPE, BODY_TYPE_INPUT);
+ }
+
return mediate(input, sourceType, targetType, context);
}
Modified: tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java?rev=1058748&r1=1058747&r2=1058748&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java Thu Jan 13 20:54:22 2011
@@ -21,14 +21,13 @@ package org.apache.tuscany.sca.databindi
import java.util.HashMap;
import java.util.Map;
+import static org.apache.tuscany.sca.databinding.Mediator.SOURCE_OPERATION;
+import static org.apache.tuscany.sca.databinding.Mediator.TARGET_OPERATION;
import org.apache.tuscany.sca.databinding.TransformationContext;
import org.apache.tuscany.sca.interfacedef.DataType;
import org.apache.tuscany.sca.interfacedef.Operation;
public class TransformationContextImpl implements TransformationContext {
- private static final String SOURCE_OPERATION = "source.operation";
-
- private static final String TARGET_OPERATION = "target.operation";
private DataType sourceDataType;