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/04/12 01:50:23 UTC

svn commit: r527726 [1/2] - in /incubator/tuscany/java/sca/modules: ./ core-databinding/src/main/java/org/apache/tuscany/core/databinding/processor/ core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/ core-databinding/src/m...

Author: rfeng
Date: Wed Apr 11 16:50:20 2007
New Revision: 527726

URL: http://svn.apache.org/viewvc?view=rev&rev=527726
Log:
Add the interface mapping to IDL

Added:
    incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/IncompatibleInterfaceContractException.java   (with props)
    incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/InterfaceContractMapper.java   (with props)
    incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java   (with props)
    incubator/tuscany/java/sca/modules/interface/src/test/java/org/
    incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/
    incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/
    incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/interfacedef/
    incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/interfacedef/impl/
    incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/interfacedef/impl/ContractCompatibilityTestCase.java   (with props)
Removed:
    incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/processor/DataBindingJavaInterfaceIntrospector.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java
    incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java
    incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java
Modified:
    incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
    incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Input2InputTransformer.java
    incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Output2OutputTransformer.java
    incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingInteceptor.java
    incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingWirePostProcessor.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireUtils.java
    incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java
    incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/WireObjectFactoryTestCase.java
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDO.java
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOContextHelper.java
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataBinding.java
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOHelperContext.java
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java
    incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/MediatorImpl.java
    incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/TransformationContextImpl.java
    incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java
    incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java
    incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java
    incubator/tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtensionTestCase.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandlerTestCase.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerProxyTestCase.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerSerializationTestCase.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKProxyTestCaseFIXME.java
    incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/interfacedef/java/impl/JavaInterfaceUtil.java
    incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java
    incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java
    incubator/tuscany/java/sca/modules/pom.xml

Modified: incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/processor/DataBindingJavaInterfaceProcessor.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/processor/DataBindingJavaInterfaceProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/processor/DataBindingJavaInterfaceProcessor.java Wed Apr 11 16:50:20 2007
@@ -21,13 +21,13 @@
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
-import java.lang.reflect.Type;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -36,11 +36,11 @@
 import javax.xml.datatype.Duration;
 import javax.xml.datatype.XMLGregorianCalendar;
 
-import org.apache.tuscany.assembly.Contract;
 import org.apache.tuscany.databinding.DataType;
 import org.apache.tuscany.interfacedef.InvalidInterfaceException;
 import org.apache.tuscany.interfacedef.Operation;
-import org.apache.tuscany.interfacedef.java.introspection.JavaInterfaceProcessor;
+import org.apache.tuscany.interfacedef.java.JavaInterface;
+import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospectorExtension;
 import org.apache.tuscany.spi.databinding.DataBindingRegistry;
 import org.osoa.sca.annotations.Reference;
 
@@ -49,53 +49,36 @@
  * 
  * @version $Rev$ $Date$
  */
-public class DataBindingJavaInterfaceProcessor implements JavaInterfaceProcessor {
-    private static final Class[] SIMPLE_JAVA_TYPES = {Byte.class,
-                                                      Character.class,
-                                                      Short.class,
-                                                      Integer.class,
-                                                      Long.class,
-                                                      Float.class,
-                                                      Double.class,
-                                                      Date.class,
-                                                      Calendar.class,
-                                                      GregorianCalendar.class,
-                                                      Duration.class,
-                                                      XMLGregorianCalendar.class,
-                                                      BigInteger.class,
-                                                      BigDecimal.class};
-
-    private static final Set<Class> SIMPLE_TYPE_SET = new HashSet<Class>(Arrays.asList(SIMPLE_JAVA_TYPES));
-
+public class DataBindingJavaInterfaceProcessor implements JavaInterfaceIntrospectorExtension {
     private DataBindingRegistry dataBindingRegistry;
 
-    public DataBindingJavaInterfaceProcessor(@Reference
-    DataBindingRegistry dataBindingRegistry) {
+    public DataBindingJavaInterfaceProcessor(@Reference DataBindingRegistry dataBindingRegistry) {
         super();
         this.dataBindingRegistry = dataBindingRegistry;
     }
 
-    public void visitInterface(Class<?> clazz, Class<?> callbackClass, Contract contract)
+    public void visitInterface(JavaInterface javaInterface)
         throws InvalidInterfaceException {
-        if (!contract.getInterface().isRemotable()) {
+        if (!javaInterface.isRemotable()) {
             return;
         }
-        List<Operation> operations = contract.getInterface().getOperations();
-        processInterface(clazz, contract, operations);
-        if (callbackClass != null) {
-            List<Operation> callbackOperations = contract.getCallbackInterface().getOperations();
-            processInterface(callbackClass, contract, callbackOperations);
-        }
+        List<Operation> operations = javaInterface.getOperations();
+        processInterface(javaInterface, operations);
     }
-
-    private void processInterface(Class<?> clazz, Contract contract, List<Operation> operations) {
+    
+    private void processInterface(JavaInterface javaInterface, List<Operation> operations) {
+        Class<?> clazz = javaInterface.getJavaClass();
         // IDLMapping interfaceMapping = clazz.getAnnotation(IDLMapping.class);
         DataType interfaceDataType = clazz.getAnnotation(DataType.class);
         if (interfaceDataType != null) {
-            contract.setDataBinding(interfaceDataType.name());
+            javaInterface.setDataBinding(interfaceDataType.name());
+        }
+        Map<String, Operation> opMap = new HashMap<String, Operation>();
+        for(Operation op: javaInterface.getOperations()) {
+            opMap.put(op.getName(), op);
         }
         for (Method method : clazz.getMethods()) {
-            Operation operation = operations.get(method.getName());
+            Operation operation = opMap.get(method.getName());
             DataType operationDataType = method.getAnnotation(DataType.class);
             if (operationDataType == null) {
                 operationDataType = interfaceDataType;
@@ -105,17 +88,6 @@
                 operation.setDataBinding(operationDataType.name());
                 // FIXME: [rfeng] Keep data context as metadata?
             }
-            // IDLMapping operationMapping =
-            // clazz.getAnnotation(IDLMapping.class);
-            // if (operationMapping == null) {
-            // operationMapping = interfaceMapping;
-            // }
-            //            
-            // if (operationMapping != null) {
-            // operation.setDataBinding(operationMapping.dataBinding());
-            // operation.setWrapperStyle(operationMapping.wrapperStyle());
-            // }
-            // String dataBinding = operation.getDataBinding();
 
             Annotation[] annotations = null;
             if (operationDataType != null) {

Modified: incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Input2InputTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Input2InputTransformer.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Input2InputTransformer.java (original)
+++ incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Input2InputTransformer.java Wed Apr 11 16:50:20 2007
@@ -94,21 +94,21 @@
 
     @SuppressWarnings("unchecked")
     public Object[] transform(Object[] source, TransformationContext context) {
-        DataType<List<DataType<?>>> sourceType = context.getSourceDataType();
-        Operation sourceOp = (Operation)sourceType.getOperation();
+        DataType<List<DataType>> sourceType = context.getSourceDataType();
+        Operation sourceOp = context.getSourceOperation();
         boolean sourceWrapped = sourceOp != null && sourceOp.isWrapperStyle();
 
         WrapperHandler sourceWrapperHandler = null;
         if (sourceWrapped) {
-            sourceWrapperHandler = getWrapperHandler(sourceType.getOperation().getDataBinding(), true);
+            sourceWrapperHandler = getWrapperHandler(sourceOp.getDataBinding(), true);
         }
 
-        DataType<List<DataType<XMLType>>> targetType = context.getTargetDataType();
-        Operation targetOp = (Operation)targetType.getOperation();
+        DataType<List<DataType>> targetType = context.getTargetDataType();
+        Operation targetOp = (Operation)context.getTargetOperation();
         boolean targetWrapped = targetOp != null && targetOp.isWrapperStyle();
         WrapperHandler targetWrapperHandler = null;
         if (targetWrapped) {
-            targetWrapperHandler = getWrapperHandler(targetType.getOperation().getDataBinding(), true);
+            targetWrapperHandler = getWrapperHandler(targetOp.getDataBinding(), true);
         }
 
         if ((!sourceWrapped) && targetWrapped) {
@@ -128,7 +128,7 @@
             if (source == null) {
                 return new Object[] {targetWrapper};
             }
-            List<DataType<XMLType>> argTypes = wrapper.getUnwrappedInputType().getLogical();
+            List<DataType> argTypes = wrapper.getUnwrappedInputType().getLogical();
 
             for (int i = 0; i < source.length; i++) {
                 ElementInfo argElement = wrapper.getInputChildElements().get(i);
@@ -146,13 +146,13 @@
             // List<ElementInfo> childElements = sourceOp.getWrapper().getInputChildElements();
             Object[] target = null;
 
-            targetWrapperHandler = getWrapperHandler(targetType.getOperation().getDataBinding(), false);
+            targetWrapperHandler = getWrapperHandler(targetOp.getDataBinding(), false);
             if (targetWrapperHandler != null) {
                 ElementInfo wrapperElement = sourceOp.getWrapper().getInputWrapperElement();
                 // Object targetWrapper =
                 // targetWrapperHandler.create(wrapperElement, context);
                 DataType<XMLType> targetWrapperType =
-                    new DataType<XMLType>(targetType.getOperation().getDataBinding(), Object.class,
+                    new DataType<XMLType>(targetOp.getDataBinding(), Object.class,
                                         new XMLType(wrapperElement));
                 Object targetWrapper =
                     mediator.mediate(sourceWrapper,

Modified: incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Output2OutputTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Output2OutputTransformer.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Output2OutputTransformer.java (original)
+++ incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/transformers/Output2OutputTransformer.java Wed Apr 11 16:50:20 2007
@@ -23,6 +23,7 @@
 
 import org.apache.tuscany.interfacedef.DataType;
 import org.apache.tuscany.interfacedef.Operation;
+import org.apache.tuscany.interfacedef.impl.DataTypeImpl;
 import org.apache.tuscany.interfacedef.util.ElementInfo;
 import org.apache.tuscany.interfacedef.util.WrapperInfo;
 import org.apache.tuscany.interfacedef.util.XMLType;
@@ -116,7 +117,7 @@
     public Object transform(Object response, TransformationContext context) {
         try {
             DataType<DataType> sourceType = context.getSourceDataType();
-            Operation sourceOp = (Operation)sourceType.getOperation();
+            Operation sourceOp = context.getSourceOperation();
             boolean sourceWrapped = sourceOp != null && sourceOp.isWrapperStyle();
             WrapperHandler sourceWrapperHandler = null;
             if (sourceWrapped) {
@@ -124,7 +125,7 @@
             }
 
             DataType<DataType> targetType = context.getTargetDataType();
-            Operation targetOp = (Operation)targetType.getOperation();
+            Operation targetOp = context.getTargetOperation();
             boolean targetWrapped = targetOp != null && targetOp.isWrapperStyle();
             WrapperHandler targetWrapperHandler = null;
             if (targetWrapped) {
@@ -162,7 +163,7 @@
                     // Object targetWrapper =
                     // targetWrapperHandler.create(wrapperElement, context);
                     DataType<XMLType> targetWrapperType =
-                        new DataType<XMLType>(targetType.getLogical().getDataBinding(), Object.class,
+                        new DataTypeImpl<XMLType>(targetType.getLogical().getDataBinding(), Object.class,
                                             new XMLType(wrapperElement));
                     Object targetWrapper =
                         mediator.mediate(sourceWrapper, sourceType.getLogical(), targetWrapperType, context

Modified: incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingInteceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingInteceptor.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingInteceptor.java (original)
+++ incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingInteceptor.java Wed Apr 11 16:50:20 2007
@@ -24,15 +24,16 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.tuscany.interfacedef.DataType;
+import org.apache.tuscany.interfacedef.Operation;
+import org.apache.tuscany.interfacedef.impl.DataTypeImpl;
+import org.apache.tuscany.interfacedef.util.FaultException;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.ComponentManager;
 import org.apache.tuscany.spi.databinding.DataBinding;
 import org.apache.tuscany.spi.databinding.ExceptionHandler;
 import org.apache.tuscany.spi.databinding.Mediator;
 import org.apache.tuscany.spi.databinding.TransformationException;
-import org.apache.tuscany.spi.idl.ServiceFaultException;
-import org.apache.tuscany.spi.model.DataType;
-import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.util.UriHelper;
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.Message;
@@ -48,16 +49,16 @@
 
     private Component composite;
 
-    private Operation<?> sourceOperation;
+    private Operation sourceOperation;
 
-    private Operation<?> targetOperation;
+    private Operation targetOperation;
 
     private Mediator mediator;
 
     public DataBindingInteceptor(ComponentManager componentManager,
                                  Wire wire,
-                                 Operation<?> sourceOperation,
-                                 Operation<?> targetOperation) {
+                                 Operation sourceOperation,
+                                 Operation targetOperation) {
         super();
         this.sourceOperation = sourceOperation;
         this.targetOperation = targetOperation;
@@ -95,12 +96,10 @@
         // FIXME: Should we fix the Operation model so that getOutputType
         // returns DataType<DataType<T>>?
         DataType<DataType> targetType =
-            new DataType<DataType>(DataBinding.IDL_OUTPUT, Object.class, targetOperation.getOutputType());
+            new DataTypeImpl<DataType>(DataBinding.IDL_OUTPUT, Object.class, targetOperation.getOutputType());
 
-        targetType.setOperation(targetOperation.getOutputType().getOperation());
         DataType<DataType> sourceType =
-            new DataType<DataType>(DataBinding.IDL_OUTPUT, Object.class, sourceOperation.getOutputType());
-        sourceType.setOperation(sourceOperation.getOutputType().getOperation());
+            new DataTypeImpl<DataType>(DataBinding.IDL_OUTPUT, Object.class, sourceOperation.getOutputType());
 
         if (resultMsg.isFault()) {
 
@@ -121,8 +120,8 @@
                 DataType targetDataType = null;
                 for (DataType exType : targetOperation.getFaultTypes()) {
                     if (((Class)exType.getPhysical()).isInstance(result)) {
-                        if (result instanceof ServiceFaultException) {
-                            if (((ServiceFaultException)result).isMatchingType(exType.getLogical())) {
+                        if (result instanceof FaultException) {
+                            if (((FaultException)result).isMatchingType(exType.getLogical())) {
                                 targetDataType = exType;
                                 break;
                             }
@@ -184,8 +183,10 @@
         if (sourceType == targetType || (sourceType != null && sourceType.equals(targetType))) {
             return source;
         }
-        Map<Class<?>, Object> metadata = new HashMap<Class<?>, Object>();
-        metadata.put(Component.class, composite);
+        Map<String, Object> metadata = new HashMap<String, Object>();
+        metadata.put(Component.class.getName(), composite);
+        metadata.put("source.operation", sourceOperation);
+        metadata.put("target.operation", targetOperation);
         return mediator.mediate(source, sourceType, targetType, metadata);
     }
 
@@ -219,13 +220,13 @@
         if (sourceType == targetType || (sourceType != null && sourceType.equals(targetType))) {
             return source;
         }
-        Map<Class<?>, Object> metadata = new HashMap<Class<?>, Object>();
-        metadata.put(Component.class, composite);
+        Map<String, Object> metadata = new HashMap<String, Object>();
+        metadata.put(Component.class.getName(), composite);
 
-        DataType<DataType<?>> eSourceDataType =
-            new DataType<DataType<?>>("idl:fault", sourceExType.getPhysical(), sourceType);
-        DataType<DataType<?>> eTargetDataType =
-            new DataType<DataType<?>>("idl:fault", targetExType.getPhysical(), targetType);
+        DataType<DataType> eSourceDataType =
+            new DataTypeImpl<DataType>("idl:fault", sourceExType.getPhysical(), sourceType);
+        DataType<DataType> eTargetDataType =
+            new DataTypeImpl<DataType>("idl:fault", targetExType.getPhysical(), targetType);
 
         return mediator.mediate(source, eSourceDataType, eTargetDataType, metadata);
     }

Modified: incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingWirePostProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingWirePostProcessor.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingWirePostProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/core/databinding/wire/DataBindingWirePostProcessor.java Wed Apr 11 16:50:20 2007
@@ -21,10 +21,10 @@
 
 import java.util.Map;
 
+import org.apache.tuscany.interfacedef.InterfaceContract;
+import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.spi.component.ComponentManager;
 import org.apache.tuscany.spi.databinding.Mediator;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.Wire;
 import org.apache.tuscany.spi.wire.WirePostProcessorExtension;
@@ -50,19 +50,19 @@
     }
 
     public void process(Wire wire) {
-        ServiceContract<?> sourceContract = wire.getSourceContract();
-        ServiceContract<?> targetContract = wire.getTargetContract();
+        InterfaceContract sourceContract = wire.getSourceContract();
+        InterfaceContract targetContract = wire.getTargetContract();
         if (targetContract == null) {
             targetContract = sourceContract;
         }
         if (sourceContract == targetContract) {
             return;
         }
-        Map<Operation<?>, InvocationChain> chains = wire.getInvocationChains();
-        for (Map.Entry<Operation<?>, InvocationChain> entry : chains.entrySet()) {
+        Map<Operation, InvocationChain> chains = wire.getInvocationChains();
+        for (Map.Entry<Operation, InvocationChain> entry : chains.entrySet()) {
             String opName = entry.getKey().getName();
-            Operation<?> sourceOperation = sourceContract.getOperation(opName);
-            Operation<?> targetOperation = targetContract.getOperation(opName);
+            Operation sourceOperation = sourceContract.getOperation(opName);
+            Operation targetOperation = targetContract.getOperation(opName);
             String sourceDataBinding = sourceOperation.getDataBinding();
             String targetDataBinding = targetOperation.getDataBinding();
             if (sourceDataBinding == null && targetDataBinding == null) {
@@ -81,16 +81,16 @@
         }
 
         // Object targetAddress = UriHelper.getBaseName(source.getUri());
-        Map<Operation<?>, InvocationChain> callbackChains = wire.getCallbackInvocationChains();
+        Map<Operation, InvocationChain> callbackChains = wire.getCallbackInvocationChains();
         if (callbackChains == null) {
             // callback chains could be null
             return;
         }
 
-        for (Map.Entry<Operation<?>, InvocationChain> entry : callbackChains.entrySet()) {
+        for (Map.Entry<Operation, InvocationChain> entry : callbackChains.entrySet()) {
             String opName = entry.getKey().getName();
-            Operation<?> sourceOperation = sourceContract.getCallbackOperations().get(opName);
-            Operation<?> targetOperation = targetContract.getCallbackOperations().get(opName);
+            Operation sourceOperation = sourceContract.getCallbackOperations().get(opName);
+            Operation targetOperation = targetContract.getCallbackOperations().get(opName);
             String sourceDataBinding = sourceOperation.getDataBinding();
             String targetDataBinding = targetOperation.getDataBinding();
             if (sourceDataBinding == null && targetDataBinding == null) {

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java Wed Apr 11 16:50:20 2007
@@ -23,6 +23,7 @@
 import java.util.Map;
 
 import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.interfacedef.IncompatibleInterfaceContractException;
 import org.osoa.sca.CallableReference;
 
 /**
@@ -74,36 +75,5 @@
      * @throws IllegalArgumentException if the object supplied is not a proxy
      */
     <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException;
-
-    /**
-     * Check the compatiblity of the source and the target service contracts.<p> A wire may only connect a source to a
-     * target if the target implements an interface that is compatible with the interface required by the source. The
-     * source and the target are compatible if:
-     * <p/>
-     * <ol> <li>the source interface and the target interface MUST either both be remotable or they are both local
-     * <li>the methods on the target interface MUST be the same as or be a superset of the methods in the interface
-     * specified on the source <li>compatibility for the individual method is defined as compatibility of the signature,
-     * that is method name, input types, and output types MUST BE the same. <li>the order of the input and output types
-     * also MUST BE the same. <li>the set of Faults and Exceptions expected by the source MUST BE the same or be a
-     * superset of those specified by the service. <li>other specified attributes of the two interfaces MUST match,
-     * including Scope and Callback interface </ol>
-     * <p/>
-     * <p>Please note this test is not symetric: the success of checkCompatibility(A, B) does NOT imply
-     * checkCompatibility(B, A)
-     *
-     * @param source         The source service contract
-     * @param target         The target service contract
-     * @param ignoreCallback Indicate the callback should be checked
-     * @param silent         if true, errors will be thrown if the service contracts are not compatible
-     * @return true if the service contracts are compatible
-     * @throws IncompatibleServiceContractException
-     *          If the source service contract is not compatible with the target one
-     *          <p/>
-     *          TODO JFM this method should be moved from this interface to the allocator phase
-     */
-    boolean checkCompatibility(Contract source,
-                               Contract target,
-                               boolean ignoreCallback,
-                               boolean silent) throws IncompatibleServiceContractException;
 
 }

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java Wed Apr 11 16:50:20 2007
@@ -23,7 +23,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.TargetResolutionException;
@@ -77,7 +77,7 @@
      * @return the service contract associated with the wire
      * @Deprecated
      */
-    Contract getSourceContract();
+    InterfaceContract getSourceContract();
 
     /**
      * Sets the contract associated with the source side of the wire
@@ -85,7 +85,7 @@
      * @param contract the contract associated with the wire
      * @Deprecated
      */
-    void setSourceContract(Contract contract);
+    void setSourceContract(InterfaceContract contract);
 
     /**
      * Returns the service contract associated with the the target side of the wire
@@ -93,7 +93,7 @@
      * @return the service contract associated with the wire
      * @Deprecated
      */
-    Contract getTargetContract();
+    InterfaceContract getTargetContract();
 
     /**
      * Sets the contract associated with the the target side of the wire
@@ -101,7 +101,7 @@
      * @param contract the contract associated with the wire
      * @Deprecated
      */
-    void setTargetContract(Contract contract);
+    void setTargetContract(InterfaceContract contract);
 
     /**
      * Returns true if the wire is optimizable and its invocation chains may be bypassed

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java Wed Apr 11 16:50:20 2007
@@ -30,7 +30,6 @@
 import org.apache.tuscany.assembly.ComponentReference;
 import org.apache.tuscany.assembly.ComponentService;
 import org.apache.tuscany.assembly.Composite;
-import org.apache.tuscany.assembly.Contract;
 import org.apache.tuscany.assembly.Implementation;
 import org.apache.tuscany.assembly.Multiplicity;
 import org.apache.tuscany.assembly.SCABinding;
@@ -42,6 +41,7 @@
 import org.apache.tuscany.core.wire.InvokerInterceptor;
 import org.apache.tuscany.core.wire.WireImpl;
 import org.apache.tuscany.core.wire.WireUtils;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.spi.Scope;
 import org.apache.tuscany.spi.builder.Builder;
@@ -65,8 +65,6 @@
 import org.apache.tuscany.spi.wire.Wire;
 import org.osoa.sca.annotations.Reference;
 
-import com.sun.jndi.toolkit.ctx.ComponentDirContext;
-
 /**
  * Default implementation of Deployer.
  * 
@@ -183,7 +181,7 @@
                     throw new ComponentNotFoundException("Target not found", targetUri);
                 }
                 URI sourceURI = URI.create(source.getUri() + "#" + refName);
-                Wire wire = createWire(sourceURI, targetUri, refDefinition, Wire.LOCAL_BINDING);
+                Wire wire = createWire(sourceURI, targetUri, refDefinition.getInterfaceContract(), Wire.LOCAL_BINDING);
                 try {
                     attachInvokers(refName, wire, source, target);
                 } catch (TargetInvokerCreationException e) {
@@ -220,13 +218,13 @@
         return source;
     }
 
-    protected Wire createWire(URI sourceURI, URI targetUri, Contract contract, QName bindingType) {
+    protected Wire createWire(URI sourceURI, URI targetUri, InterfaceContract contract, QName bindingType) {
         Wire wire = new WireImpl(bindingType);
         wire.setSourceContract(contract);
         wire.setTargetContract(contract);
         wire.setSourceUri(sourceURI);
         wire.setTargetUri(targetUri);
-        for (Operation operation : contract.getInterfaceContract().getInterface().getOperations()) {
+        for (Operation operation : contract.getInterface().getOperations()) {
             InvocationChain chain = new InvocationChainImpl(operation);
             /*
              * if (operation.isNonBlocking()) { chain.addInterceptor(new
@@ -236,8 +234,8 @@
             wire.addInvocationChain(operation, chain);
 
         }
-        if (contract.getInterfaceContract().getCallbackInterface() != null) {
-            for (Operation operation : contract.getInterfaceContract().getCallbackInterface().getOperations()) {
+        if (contract.getCallbackInterface() != null) {
+            for (Operation operation : contract.getCallbackInterface().getOperations()) {
                 InvocationChain chain = new InvocationChainImpl(operation);
                 /*
                  * if (operation.isNonBlocking()) { chain.addInterceptor(new

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java Wed Apr 11 16:50:20 2007
@@ -20,10 +20,11 @@
 
 import java.util.List;
 
-import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.interfacedef.IncompatibleInterfaceContractException;
+import org.apache.tuscany.interfacedef.InterfaceContract;
+import org.apache.tuscany.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
 import org.apache.tuscany.spi.wire.ProxyService;
 
 /**
@@ -33,6 +34,7 @@
  */
 public abstract class ProxyServiceExtension implements ProxyService {
     protected WorkContext context;
+    protected InterfaceContractMapper contractMapper;
 
     protected ProxyServiceExtension(WorkContext context) {
         this.context = context;
@@ -48,73 +50,9 @@
         return null;
     }
 
-    public boolean checkCompatibility(Contract source, Contract target, boolean ignoreCallback, boolean silent)
-        throws IncompatibleServiceContractException {
-        if (source == target) {
-            // Shortcut for performance
-            return true;
-        }
-        if (source.getInterfaceContract().getInterface().isRemotable() != target.getInterfaceContract().getInterface().isRemotable()) {
-            if (!silent) {
-                throw new IncompatibleServiceContractException("Remotable settings do not match", source, target);
-            } else {
-                return false;
-            }
-        }
-        if (source.getInterfaceContract().getInterface().isConversational() != target.getInterfaceContract().getInterface().isConversational()) {
-            if (!silent) {
-                throw new IncompatibleServiceContractException("Interaction scopes do not match", source, target);
-            } else {
-                return false;
-            }
-        }
-
-        for (Operation operation : source.getInterfaceContract().getInterface().getOperations()) {
-            Operation targetOperation = getOperation(target.getInterfaceContract().getInterface().getOperations(), operation.getName());
-            if (targetOperation == null) {
-                if (!silent) {
-                    throw new IncompatibleServiceContractException("Operation not found on target", source, target);
-                } else {
-                    return false;
-                }
-            }
-            if (!operation.equals(targetOperation)) {
-                if (!silent) {
-                    throw new IncompatibleServiceContractException("Target operations are not compatible", source,
-                                                                   target);
-                } else {
-                    return false;
-                }
-            }
-        }
-
-        if (ignoreCallback) {
-            return true;
-        }
-
-        if (source.getInterfaceContract().getCallbackInterface() != null) {
-            for (Operation operation : source.getInterfaceContract().getCallbackInterface().getOperations()) {
-                Operation targetOperation = getOperation(target.getInterfaceContract().getCallbackInterface().getOperations(), operation
-                    .getName());
-                if (targetOperation == null) {
-                    if (!silent) {
-                        throw new IncompatibleServiceContractException("Callback operation not found on target",
-                                                                       source, target, null, targetOperation);
-                    } else {
-                        return false;
-                    }
-                }
-                if (!operation.equals(targetOperation)) {
-                    if (!silent) {
-                        throw new IncompatibleServiceContractException("Target callback operation is not compatible",
-                                                                       source, target, operation, targetOperation);
-                    } else {
-                        return false;
-                    }
-                }
-            }
-        }
-        return true;
+    public boolean checkCompatibility(InterfaceContract source, InterfaceContract target, boolean ignoreCallback, boolean silent)
+        throws IncompatibleInterfaceContractException {
+        return contractMapper.checkCompatibility(source, target, ignoreCallback, silent);
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java Wed Apr 11 16:50:20 2007
@@ -25,7 +25,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.TargetResolutionException;
@@ -41,8 +41,8 @@
     private URI sourceUri;
     private URI targetUri;
     private QName bindingType;
-    private Contract sourceContract;
-    private Contract targetContract;
+    private InterfaceContract sourceContract;
+    private InterfaceContract targetContract;
     private boolean optimizable;
     private Map<Operation, InvocationChain> chains = new HashMap<Operation, InvocationChain>();
     private Map<Operation, InvocationChain> callbackChains = new HashMap<Operation, InvocationChain>();
@@ -84,20 +84,20 @@
     }
 
 
-    public Contract getSourceContract() {
+    public InterfaceContract getSourceContract() {
         return sourceContract;
     }
 
-    public void setSourceContract(Contract contract) {
+    public void setSourceContract(InterfaceContract contract) {
         this.sourceContract = contract;
     }
 
 
-    public Contract getTargetContract() {
+    public InterfaceContract getTargetContract() {
         return targetContract;
     }
 
-    public void setTargetContract(Contract contract) {
+    public void setTargetContract(InterfaceContract contract) {
         this.targetContract = contract;
     }
 

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.java Wed Apr 11 16:50:20 2007
@@ -60,7 +60,7 @@
         this.proxyService = proxyService;
         this.mappings = WireUtils.createInterfaceToWireMapping(interfaze, wire);
         if (wire.isOptimizable()) {
-            Interface iface = wire.getSourceContract().getInterfaceContract().getInterface();
+            Interface iface = wire.getSourceContract().getInterface();
             if (iface instanceof JavaInterface) {
                 Class type = ((JavaInterface)iface).getJavaClass();
                 if (interfaze.isAssignableFrom(type)) {

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireUtils.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireUtils.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireUtils.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireUtils.java Wed Apr 11 16:50:20 2007
@@ -22,8 +22,8 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.tuscany.core.util.JavaIDLUtils;
 import org.apache.tuscany.interfacedef.Operation;
+import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceUtil;
 import org.apache.tuscany.spi.wire.ChainHolder;
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.InvocationChain;
@@ -57,7 +57,7 @@
         for (Map.Entry<Operation, InvocationChain> entry : invocationChains.entrySet()) {
             Operation operation = entry.getKey();
             try {
-                Method method = JavaIDLUtils.findMethod(interfaze, operation);
+                Method method = JavaInterfaceUtil.findMethod(interfaze, operation);
                 chains.put(method, new ChainHolder(entry.getValue()));
             } catch (NoSuchMethodException e) {
                 throw new NoMethodForOperationException(operation.getName());

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java Wed Apr 11 16:50:20 2007
@@ -26,11 +26,13 @@
 import org.apache.tuscany.assembly.impl.ComponentServiceImpl;
 import org.apache.tuscany.core.wire.InvocationChainImpl;
 import org.apache.tuscany.core.wire.WireImpl;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.interfacedef.impl.OperationImpl;
 import org.apache.tuscany.interfacedef.java.JavaInterface;
 import org.apache.tuscany.interfacedef.java.JavaInterfaceContract;
 import org.apache.tuscany.interfacedef.java.impl.DefaultJavaFactory;
+import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceContractImpl;
 import org.apache.tuscany.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.MessageImpl;
@@ -42,7 +44,7 @@
  * @version $Rev$ $Date$
  */
 public class LocalTargetInvokerTestCase extends TestCase {
-    private Contract serviceContract;
+    private InterfaceContract serviceContract;
     private Operation operation;
 
     public void testInvoke() {
@@ -109,7 +111,7 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        serviceContract = new ComponentServiceImpl();
+        serviceContract = new JavaInterfaceContractImpl();
         operation = new OperationImpl();
         operation.setName("foo");
     }

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/WireObjectFactoryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/WireObjectFactoryTestCase.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/WireObjectFactoryTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/WireObjectFactoryTestCase.java Wed Apr 11 16:50:20 2007
@@ -24,12 +24,10 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.assembly.ComponentService;
-import org.apache.tuscany.assembly.impl.ComponentServiceImpl;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.interfacedef.impl.OperationImpl;
 import org.apache.tuscany.interfacedef.java.JavaInterface;
-import org.apache.tuscany.interfacedef.java.JavaInterfaceContract;
 import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceContractImpl;
 import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceImpl;
 import org.apache.tuscany.spi.wire.InvocationChain;
@@ -69,7 +67,7 @@
 
     @SuppressWarnings("unchecked")
     public void testOptimizedCreateInstance() throws Exception {
-        ComponentService service = createContract(Foo.class);
+        InterfaceContract service = createContract(Foo.class);
         
         Wire wire = EasyMock.createMock(Wire.class);
         EasyMock.expect(wire.isOptimizable()).andReturn(true);
@@ -86,14 +84,11 @@
 
     }
 
-    private ComponentService createContract(Class cls) {
+    private InterfaceContract createContract(Class cls) {
         JavaInterface jInterface = new JavaInterfaceImpl();
         jInterface.setJavaClass(cls);
-        ComponentService service = new ComponentServiceImpl();
-        JavaInterfaceContract javaInterfaceContract = new JavaInterfaceContractImpl();
-        service.setInterfaceContract(javaInterfaceContract);
-        javaInterfaceContract.setInterface(jInterface);
-        service.setName(cls.getSimpleName());
+        InterfaceContract service = new JavaInterfaceContractImpl();
+        service.setInterface(jInterface);
         return service;
     }
 
@@ -102,7 +97,7 @@
      */
     @SuppressWarnings("unchecked")
     public void testCannotOptimizeDifferentContractsCreateInstance() throws Exception {
-        ComponentService contract = createContract(Object.class);
+        InterfaceContract contract = createContract(Object.class);
         Wire wire = EasyMock.createMock(Wire.class);
         EasyMock.expect(wire.isOptimizable()).andReturn(true);
         EasyMock.expect(wire.getSourceContract()).andReturn(contract).atLeastOnce();
@@ -125,7 +120,7 @@
 
     @SuppressWarnings("unchecked")
     public void testNoJavaInterfaceCreateInstance() throws Exception {
-        ComponentService contract = createContract(Object.class);
+        InterfaceContract contract = createContract(Object.class);
         Wire wire = EasyMock.createMock(Wire.class);
         EasyMock.expect(wire.isOptimizable()).andReturn(true);
         EasyMock.expect(wire.getSourceContract()).andReturn(contract).atLeastOnce();

Modified: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDO.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDO.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDO.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDO.java Wed Apr 11 16:50:20 2007
@@ -21,6 +21,8 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.tuscany.assembly.impl.BaseImpl;
+
 import commonj.sdo.helper.HelperContext;
 
 /**
@@ -28,18 +30,49 @@
  * 
  * @version $Rev$ $Date$
  */
-public class ImportSDO extends ModelObject {
+public class ImportSDO extends BaseImpl {
     public static final QName IMPORT_SDO =
         new QName("http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0", "import.sdo");
 
     private HelperContext helperContext;
+    private String factoryClassName;
+    private String schemaLocation;
 
     public ImportSDO(HelperContext helperContext) {
         super();
         this.helperContext = helperContext;
+        setUnresolved(true);
     }
 
     public HelperContext getHelperContext() {
         return helperContext;
+    }
+
+    /**
+     * @return the factoryClassName
+     */
+    public String getFactoryClassName() {
+        return factoryClassName;
+    }
+
+    /**
+     * @param factoryClassName the factoryClassName to set
+     */
+    public void setFactoryClassName(String factoryClassName) {
+        this.factoryClassName = factoryClassName;
+    }
+
+    /**
+     * @return the schemaLocation
+     */
+    public String getSchemaLocation() {
+        return schemaLocation;
+    }
+
+    /**
+     * @param schemaLocation the schemaLocation to set
+     */
+    public void setSchemaLocation(String schemaLocation) {
+        this.schemaLocation = schemaLocation;
     }
 }

Modified: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java Wed Apr 11 16:50:20 2007
@@ -32,6 +32,9 @@
 import javax.xml.stream.XMLStreamReader;
 
 import org.apache.tuscany.sdo.util.SDOUtil;
+import org.apache.tuscany.services.spi.contribution.ContributionReadException;
+import org.apache.tuscany.services.spi.contribution.StAXArtifactProcessor;
+import org.apache.tuscany.services.spi.contribution.StAXArtifactProcessorRegistry;
 
 import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XSDHelper;
@@ -42,11 +45,12 @@
  * 
  * @version $Rev$ $Date$
  */
-public class ImportSDOLoader extends LoaderExtension {
+public class ImportSDOLoader implements StAXArtifactProcessor<ImportSDO> {
+    private StAXArtifactProcessorRegistry processorRegistry;
     private HelperContextRegistry helperContextRegistry;
-    
-    public ImportSDOLoader(LoaderRegistry registry, HelperContextRegistry helperContextRegistry) {
-        super(registry);
+
+    public ImportSDOLoader(HelperContextRegistry helperContextRegistry) {
+        super();
         this.helperContextRegistry = helperContextRegistry;
     }
 
@@ -54,9 +58,7 @@
         return IMPORT_SDO;
     }
 
-    public ModelObject load(ModelObject object,
-                            XMLStreamReader reader,
-                            DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
+    public ImportSDO read(XMLStreamReader reader) throws ContributionReadException {
         assert IMPORT_SDO.equals(reader.getName());
 
         HelperContext helperContext = null;
@@ -94,7 +96,7 @@
             }
         }
     }
-    
+
     private static void register(Class factoryClass, HelperContext helperContext) throws Exception {
         Field field = factoryClass.getField("INSTANCE");
         Object factory = field.get(null);
@@ -107,12 +109,12 @@
         method.invoke(factory, new Object[] {defaultContext});
     }
 
-    private void importWSDL(XMLStreamReader reader, DeploymentContext deploymentContext, HelperContext helperContext)
+    private void importWSDL(XMLStreamReader reader, HelperContext helperContext)
         throws LoaderException {
         String location = reader.getAttributeValue(null, "location");
         if (location == null) {
             location = reader.getAttributeValue(null, "wsdlLocation");
-        }    
+        }
         if (location != null) {
             try {
                 URL wsdlURL = null;
@@ -133,7 +135,8 @@
                 } finally {
                     xsdInputStream.close();
                 }
-                // FIXME: How do we associate the application HelperContext with the one
+                // FIXME: How do we associate the application HelperContext with
+                // the one
                 // imported by the composite
                 HelperContext defaultContext = HelperProvider.getDefaultContext();
                 xsdInputStream = wsdlURL.openStream();
@@ -150,7 +153,7 @@
                     }
                 } finally {
                     xsdInputStream.close();
-                }                
+                }
             } catch (IOException e) {
                 LoaderException sfe = new LoaderException(e.getMessage());
                 sfe.setResourceURI(location);

Modified: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOContextHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOContextHelper.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOContextHelper.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOContextHelper.java Wed Apr 11 16:50:20 2007
@@ -23,8 +23,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.idl.DataType;
-import org.apache.tuscany.idl.util.XMLType;
+import org.apache.tuscany.interfacedef.DataType;
+import org.apache.tuscany.interfacedef.util.XMLType;
 import org.apache.tuscany.sdo.util.SDOUtil;
 import org.apache.tuscany.spi.databinding.TransformationContext;
 
@@ -66,7 +66,7 @@
 
     public static HelperContext getHelperContext(ModelObject model) {
         HelperContext helperContext = null;
-        if (model instanceof CompositeComponentType) {
+        if (model instanceof Composite) {
             // HACK: Retrieve the SDO HelperContext from the
             // CompositeComponentType
             // extensions

Modified: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataBinding.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataBinding.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataBinding.java Wed Apr 11 16:50:20 2007
@@ -23,8 +23,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.idl.DataType;
-import org.apache.tuscany.idl.util.XMLType;
+import org.apache.tuscany.interfacedef.DataType;
+import org.apache.tuscany.interfacedef.util.XMLType;
 import org.apache.tuscany.spi.databinding.ExceptionHandler;
 import org.apache.tuscany.spi.databinding.SimpleTypeMapper;
 import org.apache.tuscany.spi.databinding.WrapperHandler;

Modified: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java Wed Apr 11 16:50:20 2007
@@ -25,9 +25,9 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.idl.DataType;
-import org.apache.tuscany.idl.impl.DataTypeImpl;
-import org.apache.tuscany.idl.util.XMLType;
+import org.apache.tuscany.interfacedef.DataType;
+import org.apache.tuscany.interfacedef.impl.DataTypeImpl;
+import org.apache.tuscany.interfacedef.util.XMLType;
 import org.apache.tuscany.spi.databinding.ExceptionHandler;
 
 import commonj.sdo.Type;

Modified: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOHelperContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOHelperContext.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOHelperContext.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOHelperContext.java Wed Apr 11 16:50:20 2007
@@ -21,6 +21,8 @@
 
 import java.awt.Component;
 
+import org.apache.tuscany.spi.component.AbstractSCAObject;
+
 import sun.reflect.generics.scope.Scope;
 
 import commonj.sdo.helper.HelperContext;

Modified: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOWrapperHandler.java Wed Apr 11 16:50:20 2007
@@ -25,7 +25,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.idl.util.ElementInfo;
+import org.apache.tuscany.interfacedef.util.ElementInfo;
 import org.apache.tuscany.spi.databinding.TransformationContext;
 import org.apache.tuscany.spi.databinding.WrapperHandler;
 

Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/MediatorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/MediatorImpl.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/MediatorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/MediatorImpl.java Wed Apr 11 16:50:20 2007
@@ -62,7 +62,7 @@
     public Object mediate(Object source,
                           DataType sourceDataType,
                           DataType targetDataType,
-                          Map<Class<?>, Object> metadata) {
+                          Map<String, Object> metadata) {
         if (sourceDataType == null) {
             sourceDataType = dataBindingRegistry.introspectType(source);
         }
@@ -101,7 +101,7 @@
                                                               int size,
                                                               int index,
                                                               Transformer transformer,
-                                                              Map<Class<?>, Object> metadata) {
+                                                              Map<String, Object> metadata) {
         DataType sourceType =
             (index == 0) ? sourceDataType : new DataTypeImpl<Object>(transformer.getSourceDataBinding(),
                                                                  Object.class, null);
@@ -119,7 +119,7 @@
                         Object target,
                         DataType sourceDataType,
                         DataType targetDataType,
-                        Map<Class<?>, Object> metadata) {
+                        Map<String, Object> metadata) {
         if (source == null) {
             // Shortcut for null value
             return;

Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/TransformationContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/TransformationContextImpl.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/TransformationContextImpl.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/databinding/impl/TransformationContextImpl.java Wed Apr 11 16:50:20 2007
@@ -23,6 +23,7 @@
 import java.util.Map;
 
 import org.apache.tuscany.interfacedef.DataType;
+import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.spi.databinding.TransformationContext;
 
 public class TransformationContextImpl implements TransformationContext {
@@ -30,7 +31,7 @@
 
     private DataType targetDataType;
 
-    private final Map<Class<?>, Object> metadata = new HashMap<Class<?>, Object>();
+    private final Map<String, Object> metadata = new HashMap<String, Object>();
 
     private WeakReference<ClassLoader> classLoaderRef;
 
@@ -42,7 +43,7 @@
     public TransformationContextImpl(DataType sourceDataType,
                                      DataType targetDataType,
                                      ClassLoader classLoader,
-                                     Map<Class<?>, Object> metadata) {
+                                     Map<String, Object> metadata) {
         super();
         this.sourceDataType = sourceDataType;
         this.targetDataType = targetDataType;
@@ -76,8 +77,36 @@
         return classLoaderRef.get();
     }
 
-    public Map<Class<?>, Object> getMetadata() {
+    public Map<String, Object> getMetadata() {
         return metadata;
+    }
+
+    /**
+     * @return the sourceOperation
+     */
+    public Operation getSourceOperation() {
+        return (Operation) metadata.get("source.operation");
+    }
+
+    /**
+     * @param sourceOperation the sourceOperation to set
+     */
+    public void setSourceOperation(Operation sourceOperation) {
+        this.metadata.put("source.operation", sourceOperation);
+    }
+
+    /**
+     * @return the targetOperation
+     */
+    public Operation getTargetOperation() {
+        return (Operation) metadata.get("target.operation");
+    }
+
+    /**
+     * @param targetOperation the targetOperation to set
+     */
+    public void setTargetOperation(Operation targetOperation) {
+        this.metadata.put("target.operation", targetOperation);
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java Wed Apr 11 16:50:20 2007
@@ -38,7 +38,7 @@
      * @param context 
      * @return
      */
-    Object mediate(Object source, DataType sourceDataType, DataType targetDataType, Map<Class<?>, Object> context);
+    Object mediate(Object source, DataType sourceDataType, DataType targetDataType, Map<String, Object> context);
     /**
      * Mediate the source data into the target which is a sink to receive the data
      * @param source The data to be mediated
@@ -51,7 +51,7 @@
             Object target,
             DataType sourceDataType,
             DataType targetDataType,
-            Map<Class<?>, Object> context);
+            Map<String, Object> context);
     
     /**
      * Get the DataBinding registry

Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java Wed Apr 11 16:50:20 2007
@@ -21,12 +21,19 @@
 import java.util.Map;
 
 import org.apache.tuscany.interfacedef.DataType;
+import org.apache.tuscany.interfacedef.Operation;
 
 /**
  * Context for data transformation
  * 
  */
 public interface TransformationContext {
+    
+    Operation getSourceOperation();
+    void setSourceOperation(Operation sourceOperation);
+    Operation getTargetOperation();
+    void setTargetOperation(Operation targetOperation);
+    
     /**
      * Get the source data type
      * 
@@ -67,6 +74,6 @@
      * 
      * @return
      */
-    Map<Class<?>, Object> getMetadata();
+    Map<String, Object> getMetadata();
 
 }

Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java Wed Apr 11 16:50:20 2007
@@ -318,11 +318,11 @@
             return parseBase64Binary(value);
         } else if (type.equals(XSD_QNAME)) {
             NamespaceContext namespaceContext =
-                (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class) : null);
+                (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class.getName()) : null);
             return parseQName(value, namespaceContext);
         } else if (type.equals(XSD_NOTATION)) {
             NamespaceContext namespaceContext =
-                (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class) : null);
+                (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class.getName()) : null);
             return parseQName(value, namespaceContext);
         } else if (type.equals(XSD_YEAR)) {
             return factory.newXMLGregorianCalendar(value);
@@ -375,7 +375,7 @@
             }
         } else if (obj instanceof QName) {
             NamespaceContext namespaceContext =
-                (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class) : null);
+                (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class.getName()) : null);
             return printQName((QName)obj, namespaceContext);
         }
         return obj.toString();

Modified: incubator/tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtensionTestCase.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtensionTestCase.java Wed Apr 11 16:50:20 2007
@@ -81,7 +81,7 @@
     public void testMap() throws Exception {
         SimpleTypeMapperExtension extension = new SimpleTypeMapperExtension();
         TransformationContext context = EasyMock.createMock(TransformationContext.class);
-        Map<Class<?>, Object> metaData = new HashMap<Class<?>, Object>();
+        Map<String, Object> metaData = new HashMap<String, Object>();
         EasyMock.expect(context.getMetadata()).andReturn(metaData).anyTimes();
         EasyMock.replay(context);
 
@@ -90,7 +90,7 @@
             .anyTimes();
         EasyMock.expect(namespaceContext.getPrefix(EasyMock.eq("http://foo"))).andReturn("f").anyTimes();
         EasyMock.replay(namespaceContext);
-        context.getMetadata().put(NamespaceContext.class, namespaceContext);
+        context.getMetadata().put(NamespaceContext.class.getName(), namespaceContext);
         for (TypeInfo simpleType : SimpleTypeMapperExtension.XSD_SIMPLE_TYPES.values()) {
             String name = simpleType.getQName().getLocalPart();
             Object value = SAMPLE_VALUES.get(name);

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java Wed Apr 11 16:50:20 2007
@@ -159,7 +159,7 @@
         wireList.addAll(attachWires);
         JavaElement element = configuration.getDefinition().getReferenceMembers().get(referenceName);
 
-        Class<?> type = ((JavaInterface)attachWires.get(0).getSourceContract().getInterfaceContract().getInterface()).getJavaClass();
+        Class<?> type = ((JavaInterface)attachWires.get(0).getSourceContract().getInterface()).getJavaClass();
         if (type == null) {
             throw new NoMultiplicityTypeException("Java interface must be specified for multiplicity", referenceName);
         }
@@ -176,7 +176,7 @@
     public void attachCallbackWire(Wire wire) {
         assert wire.getSourceUri().getFragment() != null;
         // FIXME: [rfeng] This is a hack to get it compiled
-        String callbackName = wire.getSourceContract().getInterfaceContract().getCallbackInterface().toString();
+        String callbackName = wire.getSourceContract().getCallbackInterface().toString();
         assert configuration.getDefinition().getCallbackMembers().get(callbackName) != null;
         List<Wire> wireList = callBackwires.get(callbackName);
         if (wireList == null) {

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java Wed Apr 11 16:50:20 2007
@@ -22,10 +22,10 @@
 
 import org.apache.tuscany.core.implementation.PojoAtomicComponent;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.util.JavaIDLUtils;
 import org.apache.tuscany.core.wire.WireObjectFactory;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.interfacedef.java.JavaInterface;
+import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceUtil;
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.component.TargetInvokerCreationException;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -52,7 +52,7 @@
             implClass = configuration.getImplementationClass();
         }
         try {
-            Method method = JavaIDLUtils.findMethod(implClass, operation);
+            Method method = JavaInterfaceUtil.findMethod(implClass, operation);
             return new JavaTargetInvoker(method, this, scopeContainer);
         } catch (NoSuchMethodException e) {
             throw new TargetMethodNotFoundException(operation);

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java Wed Apr 11 16:50:20 2007
@@ -30,10 +30,10 @@
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.tuscany.assembly.Contract;
 import org.apache.tuscany.core.util.PojoWorkContextTunnel;
 import org.apache.tuscany.core.wire.NoMethodForOperationException;
 import org.apache.tuscany.core.wire.WireUtils;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.spi.Scope;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.ReactivationException;
@@ -204,10 +204,10 @@
      */
     private void init(Class<?> interfaze, Wire wire, Map<Method, ChainHolder> mapping)
         throws NoMethodForOperationException {
-        Contract contract = wire.getSourceContract();
+        InterfaceContract contract = wire.getSourceContract();
         this.referenceName = wire.getSourceUri().getFragment();
-        this.conversational = contract.getInterfaceContract().getInterface().isConversational();
-        this.callback = contract.getInterfaceContract().getCallbackInterface() != null;
+        this.conversational = contract.getInterface().isConversational();
+        this.callback = contract.getCallbackInterface() != null;
         // FIXME JFM this should not be dependent on PojoAtomicComponent
         // JFM commenting out as this should not be specific to pojo types
 //        this.wireContainerIsAtomicComponent = scaObject instanceof PojoAtomicComponent;

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandlerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandlerTestCase.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandlerTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandlerTestCase.java Wed Apr 11 16:50:20 2007
@@ -41,7 +41,7 @@
         wire.setSourceUri(uri);
         List<Wire> wires = new ArrayList<Wire>();
         wires.add(wire);
-        wire.setSourceContract(ModelHelper.createReference("foo", Foo.class));
+        wire.setSourceContract(ModelHelper.createReference("foo", Foo.class).getInterfaceContract());
         JDKCallbackInvocationHandler handler = new JDKCallbackInvocationHandler(wires, new WorkContextImpl());
         Foo foo = (Foo)Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] {Foo.class}, handler);
         assertNotNull(foo.toString());
@@ -49,7 +49,7 @@
 
     public void testHashCode() {
         Wire wire = new WireImpl();
-        wire.setSourceContract(ModelHelper.createReference("foo", Foo.class));
+        wire.setSourceContract(ModelHelper.createReference("foo", Foo.class).getInterfaceContract());
         URI uri = URI.create("#wire");
         wire.setSourceUri(uri);
         List<Wire> wires = new ArrayList<Wire>();

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerProxyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerProxyTestCase.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerProxyTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerProxyTestCase.java Wed Apr 11 16:50:20 2007
@@ -60,7 +60,7 @@
             InvocationChain chain = new InvocationChainImpl(operation);
             wire.addInvocationChain(operation, chain);
         }
-        wire.setSourceContract(contract);
+        wire.setSourceContract(contract.getInterfaceContract());
         wire.setSourceUri(URI.create("foo#bar"));
         TargetInvoker targetInvoker = EasyMock.createMock(TargetInvoker.class);
         MessageImpl response = new MessageImpl();

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerSerializationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerSerializationTestCase.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerSerializationTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerSerializationTestCase.java Wed Apr 11 16:50:20 2007
@@ -91,7 +91,7 @@
         Contract opContract = ModelHelper.createReference("foo", Foo.class);
         operation.setInterface(opContract.getInterfaceContract().getInterface());
         map.put(operation, createChain(operation));
-        EasyMock.expect(wire.getSourceContract()).andReturn(contract).atLeastOnce();
+        EasyMock.expect(wire.getSourceContract()).andReturn(contract.getInterfaceContract()).atLeastOnce();
         URI uri = URI.create("#foo");
         EasyMock.expect(wire.getSourceUri()).andReturn(uri).atLeastOnce();
         EasyMock.expect(wire.getInvocationChains()).andReturn(map).times(2);

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java?view=diff&rev=527726&r1=527725&r2=527726
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java Wed Apr 11 16:50:20 2007
@@ -54,7 +54,7 @@
     public void testToString() {
         Wire wire = new WireImpl();
         Contract contract = ModelHelper.createReference("foo", Foo.class);
-        wire.setSourceContract(contract);
+        wire.setSourceContract(contract.getInterfaceContract());
         wire.setSourceUri(URI.create("foo#bar"));
         JDKInvocationHandler handler = new JDKInvocationHandler(Foo.class, wire, null);
         Foo foo = (Foo) Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{Foo.class}, handler);
@@ -64,7 +64,7 @@
     public void testHashCode() {
         Wire wire = new WireImpl();
         Contract contract = ModelHelper.createReference("foo", Foo.class);
-        wire.setSourceContract(contract);
+        wire.setSourceContract(contract.getInterfaceContract());
         wire.setSourceUri(URI.create("foo#bar"));
         JDKInvocationHandler handler = new JDKInvocationHandler(Foo.class, wire, null);
         Foo foo = (Foo) Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{Foo.class}, handler);
@@ -94,7 +94,7 @@
             wire.addInvocationChain(op1, chain);
             URI uri = URI.create("fooRef");
             wire.setSourceUri(uri);
-            wire.setSourceContract(contract);
+            wire.setSourceContract(contract.getInterfaceContract());
 
             String convID = UUID.randomUUID().toString();
             wc.setIdentifier(Scope.CONVERSATION, convID);



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