You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/04/11 01:02:56 UTC

svn commit: r527336 [1/2] - in /incubator/tuscany/java/sca/modules: assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ assembly/src/main/java/org/apache/tuscany/assembly/ assembly/src/main/java/org/apache/tuscany/assembly/impl/ assembly/s...

Author: jsdelfino
Date: Tue Apr 10 16:02:52 2007
New Revision: 527336

URL: http://svn.apache.org/viewvc?view=rev&rev=527336
Log:
Added an InterfaceContract model class representing the combination of interface and callback interface specified in <interface.java> and <interface.wsdl> elements. Fixed the creation of SCA bindings on services and references in CompositeUtil, as this change was lost in the previous commit.

Added:
    incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestInterfaceContract.java   (with props)
    incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/interfacedef/java/JavaInterfaceContract.java   (with props)
    incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/interfacedef/java/impl/JavaInterfaceContractImpl.java   (with props)
    incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/InterfaceContract.java   (with props)
    incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/InterfaceContractImpl.java   (with props)
Modified:
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ConstrainingTypeProcessor.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/AbstractContract.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/impl/ContractImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/InterfaceUtil.java
    incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/AssemblyFactoryTestCase.java
    incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestImplementation.java
    incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/bean/context/CompositeApplicationContext.java
    incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/java/bean/impl/BeanJavaFactory.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.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/runtime/AbstractRuntime.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/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.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/component/JavaObjectRegistrationTestCase.java
    incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/SingletonAtomicComponentTestCase.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
    incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/WireObjectFactoryTestCase.java
    incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.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/wire/jdk/JDKInvocationHandler.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/implementation/java/ModelHelper.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-xml/src/main/java/org/apache/tuscany/implementation/java/processor/HeuristicPojoProcessor.java
    incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/processor/ServiceProcessor.java
    incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/java/org/apache/tuscany/implementation/java/processor/ModelHelper.java
    incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/java/org/apache/tuscany/implementation/java/processor/ReferenceProcessorTestCase.java
    incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/java/org/apache/tuscany/implementation/java/processor/ServiceProcessorTestCase.java
    incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImpl.java
    incubator/tuscany/java/sca/modules/interface-java-xml/src/test/java/org/apache/tuscany/interfacedef/java/introspection/impl/ConversationalIntrospectionTestCase.java
    incubator/tuscany/java/sca/modules/interface-java-xml/src/test/java/org/apache/tuscany/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java
    incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/interfacedef/java/JavaFactory.java
    incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/interfacedef/java/impl/DefaultJavaFactory.java

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/BaseArtifactProcessor.java Tue Apr 10 16:02:52 2007
@@ -53,6 +53,7 @@
 import org.apache.tuscany.assembly.Reference;
 import org.apache.tuscany.assembly.xml.Constants;
 import org.apache.tuscany.interfacedef.Interface;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.policy.Intent;
 import org.apache.tuscany.policy.IntentAttachPoint;
@@ -422,16 +423,19 @@
      */
     protected <C extends Contract> void resolveContracts(List<C> contracts, ArtifactResolver resolver) throws ContributionResolveException {
         for (Contract contract: contracts) {
+            InterfaceContract interfaceContract = contract.getInterfaceContract();
+            if (interfaceContract == null)
+                continue;
             
             // Resolve interface
-            Interface callInterface = contract.getInterface();
+            Interface callInterface = interfaceContract.getInterface();
             callInterface = resolveInterface(callInterface, resolver);
-            contract.setInterface(callInterface);
+            interfaceContract.setInterface(callInterface);
     
             // Resolve callback interface 
-            Interface callbackInterface = contract.getCallbackInterface();
+            Interface callbackInterface = interfaceContract.getCallbackInterface();
             callbackInterface = resolveInterface(callbackInterface, resolver);
-            contract.setCallbackInterface(callbackInterface);
+            interfaceContract.setCallbackInterface(callbackInterface);
     
             // Resolve bindings
             for (int i = 0, n = contract.getBindings().size(); i < n; i++) {
@@ -449,16 +453,19 @@
      */
     protected <C extends AbstractContract> void resolveAbstractContracts(List<C> contracts, ArtifactResolver resolver) {
         for (AbstractContract contract: contracts) {
+            InterfaceContract interfaceContract = contract.getInterfaceContract();
+            if (interfaceContract == null)
+                continue;
             
             // Resolve interface
-            Interface callInterface = contract.getInterface();
+            Interface callInterface = interfaceContract.getInterface();
             callInterface = resolver.resolve(Interface.class, callInterface);
-            contract.setInterface(callInterface);
+            interfaceContract.setInterface(callInterface);
     
             // Resolve callback interface 
-            Interface callbackInterface = contract.getCallbackInterface();
+            Interface callbackInterface = interfaceContract.getCallbackInterface();
             callbackInterface = resolver.resolve(Interface.class, callbackInterface);
-            contract.setCallbackInterface(callbackInterface);
+            interfaceContract.setCallbackInterface(callbackInterface);
         }
     }
 

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ComponentTypeProcessor.java Tue Apr 10 16:02:52 2007
@@ -34,7 +34,6 @@
 import org.apache.tuscany.assembly.Base;
 import org.apache.tuscany.assembly.Binding;
 import org.apache.tuscany.assembly.Callback;
-import org.apache.tuscany.assembly.ComponentService;
 import org.apache.tuscany.assembly.ComponentType;
 import org.apache.tuscany.assembly.Contract;
 import org.apache.tuscany.assembly.Property;
@@ -42,7 +41,7 @@
 import org.apache.tuscany.assembly.Service;
 import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 import org.apache.tuscany.assembly.xml.Constants;
-import org.apache.tuscany.interfacedef.Interface;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.policy.PolicyFactory;
 import org.apache.tuscany.policy.impl.DefaultPolicyFactory;
@@ -154,10 +153,10 @@
                             // Read an extension element
                             Object extension = extensionProcessor.read(reader);
                             if (extension != null) {
-                                if (extension instanceof Interface) {
+                                if (extension instanceof InterfaceContract) {
     
                                     // <service><interface> and <reference><interface>
-                                    contract.setInterface((Interface)extension);
+                                    contract.setInterfaceContract((InterfaceContract)extension);
     
                                 } else if (extension instanceof Binding) {
     
@@ -222,8 +221,7 @@
             for (Service service : componentType.getServices()) {
                 writeStart(writer, SERVICE, new XAttr(NAME, service.getName()));
 
-                //TODO write callback interface 
-                extensionProcessor.write(service.getInterface(), writer);
+                extensionProcessor.write(service.getInterfaceContract(), writer);
                 
                 for (Binding binding: service.getBindings()) {
                     extensionProcessor.write(binding, writer);
@@ -243,8 +241,7 @@
                       new XAttr(NAME, reference.getName()),
                       new XAttr(TARGET, target));
 
-                //TODO write callback interface 
-                extensionProcessor.write(reference.getInterface(), writer);
+                extensionProcessor.write(reference.getInterfaceContract(), writer);
                 
                 for (Binding binding: reference.getBindings()) {
                     extensionProcessor.write(binding, writer);

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/CompositeProcessor.java Tue Apr 10 16:02:52 2007
@@ -50,7 +50,7 @@
 import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 import org.apache.tuscany.assembly.util.CompositeUtil;
 import org.apache.tuscany.assembly.xml.Constants;
-import org.apache.tuscany.interfacedef.Interface;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.policy.PolicyFactory;
 import org.apache.tuscany.policy.impl.DefaultPolicyFactory;
@@ -253,11 +253,11 @@
                             // Read an extension element
                             Object extension = extensionProcessor.read(reader);
                             if (extension != null) {
-                                if (extension instanceof Interface) {
+                                if (extension instanceof InterfaceContract) {
     
                                     // <service><interface> and
                                     // <reference><interface>
-                                    contract.setInterface((Interface)extension);
+                                    contract.setInterfaceContract((InterfaceContract)extension);
     
                                 } else if (extension instanceof Binding) {
                                     // <service><binding> and <reference><binding>
@@ -334,8 +334,7 @@
                 String promote = promotedService != null ? promotedService.getName() : null;
                 writeStart(writer, SERVICE, new XAttr(NAME, service.getName()), new XAttr(PROMOTE, promote));
 
-                //TODO write callback interface 
-                extensionProcessor.write(service.getInterface(), writer);
+                extensionProcessor.write(service.getInterfaceContract(), writer);
                 
                 for (Binding binding: service.getBindings()) {
                     extensionProcessor.write(binding, writer);
@@ -354,8 +353,7 @@
                 for (ComponentService service : component.getServices()) {
                     writeStart(writer, SERVICE, new XAttr(NAME, service.getName()));
 
-                    //TODO write callback interface 
-                    extensionProcessor.write(service.getInterface(), writer);
+                    extensionProcessor.write(service.getInterfaceContract(), writer);
 
                     for (Binding binding: service.getBindings()) {
                         extensionProcessor.write(binding, writer);
@@ -375,8 +373,7 @@
                                new XAttr(NAME, reference.getName()),
                                new XAttr(TARGET,target));
                     
-                    //TODO write callback interface 
-                    extensionProcessor.write(reference.getInterface(), writer);
+                    extensionProcessor.write(reference.getInterfaceContract(), writer);
                     
                     for (Binding binding: reference.getBindings()) {
                         extensionProcessor.write(binding, writer);
@@ -419,8 +416,7 @@
                            new XAttr(NAME, reference.getName()),
                            new XAttr(PROMOTE, promote));
 
-                //TODO write callback interface 
-                extensionProcessor.write(reference.getInterface(), writer);
+                extensionProcessor.write(reference.getInterfaceContract(), writer);
                 
                 for (Binding binding: reference.getBindings()) {
                     extensionProcessor.write(binding, writer);

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ConstrainingTypeProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ConstrainingTypeProcessor.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ConstrainingTypeProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/impl/ConstrainingTypeProcessor.java Tue Apr 10 16:02:52 2007
@@ -35,7 +35,7 @@
 import org.apache.tuscany.assembly.ConstrainingType;
 import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 import org.apache.tuscany.assembly.xml.Constants;
-import org.apache.tuscany.interfacedef.Interface;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.policy.PolicyFactory;
 import org.apache.tuscany.policy.impl.DefaultPolicyFactory;
@@ -134,9 +134,10 @@
     
                             // Read an extension element
                             Object extension = extensionProcessor.read(reader);
-                            if (extension instanceof Interface) {
+                            if (extension instanceof InterfaceContract) {
+                                
                                 // <service><interface> and <reference><interface>
-                                abstractContract.setInterface((Interface)extension);
+                                abstractContract.setInterfaceContract((InterfaceContract)extension);
                             }
                         }
                         break;
@@ -176,16 +177,14 @@
     
             for (AbstractService service : constrainingType.getServices()) {
                 writeStart(writer, SERVICE, new XAttr(NAME, service.getName()));
-                //TODO write callback interface 
-                extensionProcessor.write(service.getInterface(), writer);
+                extensionProcessor.write(service.getInterfaceContract(), writer);
                 writeEnd(writer);
             }
     
             for (AbstractReference reference : constrainingType.getReferences()) {
                 writeStart(writer, REFERENCE,
                       new XAttr(NAME, reference.getName()));
-                //TODO write callback interface 
-                extensionProcessor.write(reference.getInterface(), writer);
+                extensionProcessor.write(reference.getInterfaceContract(), writer);
                 writeEnd(writer);
             }
     

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/AbstractContract.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/AbstractContract.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/AbstractContract.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/AbstractContract.java Tue Apr 10 16:02:52 2007
@@ -18,7 +18,7 @@
  */
 package org.apache.tuscany.assembly;
 
-import org.apache.tuscany.interfacedef.Interface;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.policy.IntentAttachPoint;
 
 /**
@@ -44,39 +44,19 @@
     void setName(String name);
 
     /**
-     * Returns the interface definition representing the interface for
-     * invocations from the requestor to the provider.
+     * Returns the interface contract defining the interface and callback
+     * interface for the contract.
      * 
-     * @return the interface definition representing the interface for
-     *         invocations from the requestor to the provider
+     * @return the interface contract
      */
-    Interface getInterface();
+    InterfaceContract getInterfaceContract();
+    
 
     /**
-     * Sets the interface definition representing the interface for invocations
-     * from the requestor to the provider.
+     * Returns the interface contract defining the interface and callback
+     * interface for the contract.
      * 
-     * @param callInterface the interface definition representing the interface
-     *            for invocations from the requestor to the provider
+     * @param interfaceContract the interface contract
      */
-    void setInterface(Interface callInterface);
-
-    /**
-     * Returns the interface definition representing the interface for
-     * invocations from the provider to the requestor.
-     * 
-     * @return the interface definition representing the interface for
-     *         invocations from the provider to the requestor.
-     */
-    Interface getCallbackInterface();
-
-    /**
-     * Sets the interface definition representing the interface for invocations
-     * from the provider to the requestor.
-     * 
-     * @param callbackInterface the interface definition representing the
-     *            interface for invocations from the provider to the requestor.
-     */
-    void setCallbackInterface(Interface callbackInterface);
-
+    void setInterfaceContract(InterfaceContract interfaceContract);
 }

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/impl/ContractImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/impl/ContractImpl.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/impl/ContractImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/impl/ContractImpl.java Tue Apr 10 16:02:52 2007
@@ -22,12 +22,11 @@
 import java.util.List;
 
 import org.apache.tuscany.assembly.AbstractContract;
-import org.apache.tuscany.interfacedef.Interface;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.policy.Intent;
 
 public class ContractImpl extends BaseImpl implements AbstractContract {
-    private Interface callbackInterface;
-    private Interface callInterface;
+    private InterfaceContract interfaceContract;
     private String name;
     private List<Intent> requiredIntents = new ArrayList<Intent>();
     
@@ -43,36 +42,27 @@
      */
     public ContractImpl(AbstractContract other) {
         super(other);
-        callbackInterface = other.getCallbackInterface();
-        callInterface = other.getInterface();
+        interfaceContract = other.getInterfaceContract();
         name = other.getName();
         requiredIntents.addAll(other.getRequiredIntents());
     }
 
-    public Interface getCallbackInterface() {
-        return callbackInterface;
-    }
-
-    public Interface getInterface() {
-        return callInterface;
-    }
-
     public String getName() {
         return name;
     }
 
-    public void setCallbackInterface(Interface callbackInterface) {
-        this.callbackInterface = callbackInterface;
-    }
-
-    public void setInterface(Interface callInterface) {
-        this.callInterface = callInterface;
-    }
-
     public void setName(String name) {
         this.name = name;
     }
 
+    public InterfaceContract getInterfaceContract() {
+        return interfaceContract;
+    }
+    
+    public void setInterfaceContract(InterfaceContract interfaceContract) {
+        this.interfaceContract = interfaceContract;
+    }
+    
     public List<Intent> getRequiredIntents() {
         return requiredIntents;
     }

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java Tue Apr 10 16:02:52 2007
@@ -164,7 +164,7 @@
                 componentReference.setReference(reference);
                 componentReference.setMultiplicity(reference.getMultiplicity());
                 componentReference.getTargets().addAll(reference.getTargets());
-                componentReference.setInterface(reference.getInterface());
+                componentReference.setInterfaceContract(reference.getInterfaceContract());
                 component.getReferences().add(componentReference);
                 if (!ReferenceUtil.validateMultiplicityAndTargets(componentReference.getMultiplicity(), 
                                                                   componentReference.getTargets())) {
@@ -181,15 +181,15 @@
                     compRef.setMultiplicity(reference.getMultiplicity());
                 }
                 
-                if (compRef.getInterface() != null) {
-                    if (!compRef.getInterface().equals(reference.getInterface())) {
-                        if (!InterfaceUtil.checkInterfaceCompatibility(reference.getInterface(), 
-                                                                       compRef.getInterface())) {
+                if (compRef.getInterfaceContract() != null) {
+                    if (!compRef.getInterfaceContract().equals(reference.getInterfaceContract())) {
+                        if (!InterfaceUtil.checkInterfaceCompatibility(reference.getInterfaceContract(), 
+                                                                       compRef.getInterfaceContract())) {
                             problems.add(compRef);
                         }
                     }
                 } else {
-                    compRef.setInterface(reference.getInterface());
+                    compRef.setInterfaceContract(reference.getInterfaceContract());
                 }
                 
                 if (compRef.getTargets().isEmpty()) {
@@ -277,17 +277,17 @@
 
         // Index and bind all component services and references
         Map<String, ComponentService> componentServices = new HashMap<String, ComponentService>();
-        Map<String, ComponentReference> componentReferences =
-            new HashMap<String, ComponentReference>();
+        Map<String, ComponentReference> componentReferences = new HashMap<String, ComponentReference>();
+        
         for (Component component : composite.getComponents()) {
+            int i =0;
             for (ComponentService componentService : component.getServices()) {
-                String uri;
-                if (componentService.getName() != null) {
-                    uri = component.getName() + '/' + componentService.getName();
-                } else {
-                    uri = component.getName();
-                }
+                String uri = component.getName() + '/' + componentService.getName();
                 componentServices.put(uri, componentService);
+                if (i == 0) {
+                    componentServices.put(component.getName(), componentService);
+                }
+                i++;
 
                 // Create and configure an SCA binding for the service
                 SCABinding scaBinding = componentService.getBinding(SCABinding.class);
@@ -296,6 +296,7 @@
                     componentService.getBindings().add(scaBinding);
                 }
                 scaBinding.setURI(uri);
+                scaBinding.setComponent(component);
             }
             for (ComponentReference componentReference : component.getReferences()) {
                 String uri = component.getName() + '/' + componentReference.getName();
@@ -308,6 +309,7 @@
                     componentReference.getBindings().add(scaBinding);
                 }
                 scaBinding.setURI(uri);
+                scaBinding.setComponent(component);
             }
         }
 

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/InterfaceUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/InterfaceUtil.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/InterfaceUtil.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/InterfaceUtil.java Tue Apr 10 16:02:52 2007
@@ -18,8 +18,8 @@
  */
 package org.apache.tuscany.assembly.util;
 
-import org.apache.tuscany.assembly.Contract;
 import org.apache.tuscany.interfacedef.Interface;
+import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.Operation;
 
 /**
@@ -27,9 +27,11 @@
  *
  */
 public class InterfaceUtil {
-    public static boolean checkInterfaceCompatibility(Interface source,
-                                                      Interface target) {
+    public static boolean checkInterfaceCompatibility(InterfaceContract sourceContract,
+                                                      InterfaceContract targetContract) {
         boolean isCompatible = true;
+        Interface source = sourceContract.getInterface();
+        Interface target = targetContract.getInterface();
         if (source != target) {
             //TODO : Fix comparisons of interaction scopes.
             /*if (source.getInteractionScope() != target.getInteractionScope()) {

Modified: incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/AssemblyFactoryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/AssemblyFactoryTestCase.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/AssemblyFactoryTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/AssemblyFactoryTestCase.java Tue Apr 10 16:02:52 2007
@@ -76,14 +76,14 @@
         CompositeService cs = factory.createCompositeService();
         cs.setName("AccountService");
         cs.setPromotedService(c1.getServices().get(0));
-        cs.setInterface(new TestInterface(factory));
+        cs.setInterfaceContract(new TestInterfaceContract(factory));
         c.getServices().add(cs);
         cs.getBindings().add(new TestBinding(factory));
 
         CompositeReference cr = factory.createCompositeReference();
         cr.setName("StockQuoteService");
         cr.getPromotedReferences().add(c2.getReferences().get(1));
-        cr.setInterface(new TestInterface(factory));
+        cr.setInterfaceContract(new TestInterfaceContract(factory));
         c.getReferences().add(cr);
         cr.getBindings().add(new TestBinding(factory));
 
@@ -114,7 +114,7 @@
         ComponentReference ref1 = factory.createComponentReference();
         ref1.setName("accountDataService");
         ref1.setMultiplicity(Multiplicity.ONE_ONE);
-        ref1.setInterface(new TestInterface(factory));
+        ref1.setInterfaceContract(new TestInterfaceContract(factory));
         ref1.setReference(i.getReferences().get(0));
         c.getReferences().add(ref1);
         ref1.getBindings().add(new TestBinding(factory));
@@ -122,14 +122,14 @@
         ComponentReference ref2 = factory.createComponentReference();
         ref2.setName("stockQuoteService");
         ref2.setMultiplicity(Multiplicity.ONE_ONE);
-        ref2.setInterface(new TestInterface(factory));
+        ref2.setInterfaceContract(new TestInterfaceContract(factory));
         ref2.setReference(i.getReferences().get(1));
         c.getReferences().add(ref2);
         ref2.getBindings().add(new TestBinding(factory));
 
         ComponentService s = factory.createComponentService();
         s.setName("AccountService");
-        s.setInterface(new TestInterface(factory));
+        s.setInterfaceContract(new TestInterfaceContract(factory));
         s.setService(i.getServices().get(0));
         c.getServices().add(s);
         s.getBindings().add(new TestBinding(factory));
@@ -154,21 +154,21 @@
 
         Reference ref1 = factory.createReference();
         ref1.setName("accountDataService");
-        ref1.setInterface(new TestInterface(factory));
+        ref1.setInterfaceContract(new TestInterfaceContract(factory));
         ref1.setMultiplicity(Multiplicity.ONE_ONE);
         ctype.getReferences().add(ref1);
         ref1.getBindings().add(new TestBinding(factory));
 
         Reference ref2 = factory.createReference();
         ref2.setName("stockQuoteService");
-        ref2.setInterface(new TestInterface(factory));
+        ref2.setInterfaceContract(new TestInterfaceContract(factory));
         ref2.setMultiplicity(Multiplicity.ONE_ONE);
         ctype.getReferences().add(ref2);
         ref2.getBindings().add(new TestBinding(factory));
 
         Service s = factory.createService();
         s.setName("AccountService");
-        s.setInterface(new TestInterface(factory));
+        s.setInterfaceContract(new TestInterfaceContract(factory));
         ctype.getServices().add(s);
         s.getBindings().add(new TestBinding(factory));
 
@@ -192,19 +192,19 @@
 
         AbstractReference ref1 = factory.createAbstractReference();
         ref1.setName("accountDataService");
-        ref1.setInterface(new TestInterface(factory));
+        ref1.setInterfaceContract(new TestInterfaceContract(factory));
         ref1.setMultiplicity(Multiplicity.ONE_ONE);
         ctype.getReferences().add(ref1);
 
         AbstractReference ref2 = factory.createAbstractReference();
         ref2.setName("stockQuoteService");
-        ref2.setInterface(new TestInterface(factory));
+        ref2.setInterfaceContract(new TestInterfaceContract(factory));
         ref2.setMultiplicity(Multiplicity.ONE_ONE);
         ctype.getReferences().add(ref2);
 
         AbstractService s = factory.createAbstractService();
         s.setName("AccountService");
-        s.setInterface(new TestInterface(factory));
+        s.setInterfaceContract(new TestInterfaceContract(factory));
         ctype.getServices().add(s);
 
         return ctype;

Modified: incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestImplementation.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestImplementation.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestImplementation.java Tue Apr 10 16:02:52 2007
@@ -47,13 +47,13 @@
         Reference ref2 = factory.createReference();
         ref2.setName("stockQuoteService");
         ref2.setMultiplicity(Multiplicity.ONE_ONE);
-        ref2.setInterface(new TestInterface(factory));
+        ref2.setInterfaceContract(new TestInterfaceContract(factory));
         getReferences().add(ref2);
         ref2.getBindings().add(new TestBinding(factory));
 
         Service s = factory.createService();
         s.setName("AccountService");
-        s.setInterface(new TestInterface(factory));
+        s.setInterfaceContract(new TestInterfaceContract(factory));
         getServices().add(s);
         s.getBindings().add(new TestBinding(factory));
 

Added: incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestInterfaceContract.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestInterfaceContract.java?view=auto&rev=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestInterfaceContract.java (added)
+++ incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestInterfaceContract.java Tue Apr 10 16:02:52 2007
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.assembly;
+
+import org.apache.tuscany.interfacedef.InterfaceContract;
+import org.apache.tuscany.interfacedef.impl.InterfaceContractImpl;
+
+/**
+ * A test interface contract model.
+ * 
+ * @version $Rev$ $Date$
+ */
+public class TestInterfaceContract extends InterfaceContractImpl implements InterfaceContract {
+
+    public TestInterfaceContract(AssemblyFactory factory) {
+        
+        TestInterface testInterface = new TestInterface(factory);
+        setInterface(testInterface);
+
+        TestInterface testCallbackInterface = new TestInterface(factory);
+        setCallbackInterface(testCallbackInterface);
+
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestInterfaceContract.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/assembly/TestInterfaceContract.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/bean/context/CompositeApplicationContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/bean/context/CompositeApplicationContext.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/bean/context/CompositeApplicationContext.java (original)
+++ incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/bean/context/CompositeApplicationContext.java Tue Apr 10 16:02:52 2007
@@ -73,8 +73,10 @@
 			CompositeService compositeService = (CompositeService)service;
 			RootBeanDefinition bean = new RootBeanDefinition(DummyCompositeServiceBean.class);
 			MutablePropertyValues propertyValues = bean.getPropertyValues();
-			propertyValues.addPropertyValue("name", compositeService.getName());		
-			propertyValues.addPropertyValue("interface", ((JavaInterface)compositeService.getInterface()).getName());
+			propertyValues.addPropertyValue("name", compositeService.getName());
+                        if (compositeService.getInterfaceContract() != null) { 
+                            propertyValues.addPropertyValue("interface", ((JavaInterface)compositeService.getInterfaceContract().getInterface()).getName());
+                        }
 			ComponentService promotedService = compositeService.getPromotedService();
 			propertyValues.addPropertyValue("promote", getBeanReference(promotedService));
 			beanFactory.registerBeanDefinition(beanNameGenerator.generateBeanName(bean, beanFactory), bean);        	
@@ -85,8 +87,10 @@
 			CompositeReference compositeReference = (CompositeReference)reference;
 			RootBeanDefinition bean = new RootBeanDefinition(DummyCompositeReferenceBean.class);
 			MutablePropertyValues propertyValues = bean.getPropertyValues();
-			propertyValues.addPropertyValue("name", compositeReference.getName());		
-			propertyValues.addPropertyValue("interface", ((JavaInterface)compositeReference.getInterface()).getName());
+			propertyValues.addPropertyValue("name", compositeReference.getName());
+                        if (compositeReference.getInterfaceContract() != null) {
+                            propertyValues.addPropertyValue("interface", ((JavaInterface)compositeReference.getInterfaceContract().getInterface()).getName());
+                        }
 			// TODO handle multiple promoted references
 			Reference promotedReference = compositeReference.getPromotedReferences().get(0);
 			propertyValues.addPropertyValue("promote", getBeanReference(promotedReference));

Modified: incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/java/bean/impl/BeanJavaFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/java/bean/impl/BeanJavaFactory.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/java/bean/impl/BeanJavaFactory.java (original)
+++ incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/java/bean/impl/BeanJavaFactory.java Tue Apr 10 16:02:52 2007
@@ -21,6 +21,8 @@
 import org.apache.tuscany.implementation.java.JavaImplementation;
 import org.apache.tuscany.interfacedef.java.JavaFactory;
 import org.apache.tuscany.interfacedef.java.JavaInterface;
+import org.apache.tuscany.interfacedef.java.JavaInterfaceContract;
+import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceContractImpl;
 import org.springframework.beans.factory.support.BeanDefinitionRegistry;
 
 /**
@@ -44,5 +46,9 @@
 	public JavaInterface createJavaInterface() {
 		return new BeanJavaInterfaceImpl();
 	}
+        
+        public JavaInterfaceContract createJavaInterfaceContract() {
+            return new JavaInterfaceContractImpl();
+        }
 
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java Tue Apr 10 16:02:52 2007
@@ -121,7 +121,7 @@
                 boolean hasConversationalContract = false;
                 ComponentType componentType = componentDef.getImplementation();
                 for (Service serviceDef : componentType.getServices()) {
-                    if (serviceDef.getInterface().isConversational()) {
+                    if (serviceDef.getInterfaceContract().getInterface().isConversational()) {
                         hasConversationalContract = true;
                         break;
                     }

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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -226,7 +226,7 @@
         wire.setTargetContract(contract);
         wire.setSourceUri(sourceURI);
         wire.setTargetUri(targetUri);
-        for (Operation operation : contract.getInterface().getOperations()) {
+        for (Operation operation : contract.getInterfaceContract().getInterface().getOperations()) {
             InvocationChain chain = new InvocationChainImpl(operation);
             /*
              * if (operation.isNonBlocking()) { chain.addInterceptor(new
@@ -236,8 +236,8 @@
             wire.addInvocationChain(operation, chain);
 
         }
-        if (contract.getCallbackInterface() != null) {
-            for (Operation operation : contract.getCallbackInterface().getOperations()) {
+        if (contract.getInterfaceContract().getCallbackInterface() != null) {
+            for (Operation operation : contract.getInterfaceContract().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/runtime/AbstractRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java Tue Apr 10 16:02:52 2007
@@ -43,7 +43,6 @@
 import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 import org.apache.tuscany.core.bootstrap.Bootstrapper;
 import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
-import org.apache.tuscany.core.bootstrap.ExtensionPointRegistryImpl;
 import org.apache.tuscany.core.component.ComponentManagerImpl;
 import org.apache.tuscany.core.component.SimpleWorkContext;
 import org.apache.tuscany.core.monitor.NullMonitorFactory;
@@ -56,10 +55,11 @@
 import org.apache.tuscany.host.runtime.InitializationException;
 import org.apache.tuscany.host.runtime.TuscanyRuntime;
 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.services.spi.contribution.ContributionService;
-import org.apache.tuscany.spi.bootstrap.ModuleActivator;
 import org.apache.tuscany.spi.bootstrap.ExtensionPointRegistry;
+import org.apache.tuscany.spi.bootstrap.ModuleActivator;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.ComponentManager;
@@ -294,7 +294,9 @@
         ComponentService contract = factory.createComponentService();
         JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
         javaInterface.setJavaClass(type);
-        contract.setInterface(javaInterface);
+        JavaInterfaceContract javaInterfaceContract = new DefaultJavaFactory().createJavaInterfaceContract();
+        contract.setInterfaceContract(javaInterfaceContract);
+        javaInterfaceContract.setInterface(javaInterface);
         return contract;
     }
 

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java Tue Apr 10 16:02:52 2007
@@ -73,14 +73,14 @@
             // Shortcut for performance
             return true;
         }
-        if (source.getInterface().isRemotable() != target.getInterface().isRemotable()) {
+        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.getInterface().isConversational() != target.getInterface().isConversational()) {
+        if (source.getInterfaceContract().getInterface().isConversational() != target.getInterfaceContract().getInterface().isConversational()) {
             if (!silent) {
                 throw new IncompatibleServiceContractException("Interaction scopes do not match", source, target);
             } else {
@@ -88,8 +88,8 @@
             }
         }
 
-        for (Operation operation : source.getInterface().getOperations()) {
-            Operation targetOperation = getOperation(target.getInterface().getOperations(), operation.getName());
+        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);
@@ -111,8 +111,8 @@
             return true;
         }
 
-        for (Operation operation : source.getCallbackInterface().getOperations()) {
-            Operation targetOperation = getOperation(target.getCallbackInterface().getOperations(), operation.getName());
+        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,

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java Tue Apr 10 16:02:52 2007
@@ -59,7 +59,7 @@
         Contract source = e.getSource();
         String sourceContractName = null;
         if (source != null) {
-            sourceContractName = source.getInterface().toString();
+            sourceContractName = source.getInterfaceContract().getInterface().toString();
         }
         Operation sourceOperation = e.getSourceOperation();
         String sourceOpName = null;
@@ -74,7 +74,7 @@
         Contract target = e.getTarget();
         String targetContractName = null;
         if (target != null) {
-            targetContractName = target.getInterface().toString();
+            targetContractName = target.getInterfaceContract().getInterface().toString();
         }
         Operation targetOperation = e.getTargetOperation();
         String targetOpName = null;

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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -54,14 +54,14 @@
             // Shortcut for performance
             return true;
         }
-        if (source.getInterface().isRemotable() != target.getInterface().isRemotable()) {
+        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.getInterface().isConversational() != target.getInterface().isConversational()) {
+        if (source.getInterfaceContract().getInterface().isConversational() != target.getInterfaceContract().getInterface().isConversational()) {
             if (!silent) {
                 throw new IncompatibleServiceContractException("Interaction scopes do not match", source, target);
             } else {
@@ -69,8 +69,8 @@
             }
         }
 
-        for (Operation operation : source.getInterface().getOperations()) {
-            Operation targetOperation = getOperation(target.getInterface().getOperations(), operation.getName());
+        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);
@@ -92,9 +92,9 @@
             return true;
         }
 
-        if (source.getCallbackInterface() != null) {
-            for (Operation operation : source.getCallbackInterface().getOperations()) {
-                Operation targetOperation = getOperation(target.getCallbackInterface().getOperations(), operation
+        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) {

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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -60,7 +60,7 @@
         this.proxyService = proxyService;
         this.mappings = WireUtils.createInterfaceToWireMapping(interfaze, wire);
         if (wire.isOptimizable()) {
-            Interface iface = wire.getSourceContract().getInterface();
+            Interface iface = wire.getSourceContract().getInterfaceContract().getInterface();
             if (iface instanceof JavaInterface) {
                 Class type = ((JavaInterface)iface).getJavaClass();
                 if (interfaze.isAssignableFrom(type)) {

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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -29,6 +29,7 @@
 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.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.Message;
@@ -63,7 +64,9 @@
         Contract contract = new ComponentServiceImpl();
         JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
         javaInterface.setJavaClass(Object.class);
-        contract.setCallbackInterface(javaInterface);
+        JavaInterfaceContract javaInterfaceContract = new DefaultJavaFactory().createJavaInterfaceContract();
+        contract.setInterfaceContract(javaInterfaceContract);
+        javaInterfaceContract.setCallbackInterface(javaInterface);
         TargetInvoker targetInvoker = EasyMock.createMock(TargetInvoker.class);
         EasyMock.expect(targetInvoker.invoke(EasyMock.isA(Message.class))).andReturn(new MessageImpl());
         EasyMock.replay(targetInvoker);

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/JavaObjectRegistrationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/JavaObjectRegistrationTestCase.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/JavaObjectRegistrationTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/JavaObjectRegistrationTestCase.java Tue Apr 10 16:02:52 2007
@@ -26,6 +26,7 @@
 import org.apache.tuscany.assembly.ComponentService;
 import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 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.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.Component;
@@ -43,7 +44,9 @@
         ComponentService contract = factory.createComponentService();
         JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
         javaInterface.setJavaClass(type);
-        contract.setInterface(javaInterface);
+        JavaInterfaceContract javaInterfaceContract = new DefaultJavaFactory().createJavaInterfaceContract();
+        contract.setInterfaceContract(javaInterfaceContract);
+        javaInterfaceContract.setInterface(javaInterface);
         return contract;
     }
     

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/SingletonAtomicComponentTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/SingletonAtomicComponentTestCase.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/SingletonAtomicComponentTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/SingletonAtomicComponentTestCase.java Tue Apr 10 16:02:52 2007
@@ -28,6 +28,7 @@
 import org.apache.tuscany.assembly.ComponentService;
 import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 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.spi.component.TargetException;
 
@@ -40,7 +41,9 @@
         ComponentService contract = factory.createComponentService();
         JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
         javaInterface.setJavaClass(type);
-        contract.setInterface(javaInterface);
+        JavaInterfaceContract javaInterfaceContract = new DefaultJavaFactory().createJavaInterfaceContract();
+        contract.setInterfaceContract(javaInterfaceContract);
+        javaInterfaceContract.setInterface(javaInterface);
         return contract;
     }
 

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java Tue Apr 10 16:02:52 2007
@@ -34,6 +34,8 @@
 import org.apache.tuscany.interfacedef.impl.DataTypeImpl;
 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.ChainHolder;
 import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
@@ -63,12 +65,12 @@
         Operation opSource1 = new OperationImpl("op1");
         Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
         sourceOperations.put("op1", opSource1);
-        source.getInterface().getOperations().addAll(sourceOperations.values());
+        source.getInterfaceContract().getInterface().getOperations().addAll(sourceOperations.values());
         Contract target = new MockContract("FooContract");
         Operation opSource2 = new OperationImpl("op1");
         Map<String, Operation> targetOperations = new HashMap<String, Operation>();
         targetOperations.put("op1", opSource2);
-        target.getInterface().getOperations().addAll(targetOperations.values());
+        target.getInterfaceContract().getInterface().getOperations().addAll(targetOperations.values());
         proxyService.checkCompatibility(source, target, false, false);
     }
 
@@ -77,12 +79,12 @@
         Operation opSource1 = new OperationImpl("op1");
         Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
         sourceOperations.put("op1", opSource1);
-        source.getInterface().getOperations().addAll(sourceOperations.values());
+        source.getInterfaceContract().getInterface().getOperations().addAll(sourceOperations.values());
         Contract target = new MockContract("FooContract");
         Operation opSource2 = new OperationImpl("op2");
         Map<String, Operation> targetOperations = new HashMap<String, Operation>();
         targetOperations.put("op2", opSource2);
-        target.getInterface().getOperations().addAll(targetOperations.values());
+        target.getInterfaceContract().getInterface().getOperations().addAll(targetOperations.values());
         try {
             proxyService.checkCompatibility(source, target, false, false);
             fail();
@@ -100,7 +102,7 @@
         opSource1.setInputType(inputType);
         Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
         sourceOperations.put("op1", opSource1);
-        source.getInterface().getOperations().addAll(sourceOperations.values());
+        source.getInterfaceContract().getInterface().getOperations().addAll(sourceOperations.values());
 
         Contract target = new MockContract("FooContract");
         List<DataType> targetInputTypes = new ArrayList<DataType>();
@@ -111,7 +113,7 @@
         opTarget.setInputType(targetInputType);
         Map<String, Operation> targetOperations = new HashMap<String, Operation>();
         targetOperations.put("op1", opTarget);
-        target.getInterface().getOperations().addAll(targetOperations.values());
+        target.getInterfaceContract().getInterface().getOperations().addAll(targetOperations.values());
         proxyService.checkCompatibility(source, target, false, false);
     }
 
@@ -124,7 +126,7 @@
         opSource1.setInputType(inputType);
         Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
         sourceOperations.put("op1", opSource1);
-        source.getInterface().getOperations().addAll(sourceOperations.values());
+        source.getInterfaceContract().getInterface().getOperations().addAll(sourceOperations.values());
 
         Contract target = new MockContract("FooContract");
         List<DataType> targetInputTypes = new ArrayList<DataType>();
@@ -135,7 +137,7 @@
         opTarget.setInputType(targetInputType);
         Map<String, Operation> targetOperations = new HashMap<String, Operation>();
         targetOperations.put("op1", opTarget);
-        target.getInterface().getOperations().addAll(targetOperations.values());
+        target.getInterfaceContract().getInterface().getOperations().addAll(targetOperations.values());
         try {
             proxyService.checkCompatibility(source, target, false, false);
             fail();
@@ -184,7 +186,7 @@
         opSource1.setOutputType(sourceOutputType);
         Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
         sourceOperations.put("op1", opSource1);
-        source.getInterface().getOperations().addAll(sourceOperations.values());
+        source.getInterfaceContract().getInterface().getOperations().addAll(sourceOperations.values());
 
         Contract target = new MockContract("FooContract");
         DataType targetOutputType = new DataTypeImpl<Type>(String.class, String.class);
@@ -192,7 +194,7 @@
         opTarget.setOutputType(targetOutputType);
         Map<String, Operation> targetOperations = new HashMap<String, Operation>();
         targetOperations.put("op1", opTarget);
-        target.getInterface().getOperations().addAll(targetOperations.values());
+        target.getInterfaceContract().getInterface().getOperations().addAll(targetOperations.values());
         proxyService.checkCompatibility(source, target, false, false);
     }
 
@@ -229,7 +231,7 @@
         opSource1.setOutputType(sourceOutputType);
         Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
         sourceOperations.put("op1", opSource1);
-        source.getInterface().getOperations().addAll(sourceOperations.values());
+        source.getInterfaceContract().getInterface().getOperations().addAll(sourceOperations.values());
 
         Contract target = new MockContract("FooContract");
         DataType targetOutputType = new DataTypeImpl<Type>(Integer.class, Integer.class);
@@ -237,7 +239,7 @@
         opTarget.setOutputType(targetOutputType);
         Map<String, Operation> targetOperations = new HashMap<String, Operation>();
         targetOperations.put("op1", opTarget);
-        target.getInterface().getOperations().addAll(targetOperations.values());
+        target.getInterfaceContract().getInterface().getOperations().addAll(targetOperations.values());
         try {
             proxyService.checkCompatibility(source, target, false, false);
             fail();
@@ -255,7 +257,7 @@
         opSource1.setFaultTypes(sourceFaultTypes);
         Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
         sourceOperations.put("op1", opSource1);
-        source.getInterface().getOperations().addAll(sourceOperations.values());
+        source.getInterfaceContract().getInterface().getOperations().addAll(sourceOperations.values());
 
         Contract target = new MockContract("FooContract");
         DataType targetFaultType = new DataTypeImpl<Type>(String.class, String.class);
@@ -266,7 +268,7 @@
         opTarget.setFaultTypes(targetFaultTypes);
         Map<String, Operation> targetOperations = new HashMap<String, Operation>();
         targetOperations.put("op1", opTarget);
-        target.getInterface().getOperations().addAll(targetOperations.values());
+        target.getInterfaceContract().getInterface().getOperations().addAll(targetOperations.values());
         proxyService.checkCompatibility(source, target, false, false);
     }
 
@@ -279,13 +281,13 @@
         opSource1.setFaultTypes(sourceFaultTypes);
         Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
         sourceOperations.put("op1", opSource1);
-        source.getInterface().getOperations().addAll(sourceOperations.values());
+        source.getInterfaceContract().getInterface().getOperations().addAll(sourceOperations.values());
 
         Contract target = new MockContract("FooContract");
         Operation opTarget = new OperationImpl("op1");
         Map<String, Operation> targetOperations = new HashMap<String, Operation>();
         targetOperations.put("op1", opTarget);
-        target.getInterface().getOperations().addAll(targetOperations.values());
+        target.getInterfaceContract().getInterface().getOperations().addAll(targetOperations.values());
         proxyService.checkCompatibility(source, target, false, false);
     }
 
@@ -365,14 +367,18 @@
         public MockContract(Class interfaceClass) {
             JavaInterface jInterface = new JavaInterfaceImpl();
             jInterface.setJavaClass(interfaceClass);
-            setInterface(jInterface);
+            JavaInterfaceContract javaInterfaceContract = new JavaInterfaceContractImpl();
+            setInterfaceContract(javaInterfaceContract);
+            javaInterfaceContract.setInterface(jInterface);
         }
 
         public MockContract(String interfaceClass) {
             JavaInterface jInterface = new JavaInterfaceImpl();
             jInterface.setUnresolved(true);
             jInterface.setName(interfaceClass);
-            setInterface(jInterface);
+            JavaInterfaceContract javaInterfaceContract = new JavaInterfaceContractImpl();
+            setInterfaceContract(javaInterfaceContract);
+            javaInterfaceContract.setInterface(jInterface);
         }
     }
 

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java Tue Apr 10 16:02:52 2007
@@ -31,7 +31,9 @@
 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.IncompatibleServiceContractException;
 import org.easymock.EasyMock;
 
@@ -47,7 +49,9 @@
         ComponentService contract = factory.createComponentService();
         JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
         javaInterface.setJavaClass(type);
-        contract.setInterface(javaInterface);
+        JavaInterfaceContract javaInterfaceContract = new JavaInterfaceContractImpl();
+        contract.setInterfaceContract(javaInterfaceContract);
+        javaInterfaceContract.setInterface(javaInterface);
         return contract;
     }
 

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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -29,6 +29,8 @@
 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;
 import org.apache.tuscany.spi.wire.ProxyService;
@@ -88,7 +90,9 @@
         JavaInterface jInterface = new JavaInterfaceImpl();
         jInterface.setJavaClass(cls);
         ComponentService service = new ComponentServiceImpl();
-        service.setInterface(jInterface);
+        JavaInterfaceContract javaInterfaceContract = new JavaInterfaceContractImpl();
+        service.setInterfaceContract(javaInterfaceContract);
+        javaInterfaceContract.setInterface(jInterface);
         service.setName(cls.getSimpleName());
         return service;
     }

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.java Tue Apr 10 16:02:52 2007
@@ -23,7 +23,8 @@
 import org.apache.tuscany.assembly.impl.ComponentTypeImpl;
 import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 import org.apache.tuscany.interfacedef.java.JavaInterface;
-import org.apache.tuscany.interfacedef.java.impl.DefaultJavaFactory;
+import org.apache.tuscany.interfacedef.java.JavaInterfaceContract;
+import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceContractImpl;
 import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceImpl;
 
 /**
@@ -44,7 +45,9 @@
         service.setName(type.getSimpleName());
         JavaInterface i = new JavaInterfaceImpl();
         i.setJavaClass(type);
-        service.setInterface(i);
+        JavaInterfaceContract ic = new JavaInterfaceContractImpl();
+        ic.setInterface(i);
+        service.setInterfaceContract(ic);
         return service;
     }
 

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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -159,7 +159,7 @@
         wireList.addAll(attachWires);
         JavaElement element = configuration.getDefinition().getReferenceMembers().get(referenceName);
 
-        Class<?> type = ((JavaInterface)attachWires.get(0).getSourceContract().getInterface()).getJavaClass();
+        Class<?> type = ((JavaInterface)attachWires.get(0).getSourceContract().getInterfaceContract().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().getCallbackInterface().toString();
+        String callbackName = wire.getSourceContract().getInterfaceContract().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/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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -206,8 +206,8 @@
         throws NoMethodForOperationException {
         Contract contract = wire.getSourceContract();
         this.referenceName = wire.getSourceUri().getFragment();
-        this.conversational = contract.getInterface().isConversational();
-        this.callback = contract.getCallbackInterface() != null;
+        this.conversational = contract.getInterfaceContract().getInterface().isConversational();
+        this.callback = contract.getInterfaceContract().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/implementation/java/ModelHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/implementation/java/ModelHelper.java?view=diff&rev=527336&r1=527335&r2=527336
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/implementation/java/ModelHelper.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/core/implementation/java/ModelHelper.java Tue Apr 10 16:02:52 2007
@@ -30,6 +30,7 @@
 import org.apache.tuscany.interfacedef.Interface;
 import org.apache.tuscany.interfacedef.java.JavaFactory;
 import org.apache.tuscany.interfacedef.java.JavaInterface;
+import org.apache.tuscany.interfacedef.java.JavaInterfaceContract;
 import org.apache.tuscany.interfacedef.java.impl.DefaultJavaFactory;
 
 /**
@@ -67,7 +68,7 @@
     }
 
     public static boolean matches(Contract contract, Class<?> type) {
-        Interface interface1 = contract.getInterface();
+        Interface interface1 = contract.getInterfaceContract().getInterface();
         if (interface1 instanceof JavaInterface) {
             return type == ((JavaInterface)interface1).getJavaClass();
         } else {
@@ -80,7 +81,9 @@
         ref.setName(type.getSimpleName());
         JavaInterface i = javaFactory.createJavaInterface();
         i.setJavaClass(type);
-        ref.setInterface(i);
+        JavaInterfaceContract ic = javaFactory.createJavaInterfaceContract();
+        ic.setInterface(i);
+        ref.setInterfaceContract(ic);
         return ref;
     }
 
@@ -89,7 +92,9 @@
         ref.setName(name);
         JavaInterface i = javaFactory.createJavaInterface();
         i.setJavaClass(type);
-        ref.setInterface(i);
+        JavaInterfaceContract ic = javaFactory.createJavaInterfaceContract();
+        ic.setInterface(i);
+        ref.setInterfaceContract(ic);
         return ref;
     }
 

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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -52,7 +52,7 @@
 
         Contract contract = new DefaultAssemblyFactory().createComponentReference();
         registry.introspect(contract, Target.class);
-        for (Operation operation : contract.getInterface().getOperations()) {
+        for (Operation operation : contract.getInterfaceContract().getInterface().getOperations()) {
             InvocationChain chain = new InvocationChainImpl(operation);
             wire.addInvocationChain(operation, chain);
         }

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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -89,7 +89,7 @@
         Map<Operation, InvocationChain> map = new HashMap<Operation, InvocationChain>();
         Operation operation = new OperationImpl("invoke");
         Contract opContract = ModelHelper.createReference("foo", Foo.class);
-        operation.setInterface(opContract.getInterface());
+        operation.setInterface(opContract.getInterfaceContract().getInterface());
         map.put(operation, createChain(operation));
         EasyMock.expect(wire.getSourceContract()).andReturn(contract).atLeastOnce();
         URI uri = URI.create("#foo");

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=527336&r1=527335&r2=527336
==============================================================================
--- 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 Tue Apr 10 16:02:52 2007
@@ -82,7 +82,7 @@
         op1.setInputType(inputType1);
         op1.setOutputType(outputType1);
         Contract contract = ModelHelper.createReference("foo", Foo.class);
-        op1.setInterface(contract.getInterface());
+        op1.setInterface(contract.getInterfaceContract().getInterface());
 
         WorkContext wc = new SimpleWorkContext();
         PojoWorkContextTunnel.setThreadWorkContext(wc);



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