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/05 08:08:41 UTC

svn commit: r525717 [2/4] - in /incubator/tuscany/java/sca/modules/core: ./ src/main/java/org/apache/tuscany/core/binding/local/ src/main/java/org/apache/tuscany/core/bootstrap/ src/main/java/org/apache/tuscany/core/builder/ src/main/java/org/apache/tu...

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java Wed Apr  4 23:08:37 2007
@@ -18,6 +18,10 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
+import org.apache.tuscany.assembly.Composite;
+import org.apache.tuscany.assembly.CompositeReference;
+import org.apache.tuscany.assembly.CompositeService;
+import org.apache.tuscany.assembly.Implementation;
 import org.apache.tuscany.spi.builder.BuilderException;
 import org.apache.tuscany.spi.builder.BuilderInstantiationException;
 import org.apache.tuscany.spi.component.Component;
@@ -26,38 +30,30 @@
 import org.apache.tuscany.spi.component.Service;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.CompositeComponentType;
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceDefinition;
 
 /**
  * Abstract builder for composites
- *
+ * 
  * @version $Rev$ $Date$
  */
-public abstract class AbstractCompositeBuilder<T extends Implementation<CompositeComponentType>>
-    extends ComponentBuilderExtension<T> {
+public abstract class AbstractCompositeBuilder<T extends Implementation> extends ComponentBuilderExtension<T> {
 
-    public Component build(
-        Component component,
-        CompositeComponentType<?, ?, ?> componentType,
-        DeploymentContext deploymentContext) throws BuilderException {
-        for (ComponentDefinition<? extends Implementation<?>> definition : componentType.getComponents().values()) {
+    public Component build(Component component, Composite componentType, DeploymentContext deploymentContext)
+        throws BuilderException {
+        for (org.apache.tuscany.assembly.Component definition : componentType.getComponents()) {
             builderRegistry.build(definition, deploymentContext);
         }
-        for (ServiceDefinition definition : componentType.getServices().values()) {
+        for (org.apache.tuscany.assembly.Service definition : componentType.getServices()) {
             try {
-                Service service = builderRegistry.build(definition, deploymentContext);
+                Service service = builderRegistry.build((CompositeService)definition, deploymentContext);
                 component.register(service);
             } catch (RegistrationException e) {
                 throw new BuilderInstantiationException("Error registering service", e);
             }
         }
-        for (ReferenceDefinition definition : componentType.getReferences().values()) {
+        for (org.apache.tuscany.assembly.Reference definition : componentType.getReferences()) {
             try {
-                Reference reference = builderRegistry.build(definition, deploymentContext);
+                Reference reference = builderRegistry.build((CompositeReference)definition, deploymentContext);
                 component.register(reference);
             } catch (RegistrationException e) {
                 throw new BuilderInstantiationException("Error registering reference", e);

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java Wed Apr  4 23:08:37 2007
@@ -20,32 +20,30 @@
 
 import java.net.URI;
 
+import org.apache.tuscany.assembly.Composite;
 import org.apache.tuscany.spi.builder.BuilderException;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.CompositeComponentType;
-import org.apache.tuscany.spi.model.CompositeImplementation;
 
 /**
  * Instantiates a composite component from an assembly definition
  *
  * @version $Rev$ $Date$
  */
-public class CompositeBuilder extends AbstractCompositeBuilder<CompositeImplementation> {
+public class CompositeBuilder extends AbstractCompositeBuilder<Composite> {
 
-    public Component build(ComponentDefinition<CompositeImplementation> componentDefinition,
+    public Component build(org.apache.tuscany.assembly.Component definition,
         DeploymentContext deploymentContext) throws BuilderException {
 
-        CompositeImplementation implementation = componentDefinition.getImplementation();
-        CompositeComponentType<?, ?, ?> componentType = implementation.getComponentType();
-        URI name = componentDefinition.getUri();
+        Composite composite = (Composite) definition.getImplementation();
+        // FIXME
+        URI name = URI.create(composite.getName().getLocalPart());
         CompositeComponentImpl component = new CompositeComponentImpl(name);
 
-        return build(component, componentType, deploymentContext);
+        return build(component, composite, deploymentContext);
     }
 
-    protected Class<CompositeImplementation> getImplementationType() {
-        return CompositeImplementation.class;
+    protected Class<Composite> getImplementationType() {
+        return Composite.class;
     }
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java Wed Apr  4 23:08:37 2007
@@ -23,10 +23,10 @@
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.tuscany.assembly.Contract;
 import org.apache.tuscany.spi.component.AbstractSCAObject;
 import org.apache.tuscany.spi.component.Reference;
 import org.apache.tuscany.spi.component.ReferenceBinding;
-import org.apache.tuscany.spi.model.ServiceContract;
 
 /**
  * The default implementation of a {@link org.apache.tuscany.spi.component.Reference}
@@ -34,15 +34,15 @@
  * @version $Rev$ $Date$
  */
 public class ReferenceImpl extends AbstractSCAObject implements Reference {
-    private ServiceContract<?> serviceContract;
+    private Contract serviceContract;
     private List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>();
 
-    public ReferenceImpl(URI name, ServiceContract<?> contract) {
+    public ReferenceImpl(URI name, Contract contract) {
         super(name);
         this.serviceContract = contract;
     }
 
-    public ServiceContract<?> getServiceContract() {
+    public Contract getServiceContract() {
         return serviceContract;
     }
 

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java Wed Apr  4 23:08:37 2007
@@ -23,10 +23,10 @@
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.tuscany.assembly.Contract;
 import org.apache.tuscany.spi.component.AbstractSCAObject;
 import org.apache.tuscany.spi.component.Service;
 import org.apache.tuscany.spi.component.ServiceBinding;
-import org.apache.tuscany.spi.model.ServiceContract;
 
 /**
  * The default implementation of a {@link Service}
@@ -34,21 +34,21 @@
  * @version $Rev$ $Date$
  */
 public class ServiceImpl extends AbstractSCAObject implements Service {
-    private ServiceContract<?> serviceContract;
+    private Contract serviceContract;
     private List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
     private URI targetUri;
 
-    public ServiceImpl(URI name, ServiceContract<?> contract) {
+    public ServiceImpl(URI name, Contract contract) {
         this(name, contract, null);
     }
 
-    public ServiceImpl(URI name, ServiceContract<?> contract, URI targetUri) {
+    public ServiceImpl(URI name, Contract contract, URI targetUri) {
         super(name);
         this.serviceContract = contract;
         this.targetUri = targetUri;
     }
 
-    public ServiceContract<?> getServiceContract() {
+    public Contract getServiceContract() {
         return serviceContract;
     }
 

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java Wed Apr  4 23:08:37 2007
@@ -20,9 +20,9 @@
 
 import java.io.PrintWriter;
 
-import org.apache.tuscany.api.TuscanyException;
-import org.apache.tuscany.api.TuscanyRuntimeException;
 import org.apache.tuscany.host.monitor.ExceptionFormatter;
+import org.apache.tuscany.spi.TuscanyException;
+import org.apache.tuscany.spi.TuscanyRuntimeException;
 
 /**
  * Performs basics formatting of exceptions for JDK logging

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/ProxyMonitorFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/ProxyMonitorFactory.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/ProxyMonitorFactory.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/monitor/ProxyMonitorFactory.java Wed Apr  4 23:08:37 2007
@@ -18,27 +18,27 @@
  */
 package org.apache.tuscany.core.monitor;
 
-import java.util.Map;
-import java.util.Properties;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.lang.ref.WeakReference;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.ResourceBundle;
+import java.util.List;
 import java.util.Locale;
+import java.util.Map;
 import java.util.MissingResourceException;
-import java.util.List;
-import java.util.ArrayList;
+import java.util.Properties;
+import java.util.ResourceBundle;
 import java.util.WeakHashMap;
 import java.util.logging.Level;
-import java.lang.ref.WeakReference;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Proxy;
-import java.io.PrintWriter;
-import java.io.StringWriter;
 
 import org.apache.tuscany.host.MonitorFactory;
-import org.apache.tuscany.host.monitor.FormatterRegistry;
 import org.apache.tuscany.host.monitor.ExceptionFormatter;
-import org.apache.tuscany.api.annotation.LogLevel;
+import org.apache.tuscany.host.monitor.FormatterRegistry;
+import org.apache.tuscany.spi.LogLevel;
 
 /**
  * @version $Rev$ $Date$

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java Wed Apr  4 23:08:37 2007
@@ -20,10 +20,10 @@
 
 import java.net.URI;
 
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.CompositeComponentType;
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.assembly.Component;
+import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.assembly.Composite;
+import org.apache.tuscany.assembly.Contract;
 import org.apache.tuscany.spi.resolver.ResolutionException;
 
 /**
@@ -41,8 +41,8 @@
      * @param definition       the component definition to resolve autowires for
      * @throws ResolutionException
      */
-    void resolve(ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>> parentDefinition,
-                 ComponentDefinition<? extends Implementation<?>> definition) throws ResolutionException;
+    void resolve(Composite parentDefinition,
+                 Component definition) throws ResolutionException;
 
     /**
      * Resolves autowires for a composite component type and its decendents
@@ -51,7 +51,7 @@
      * @throws ResolutionException
      */
     @SuppressWarnings({"unchecked"})
-    public void resolve(CompositeComponentType<?, ?, ?> compositeType) throws ResolutionException;
+    public void resolve(Composite compositeType) throws ResolutionException;
 
     /**
      * Adds the uri of a host system service that can be an autowire target
@@ -59,6 +59,6 @@
      * @param contract the service contract of the system service
      * @param uri      the component uri
      */
-    void addHostUri(ServiceContract contract, URI uri);
+    void addPrimordialService(ComponentService contract, URI uri);
 
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java Wed Apr  4 23:08:37 2007
@@ -20,160 +20,161 @@
 
 import java.net.URI;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.ComponentType;
-import org.apache.tuscany.spi.model.CompositeComponentType;
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ReferenceTarget;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.assembly.Component;
+import org.apache.tuscany.assembly.ComponentReference;
+import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.assembly.ComponentType;
+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.Reference;
+import org.apache.tuscany.assembly.Service;
+import org.apache.tuscany.core.wire.IDLMappingService;
 import org.apache.tuscany.spi.resolver.ResolutionException;
 
 /**
  * Default implementation of an autowire resolver
- *
+ * 
  * @version $Rev$ $Date$
  */
 public class DefaultAutowireResolver implements AutowireResolver {
-    private Map<ServiceContract, URI> hostAutowire = new HashMap<ServiceContract, URI>();
+    private Map<ComponentService, URI> hostAutowire = new HashMap<ComponentService, URI>();
+    private IDLMappingService mappingService;
 
+    /**
+     * @param mappingService
+     */
+    public DefaultAutowireResolver(IDLMappingService mappingService) {
+        super();
+        this.mappingService = mappingService;
+    }
 
-    @SuppressWarnings({"unchecked"})
-    public void resolve(ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>> parentDefinition,
-                        ComponentDefinition<? extends Implementation<?>> definition)
-        throws ResolutionException {
-        ComponentType<?, ?, ?> type = definition.getImplementation().getComponentType();
+    @SuppressWarnings( {"unchecked"})
+    public void resolve(Composite parentDefinition, Component definition) throws ResolutionException {
+        ComponentType type = definition.getImplementation();
         // resolve autowires
-        if (type instanceof CompositeComponentType) {
-            CompositeComponentType<?, ?, ?> compositeType = (CompositeComponentType<?, ?, ?>) type;
-            for (ComponentDefinition<? extends Implementation<?>> child : compositeType.getComponents().values()) {
-                Implementation<?> implementation = child.getImplementation();
-                ComponentType<?, ?, ?> childType = implementation.getComponentType();
-                if (childType instanceof CompositeComponentType) {
+        if (type instanceof Composite) {
+            Composite compositeType = (Composite)type;
+            for (Component child : compositeType.getComponents()) {
+                Implementation implementation = child.getImplementation();
+                ComponentType childType = implementation;
+                if (childType instanceof Composite) {
                     // recurse decendents for composites
-                    resolve((ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>>) definition, child);
+                    resolve((Composite)definition, child);
                 }
-                Map<String, ReferenceTarget> targets = child.getReferenceTargets();
-                for (ReferenceDefinition reference : childType.getReferences().values()) {
-                    ReferenceTarget target = targets.get(reference.getUri().getFragment());
+                List<ComponentReference> targets = child.getReferences();
+                for (Reference reference : childType.getReferences()) {
+                    ComponentReference target = (ComponentReference)getReference(targets, reference.getName());
                     if (target == null) {
                         continue;
                     }
                     if (target.isAutowire()) {
-                        ServiceContract requiredContract = reference.getServiceContract();
-                        resolve(compositeType, requiredContract, target, reference.isRequired());
+                        boolean required = reference.getMultiplicity() == Multiplicity.ONE_N || reference
+                                               .getMultiplicity() == Multiplicity.ONE_ONE;
+                        resolve(compositeType, reference, target, required);
                     }
                 }
             }
         } else {
             // a leaf level component
-            ComponentType<?, ?, ?> componentType = definition.getImplementation().getComponentType();
-            Map<String, ReferenceTarget> targets = definition.getReferenceTargets();
-            for (ReferenceDefinition reference : componentType.getReferences().values()) {
-                ReferenceTarget target = targets.get(reference.getUri().getFragment());
+            ComponentType componentType = definition.getImplementation();
+            List<ComponentReference> targets = definition.getReferences();
+            for (Reference reference : componentType.getReferences()) {
+                ComponentReference target = getReference(targets, reference.getName());
                 if (target == null) {
                     continue;
                 }
                 if (target.isAutowire()) {
-                    ServiceContract requiredContract = reference.getServiceContract();
-                    CompositeComponentType<?, ?, ?> ctype = parentDefinition.getImplementation().getComponentType();
-                    resolve(ctype, requiredContract, target, reference.isRequired());
+                    Composite ctype = parentDefinition;
+                    boolean required = reference.getMultiplicity() == Multiplicity.ONE_N || reference.getMultiplicity() == Multiplicity.ONE_ONE;
+                    resolve(ctype, reference, target, required);
                 }
             }
         }
     }
 
-    public void addHostUri(ServiceContract contract, URI uri) {
-        hostAutowire.put(contract, uri);
+    public void addPrimordialService(ComponentService service, URI uri) {
+        hostAutowire.put(service, uri);
+    }
+
+    private <T extends Reference> T getReference(List<T> refs, String name) {
+        for (T ref : refs) {
+            if (ref.getName().equals(name)) {
+                return ref;
+            }
+        }
+        return null;
     }
 
-    public void resolve(CompositeComponentType<?, ?, ?> compositeType) throws ResolutionException {
-        for (ComponentDefinition<? extends Implementation<?>> child : compositeType.getComponents().values()) {
-            Implementation<?> implementation = child.getImplementation();
-            ComponentType<?, ?, ?> childType = implementation.getComponentType();
-            if (childType instanceof CompositeComponentType) {
+    public void resolve(Composite compositeType) throws ResolutionException {
+        for (Component child : compositeType.getComponents()) {
+            ComponentType childType = child.getImplementation();
+            if (childType instanceof Composite) {
                 // recurse decendents for composites
                 resolve(null, child);
             }
-            Map<String, ReferenceTarget> targets = child.getReferenceTargets();
-            for (ReferenceDefinition reference : childType.getReferences().values()) {
-                ReferenceTarget target = targets.get(reference.getUri().getFragment());
+            for (Reference reference : child.getReferences()) {
+                Reference target = getReference(childType.getReferences(), reference.getName());
                 if (target == null) {
                     continue;
                 }
                 if (target.isAutowire()) {
-                    ServiceContract requiredContract = reference.getServiceContract();
-                    resolve(compositeType, requiredContract, target, reference.isRequired());
+                    Contract requiredContract = reference;
+                    boolean required = target.getMultiplicity() == Multiplicity.ONE_N || target.getMultiplicity() == Multiplicity.ONE_ONE;
+                    resolve(compositeType, requiredContract, target, required);
                 }
             }
         }
     }
+
     /**
-     * Performs the actual resolution against a composite TODO this should be extensible allowing for path
-     * optimizations
-     *
-     * @param compositeType    the composite component type to resolve against
+     * Performs the actual resolution against a composite TODO this should be
+     * extensible allowing for path optimizations
+     * 
+     * @param composite the composite component type to resolve against
      * @param requiredContract the required target contract
-     * @param target           the reference target
-     * @param required         true if the autowire is required
+     * @param target the reference target
+     * @param required true if the autowire is required
      * @throws AutowireTargetNotFoundException
-     *
      */
-    private void resolve(CompositeComponentType<?, ?, ?> compositeType,
-                         ServiceContract requiredContract,
-                         ReferenceTarget target,
-                         boolean required) throws AutowireTargetNotFoundException {
-        // for now, attempt to match on interface, assume the class can be loaded
-        Class<?> requiredInterface = requiredContract.getInterfaceClass();
-        if (requiredInterface == null) {
-            throw new UnsupportedOperationException("Only interfaces support for autowire");
-        }
+    private void resolve(Composite composite, Contract requiredContract, Reference target, boolean required)
+        throws AutowireTargetNotFoundException {
+    
+        ComponentService targetService = null;
         // autowire to a target in the parent
-        URI targetUri = null;
-        URI candidateUri = null;
         // find a suitable target, starting with components first
-        for (ComponentDefinition<? extends Implementation<?>> candidate : compositeType.getComponents().values()) {
-            Implementation<?> candidateImpl = candidate.getImplementation();
-            ComponentType<?, ?, ?> candidateType = candidateImpl.getComponentType();
-            for (ServiceDefinition service : candidateType.getServices().values()) {
-                Class<?> serviceInterface = service.getServiceContract().getInterfaceClass();
-                if (serviceInterface == null) {
-                    continue;
-                }
-                if (requiredInterface.equals(serviceInterface)) {
-                    targetUri = URI.create(candidate.getUri().toString() + service.getUri());
+        for (Component candidate : composite.getComponents()) {
+            ComponentType candidateType = candidate.getImplementation();
+            for (Service service : candidateType.getServices()) {
+                if(mappingService.isCompatible(requiredContract, service)) {
+                    targetService = (ComponentService) service;
                     break;
-                } else if (candidateUri == null && requiredInterface.isAssignableFrom(serviceInterface)) {
-                    candidateUri = URI.create(candidate.getUri().toString() + service.getUri());
                 }
             }
-            if (targetUri != null) {
+            if (targetService != null) {
                 break;
             }
         }
-        if (targetUri == null) {
-            targetUri = resolvePrimordial(requiredContract);
-        }
-        if (candidateUri != null) {
-            targetUri = candidateUri;
+        if (targetService == null) {
+            targetService = resolvePrimordial(requiredContract);
         }
-        if (targetUri != null) {
-            target.addTarget(targetUri);
+        if (targetService != null) {
+            target.getTargets().add(targetService);
         }
-        if (targetUri == null && required) {
-            String uri = target.getReferenceName().toString();
+        if (targetService == null && required) {
+            String uri = target.getName();
             throw new AutowireTargetNotFoundException("No suitable target found for", uri);
         }
     }
 
-    private URI resolvePrimordial(ServiceContract contract) {
-        Class<?> requiredClass = contract.getInterfaceClass();
-        for (Map.Entry<ServiceContract, URI> entry : hostAutowire.entrySet()) {
-            if (requiredClass.isAssignableFrom(entry.getKey().getInterfaceClass())) {
-                return entry.getValue();
+    private ComponentService resolvePrimordial(Contract contract) {
+        for (Map.Entry<ComponentService, URI> entry : hostAutowire.entrySet()) {
+            if (mappingService.isCompatible(contract, entry.getKey())) {
+                return entry.getKey();
             }
         }
         return null;

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=525717&r1=525716&r2=525717
==============================================================================
--- 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 Wed Apr  4 23:08:37 2007
@@ -37,6 +37,10 @@
 
 import javax.xml.stream.XMLInputFactory;
 
+import org.apache.tuscany.assembly.AssemblyFactory;
+import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.assembly.Contract;
+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.ExtensionActivator;
@@ -44,33 +48,29 @@
 import org.apache.tuscany.core.builder.ConnectorImpl;
 import org.apache.tuscany.core.component.ComponentManagerImpl;
 import org.apache.tuscany.core.component.SimpleWorkContext;
-import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
-import org.apache.tuscany.core.component.scope.ScopeRegistryImpl;
-import org.apache.tuscany.core.deployer.DeployerImpl;
 import org.apache.tuscany.core.monitor.NullMonitorFactory;
 import org.apache.tuscany.core.resolver.AutowireResolver;
 import org.apache.tuscany.core.resolver.DefaultAutowireResolver;
 import org.apache.tuscany.core.services.classloading.ClassLoaderRegistryImpl;
 import org.apache.tuscany.core.util.IOHelper;
+import org.apache.tuscany.core.wire.IDLMappingService;
 import org.apache.tuscany.host.MonitorFactory;
 import org.apache.tuscany.host.RuntimeInfo;
 import org.apache.tuscany.host.management.ManagementService;
 import org.apache.tuscany.host.monitor.FormatterRegistry;
 import org.apache.tuscany.host.runtime.InitializationException;
 import org.apache.tuscany.host.runtime.TuscanyRuntime;
-import org.apache.tuscany.spi.builder.BuilderRegistry;
+import org.apache.tuscany.idl.java.JavaInterface;
+import org.apache.tuscany.idl.java.impl.DefaultJavaFactory;
 import org.apache.tuscany.spi.builder.Connector;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.ComponentManager;
 import org.apache.tuscany.spi.component.RegistrationException;
-import org.apache.tuscany.spi.component.ScopeContainerMonitor;
 import org.apache.tuscany.spi.component.ScopeRegistry;
 import org.apache.tuscany.spi.component.TargetResolutionException;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.deployer.Deployer;
-import org.apache.tuscany.spi.idl.java.JavaServiceContract;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.services.classloading.ClassLoaderRegistry;
 import org.apache.tuscany.spi.services.management.TuscanyManagementService;
 import org.osoa.sca.ComponentContext;
@@ -244,7 +244,7 @@
 
     protected Bootstrapper createBootstrapper() {
         TuscanyManagementService tms = (TuscanyManagementService)getManagementService();
-        resolver = new DefaultAutowireResolver();
+        resolver = new DefaultAutowireResolver(new IDLMappingService());
         componentManager = new ComponentManagerImpl(tms, resolver);
         Connector connector = new ConnectorImpl(componentManager);
         return new DefaultBootstrapper(getMonitorFactory(), xmlFactory, componentManager, resolver, connector);
@@ -276,7 +276,7 @@
     protected <S, I extends S> void registerSystemComponent(URI uri, Class<S> type, I component)
         throws InitializationException {
         try {
-            JavaServiceContract<S> contract = new JavaServiceContract<S>(type);
+            ComponentService contract = createContract(type);
             componentManager.registerJavaObject(uri, contract, component);
             extensionRegistry.addExtension(type, component);
         } catch (RegistrationException e) {
@@ -284,13 +284,21 @@
         }
     }
 
+    private <S> ComponentService createContract(Class<S> type) {
+        AssemblyFactory factory = new DefaultAssemblyFactory();
+        ComponentService contract = factory.createComponentService();
+        JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
+        javaInterface.setJavaClass(type);
+        contract.setInterface(javaInterface);
+        return contract;
+    }
+
     protected <I> void registerSystemComponent(URI uri, List<Class<?>> types, I component)
         throws InitializationException {
         try {
-            List<JavaServiceContract<?>> contracts = new ArrayList<JavaServiceContract<?>>();
+            List<ComponentService> contracts = new ArrayList<ComponentService>();
             for (Class<?> type : types) {
-                contracts.add(new JavaServiceContract(type));
-
+                contracts.add(createContract(type));
             }
             componentManager.registerJavaObject(uri, contracts, component);
         } catch (RegistrationException e) {

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java Wed Apr  4 23:08:37 2007
@@ -24,12 +24,7 @@
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Property;
-import org.osoa.sca.annotations.Service;
-
+import org.apache.tuscany.spi.Monitor;
 import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.event.AbstractEventPublisher;
 import org.apache.tuscany.spi.services.store.DuplicateRecordException;
@@ -38,8 +33,11 @@
 import org.apache.tuscany.spi.services.store.StoreExpirationEvent;
 import org.apache.tuscany.spi.services.store.StoreMonitor;
 import org.apache.tuscany.spi.services.store.StoreWriteException;
-
-import org.apache.tuscany.api.annotation.Monitor;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Service;
 
 /**
  * Implements a non-durable, non-transactional store using a simple in-memory map

Added: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java?view=auto&rev=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java Wed Apr  4 23:08:37 2007
@@ -0,0 +1,118 @@
+/*
+ * 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.core.util;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.idl.DataType;
+import org.apache.tuscany.idl.Operation;
+
+/**
+ * Contains methods for mapping between an operation in a
+ * {@link org.apache.tuscany.spi.model.ServiceContract} and a method defined by
+ * a Java interface
+ * 
+ * @version $Rev$ $Date$
+ */
+public final class JavaIDLUtils {
+
+    private JavaIDLUtils() {
+    }
+
+    /**
+     * Return the method on the implementation class that matches the operation.
+     * 
+     * @param implClass the implementation class or interface
+     * @param operation the operation to match
+     * @return the method described by the operation
+     * @throws NoSuchMethodException if no such method exists
+     * @Deprecated
+     */
+    public static Method findMethod(Class<?> implClass, Operation operation) throws NoSuchMethodException {
+        String name = operation.getName();
+        Class<?>[] paramTypes = getPhysicalTypes(operation);
+        return implClass.getMethod(name, paramTypes);
+    }
+
+    /**
+     * @Deprecated
+     */
+    private static Class<?>[] getPhysicalTypes(Operation operation) {
+        DataType<List<DataType>> inputType = operation.getInputType();
+        if (inputType == null) {
+            return new Class[] {};
+        }
+        List<DataType> types = inputType.getLogical();
+        Class<?>[] javaTypes = new Class<?>[types.size()];
+        for (int i = 0; i < javaTypes.length; i++) {
+            Type physical = types.get(i).getPhysical();
+            if (physical instanceof Class<?>) {
+                javaTypes[i] = (Class<?>)physical;
+            } else {
+                throw new UnsupportedOperationException();
+            }
+        }
+        return javaTypes;
+    }
+
+    /**
+     * Searches a collection of operations for a match against the given method
+     * 
+     * @param method the method to match
+     * @param operations the operations to match against
+     * @return a matching operation or null
+     * @Deprecated
+     */
+    public static Operation findOperation(Method method, Collection<Operation> operations) {
+        for (Operation operation : operations) {
+            if (match(operation, method)) {
+                return operation;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Determines if the given operation matches the given method
+     * 
+     * @return true if the operation matches, false if does not
+     */
+    private static boolean match(Operation operation, Method method) {
+        Class<?>[] params = method.getParameterTypes();
+        DataType<List<DataType>> inputType = operation.getInputType();
+        List<DataType> types = inputType.getLogical();
+        boolean found = true;
+        if (types.size() == params.length && method.getName().equals(operation.getName())) {
+            for (int i = 0; i < params.length; i++) {
+                Class<?> clazz = params[i];
+                if (!clazz.equals(operation.getInputType().getLogical().get(i).getPhysical())) {
+                    found = false;
+                }
+            }
+        } else {
+            found = false;
+        }
+        return found;
+
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIDLUtils.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 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=auto&rev=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java Wed Apr  4 23:08:37 2007
@@ -0,0 +1,136 @@
+/*
+ * 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.core.wire;
+
+import java.util.List;
+
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.idl.DataType;
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class IDLMappingService {
+    public boolean isCompatible(Contract source, Contract target) {
+        return true;
+    }
+
+    public Operation map(Contract target, Operation sourceOp) {
+        return null;
+    }
+    
+    public boolean isCompatible(DataType source, DataType target) {
+        if(source == target) {
+            return true;
+        } else {
+            return target.getPhysical().isAssignableFrom(source.getPhysical());
+        }
+        
+    }
+    
+    public boolean isCompatible(Operation source, Operation target) {
+        if(!source.getName().equals(target.getName())) {
+            return false;
+        }
+        DataType<List<DataType>> inputType = source.getInputType();
+        DataType outputType = source.getOutputType();
+        
+        return true;
+    }
+
+    // FIXME: How to improve the performance for the lookup
+    private Operation getOperation(List<Operation> operations, String name) {
+        for (Operation op : operations) {
+            if (op.getName().equals(name)) {
+                return op;
+            }
+        }
+        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.getInterface().isRemotable() != target.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 (!silent) {
+                throw new IncompatibleServiceContractException("Interaction scopes do not match", source, target);
+            } else {
+                return false;
+            }
+        }
+
+        for (Operation operation : source.getInterface().getOperations()) {
+            Operation targetOperation = getOperation(target.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;
+        }
+
+        for (Operation operation : source.getCallbackInterface().getOperations()) {
+            Operation targetOperation = getOperation(target.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;
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IDLMappingService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java (from r525375, incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.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=525717&p1=incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java&r1=525375&p2=incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleContractExceptionFormatter.java Wed Apr  4 23:08:37 2007
@@ -20,27 +20,25 @@
 
 import java.io.PrintWriter;
 
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.host.monitor.ExceptionFormatter;
+import org.apache.tuscany.host.monitor.FormatterRegistry;
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
 import org.osoa.sca.annotations.Destroy;
 import org.osoa.sca.annotations.EagerInit;
 import org.osoa.sca.annotations.Reference;
 
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
-
-import org.apache.tuscany.host.monitor.ExceptionFormatter;
-import org.apache.tuscany.host.monitor.FormatterRegistry;
-
 /**
  * Formats {@link org.apache.tuscany.spi.wire.IncompatibleServiceContractException} for JDK logging
  *
  * @version $Rev$ $Date$
  */
 @EagerInit
-public class IncompatibleServiceContractExceptionFormatter implements ExceptionFormatter {
+public class IncompatibleContractExceptionFormatter implements ExceptionFormatter {
     private FormatterRegistry factory;
 
-    public IncompatibleServiceContractExceptionFormatter(@Reference FormatterRegistry factory) {
+    public IncompatibleContractExceptionFormatter(@Reference FormatterRegistry factory) {
         this.factory = factory;
         factory.register(this);
     }
@@ -58,12 +56,12 @@
         assert exception instanceof IncompatibleServiceContractException;
         IncompatibleServiceContractException e = (IncompatibleServiceContractException) exception;
         e.appendBaseMessage(writer);
-        ServiceContract<?> source = e.getSource();
+        Contract source = e.getSource();
         String sourceContractName = null;
         if (source != null) {
-            sourceContractName = source.getInterfaceName();
+            sourceContractName = source.getInterface().toString();
         }
-        Operation<?> sourceOperation = e.getSourceOperation();
+        Operation sourceOperation = e.getSourceOperation();
         String sourceOpName = null;
         if (sourceOperation != null) {
             sourceOpName = sourceOperation.getName();
@@ -73,12 +71,12 @@
         } else {
             writer.write("\nSource Contract: " + sourceContractName + "/" + sourceOpName);
         }
-        ServiceContract<?> target = e.getTarget();
+        Contract target = e.getTarget();
         String targetContractName = null;
         if (target != null) {
-            targetContractName = target.getInterfaceName();
+            targetContractName = target.getInterface().toString();
         }
-        Operation<?> targetOperation = e.getTargetOperation();
+        Operation targetOperation = e.getTargetOperation();
         String targetOpName = null;
         if (targetOperation != null) {
             targetOpName = targetOperation.getName();

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java Wed Apr  4 23:08:37 2007
@@ -18,8 +18,7 @@
  */
 package org.apache.tuscany.core.wire;
 
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.idl.Operation;
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -31,15 +30,10 @@
  */
 public class InvocationChainImpl implements InvocationChain {
     protected Operation operation;
-    protected PhysicalOperationDefinition physicalOperation;
     protected TargetInvoker targetInvoker;
     protected Interceptor interceptorChainHead;
     protected Interceptor interceptorChainTail;
 
-    public InvocationChainImpl(PhysicalOperationDefinition operation) {
-        this.physicalOperation = operation;
-    }
-
     public InvocationChainImpl(Operation operation) {
         assert operation != null;
         this.operation = operation;
@@ -47,10 +41,6 @@
 
     public Operation getOperation() {
         return operation;
-    }
-
-    public PhysicalOperationDefinition getPhysicalOperation() {
-        return physicalOperation;
     }
 
     public void setTargetInvoker(TargetInvoker invoker) {

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java Wed Apr  4 23:08:37 2007
@@ -21,15 +21,14 @@
 import java.net.URI;
 import java.util.LinkedList;
 
-import org.osoa.sca.ServiceRuntimeException;
-
+import org.apache.tuscany.spi.Scope;
 import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.services.work.WorkScheduler;
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.wire.Wire;
+import org.osoa.sca.ServiceRuntimeException;
 
 /**
  * Adds non-blocking behavior to an invocation chain

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=525717&r1=525716&r2=525717
==============================================================================
--- 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  4 23:08:37 2007
@@ -18,15 +18,17 @@
  */
 package org.apache.tuscany.core.wire;
 
+import java.util.List;
+
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.idl.Operation;
 import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
 import org.apache.tuscany.spi.wire.ProxyService;
 
 /**
  * Base class for wire service extensions
- *
+ * 
  * @version $Rev$ $Date$
  */
 public abstract class ProxyServiceExtension implements ProxyService {
@@ -36,23 +38,30 @@
         this.context = context;
     }
 
-    public boolean checkCompatibility(ServiceContract<?> source,
-                                      ServiceContract<?> target,
-                                      boolean ignoreCallback,
-                                      boolean silent)
+    // FIXME: How to improve the performance for the lookup
+    private Operation getOperation(List<Operation> operations, String name) {
+        for (Operation op : operations) {
+            if (op.getName().equals(name)) {
+                return op;
+            }
+        }
+        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.isRemotable() != target.isRemotable()) {
+        if (source.getInterface().isRemotable() != target.getInterface().isRemotable()) {
             if (!silent) {
                 throw new IncompatibleServiceContractException("Remotable settings do not match", source, target);
             } else {
                 return false;
             }
         }
-        if (source.isConversational() != target.isConversational()) {
+        if (source.getInterface().isConversational() != target.getInterface().isConversational()) {
             if (!silent) {
                 throw new IncompatibleServiceContractException("Interaction scopes do not match", source, target);
             } else {
@@ -60,8 +69,8 @@
             }
         }
 
-        for (Operation<?> operation : source.getOperations().values()) {
-            Operation<?> targetOperation = target.getOperations().get(operation.getName());
+        for (Operation operation : source.getInterface().getOperations()) {
+            Operation targetOperation = getOperation(target.getInterface().getOperations(), operation.getName());
             if (targetOperation == null) {
                 if (!silent) {
                     throw new IncompatibleServiceContractException("Operation not found on target", source, target);
@@ -72,7 +81,7 @@
             if (!operation.equals(targetOperation)) {
                 if (!silent) {
                     throw new IncompatibleServiceContractException("Target operations are not compatible", source,
-                        target);
+                                                                   target);
                 } else {
                     return false;
                 }
@@ -83,33 +92,29 @@
             return true;
         }
 
-        for (Operation<?> operation : source.getCallbackOperations().values()) {
-            Operation<?> targetOperation = target.getCallbackOperations().get(operation.getName());
-            if (targetOperation == null) {
-                if (!silent) {
-                    throw new IncompatibleServiceContractException("Callback operation not found on target",
-                        source,
-                        target,
-                        null,
-                        targetOperation);
-                } else {
-                    return false;
+        if (source.getCallbackInterface() != null) {
+            for (Operation operation : source.getCallbackInterface().getOperations()) {
+                Operation targetOperation = getOperation(target.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;
+                if (!operation.equals(targetOperation)) {
+                    if (!silent) {
+                        throw new IncompatibleServiceContractException("Target callback operation is not compatible",
+                                                                       source, target, operation, targetOperation);
+                    } else {
+                        return false;
+                    }
                 }
             }
         }
         return true;
     }
-
 
 }

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=525717&r1=525716&r2=525717
==============================================================================
--- 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  4 23:08:37 2007
@@ -22,13 +22,13 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+
 import javax.xml.namespace.QName;
 
+import org.apache.tuscany.assembly.Contract;
+import org.apache.tuscany.idl.Operation;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.TargetResolutionException;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
 import org.apache.tuscany.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.Wire;
 
@@ -41,15 +41,11 @@
     private URI sourceUri;
     private URI targetUri;
     private QName bindingType;
-    private ServiceContract sourceContract;
-    private ServiceContract targetContract;
+    private Contract sourceContract;
+    private Contract targetContract;
     private boolean optimizable;
-    private Map<Operation<?>, InvocationChain> chains = new HashMap<Operation<?>, InvocationChain>();
-    private Map<Operation<?>, InvocationChain> callbackChains = new HashMap<Operation<?>, InvocationChain>();
-    private Map<PhysicalOperationDefinition, InvocationChain> pChains =
-        new HashMap<PhysicalOperationDefinition, InvocationChain>();
-    private Map<PhysicalOperationDefinition, InvocationChain> pCallbackChains =
-        new HashMap<PhysicalOperationDefinition, InvocationChain>();
+    private Map<Operation, InvocationChain> chains = new HashMap<Operation, InvocationChain>();
+    private Map<Operation, InvocationChain> callbackChains = new HashMap<Operation, InvocationChain>();
     private AtomicComponent target;
 
     /**
@@ -88,20 +84,20 @@
     }
 
 
-    public ServiceContract getSourceContract() {
+    public Contract getSourceContract() {
         return sourceContract;
     }
 
-    public void setSourceContract(ServiceContract contract) {
+    public void setSourceContract(Contract contract) {
         this.sourceContract = contract;
     }
 
 
-    public ServiceContract getTargetContract() {
+    public Contract getTargetContract() {
         return targetContract;
     }
 
-    public void setTargetContract(ServiceContract contract) {
+    public void setTargetContract(Contract contract) {
         this.targetContract = contract;
     }
 
@@ -124,36 +120,20 @@
         this.target = target;
     }
 
-    public Map<Operation<?>, InvocationChain> getInvocationChains() {
+    public Map<Operation, InvocationChain> getInvocationChains() {
         return Collections.unmodifiableMap(chains);
     }
 
-    public void addInvocationChain(Operation<?> operation, InvocationChain chain) {
+    public void addInvocationChain(Operation operation, InvocationChain chain) {
         chains.put(operation, chain);
     }
 
-    public void addInvocationChain(PhysicalOperationDefinition operation, InvocationChain chain) {
-        pChains.put(operation, chain);
-    }
-
-    public Map<PhysicalOperationDefinition, InvocationChain> getPhysicalInvocationChains() {
-        return Collections.unmodifiableMap(pChains);
-    }
-
-    public Map<Operation<?>, InvocationChain> getCallbackInvocationChains() {
+    public Map<Operation, InvocationChain> getCallbackInvocationChains() {
         return Collections.unmodifiableMap(callbackChains);
     }
 
-    public void addCallbackInvocationChain(Operation<?> operation, InvocationChain chain) {
+    public void addCallbackInvocationChain(Operation operation, InvocationChain chain) {
         callbackChains.put(operation, chain);
-    }
-
-    public Map<PhysicalOperationDefinition, InvocationChain> getCallbackPhysicalInvocationChains() {
-        return Collections.unmodifiableMap(pCallbackChains);
-    }
-
-    public void addCallbackInvocationChain(PhysicalOperationDefinition operation, InvocationChain chain) {
-        pCallbackChains.put(operation, chain);
     }
 
 }

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=525717&r1=525716&r2=525717
==============================================================================
--- 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  4 23:08:37 2007
@@ -22,6 +22,8 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.tuscany.idl.Interface;
+import org.apache.tuscany.idl.java.JavaInterface;
 import org.apache.tuscany.spi.ObjectCreationException;
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.component.TargetResolutionException;
@@ -31,8 +33,8 @@
 
 /**
  * Uses a wire to return an object instance
- * @Deprecated 
- *
+ * 
+ * @Deprecated
  * @version $Rev$ $Date$
  */
 public class WireObjectFactory<T> implements ObjectFactory<T> {
@@ -45,9 +47,9 @@
 
     /**
      * Constructor.
-     *
-     * @param interfaze   the interface to inject on the client
-     * @param wire        the backing wire
+     * 
+     * @param interfaze the interface to inject on the client
+     * @param wire the backing wire
      * @param proxyService the wire service to create the proxy
      * @throws NoMethodForOperationException
      */
@@ -57,11 +59,16 @@
         this.wire = wire;
         this.proxyService = proxyService;
         this.mappings = WireUtils.createInterfaceToWireMapping(interfaze, wire);
-        if (wire.isOptimizable()
-            && wire.getSourceContract().getInterfaceClass() != null
-            && interfaze.isAssignableFrom(wire.getSourceContract().getInterfaceClass())) {
-            optimizable = true;
+        if (wire.isOptimizable()) {
+            Interface iface = wire.getSourceContract().getInterface();
+            if (iface instanceof JavaInterface) {
+                Class type = ((JavaInterface)iface).getJavaClass();
+                if (interfaze.isAssignableFrom(type)) {
+                    optimizable = true;
+                }
+            }
         }
+
     }
 
     public T getInstance() throws ObjectCreationException {
@@ -80,6 +87,5 @@
             return interfaze.cast(proxyService.createProxy(interfaze, wire, newChains));
         }
     }
-
 
 }

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=525717&r1=525716&r2=525717
==============================================================================
--- 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  4 23:08:37 2007
@@ -22,14 +22,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod;
-import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod2;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.core.util.JavaIDLUtils;
+import org.apache.tuscany.idl.Operation;
 import org.apache.tuscany.spi.wire.ChainHolder;
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.InvocationChain;
-import org.apache.tuscany.spi.wire.ProxyCreationException;
 import org.apache.tuscany.spi.wire.Wire;
 
 /**
@@ -54,35 +51,16 @@
      */
     public static Map<Method, ChainHolder> createInterfaceToWireMapping(Class<?> interfaze, Wire wire)
         throws NoMethodForOperationException {
-        Map<Operation<?>, InvocationChain> invocationChains = wire.getInvocationChains();
+        Map<Operation, InvocationChain> invocationChains = wire.getInvocationChains();
 
         Map<Method, ChainHolder> chains = new HashMap<Method, ChainHolder>(invocationChains.size());
-        for (Map.Entry<Operation<?>, InvocationChain> entry : invocationChains.entrySet()) {
+        for (Map.Entry<Operation, InvocationChain> entry : invocationChains.entrySet()) {
             Operation operation = entry.getKey();
             try {
-                Method method = findMethod(interfaze, operation);
+                Method method = JavaIDLUtils.findMethod(interfaze, operation);
                 chains.put(method, new ChainHolder(entry.getValue()));
             } catch (NoSuchMethodException e) {
                 throw new NoMethodForOperationException(operation.getName());
-            }
-        }
-        return chains;
-    }
-
-    public static Map<Method, InvocationChain> createInterfaceToWireMapping2(Class<?> interfaze, Wire wire)
-        throws NoMethodForOperationException {
-        Map<PhysicalOperationDefinition, InvocationChain> invocationChains = wire.getPhysicalInvocationChains();
-
-        Map<Method, InvocationChain> chains = new HashMap<Method, InvocationChain>(invocationChains.size());
-        for (Map.Entry<PhysicalOperationDefinition, InvocationChain> entry : invocationChains.entrySet()) {
-            PhysicalOperationDefinition operation = entry.getKey();
-            try {
-                Method method = findMethod2(interfaze, operation);
-                chains.put(method, entry.getValue());
-            } catch (NoSuchMethodException e) {
-                throw new NoMethodForOperationException(operation.getName());
-            } catch (ClassNotFoundException e) {
-                throw new ProxyCreationException(e);
             }
         }
         return chains;

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java Wed Apr  4 23:08:37 2007
@@ -18,12 +18,11 @@
  */
 package org.apache.tuscany.core.binding.local;
 
-import java.net.URI;
+import junit.framework.TestCase;
 
+import org.apache.tuscany.assembly.CompositeService;
+import org.apache.tuscany.assembly.impl.CompositeServiceImpl;
 import org.apache.tuscany.spi.component.ServiceBinding;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-import junit.framework.TestCase;
 
 /**
  * @version $Rev$ $Date$
@@ -32,8 +31,8 @@
 
     public void testBuild() throws Exception {
         LocalBindingBuilder builder = new LocalBindingBuilder();
-        ServiceDefinition def = new ServiceDefinition();
-        def.setUri(new URI("#foo"));
+        CompositeService def = new CompositeServiceImpl();
+        def.setName("foo");
         ServiceBinding binding = builder.build(def, null, null);
         assertEquals(LocalServiceBinding.class, binding.getClass());
     }

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java Wed Apr  4 23:08:37 2007
@@ -18,19 +18,18 @@
  */
 package org.apache.tuscany.core.binding.local;
 
-import java.lang.reflect.Type;
+import junit.framework.TestCase;
 
-import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.core.wire.InvocationChainImpl;
+import org.apache.tuscany.core.wire.WireImpl;
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.idl.impl.OperationImpl;
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.MessageImpl;
 import org.apache.tuscany.spi.wire.Wire;
 
-import junit.framework.TestCase;
-import org.apache.tuscany.core.wire.InvocationChainImpl;
-import org.apache.tuscany.core.wire.WireImpl;
-
 /**
  * @version $Rev$ $Date$
  */
@@ -41,7 +40,8 @@
      * the originating error is unwrapped
      */
     public void testThrowableTargetInvocation() throws Exception {
-        Operation<Type> operation = new Operation<Type>("echo", null, null, null);
+        Operation operation = new OperationImpl();
+        operation.setName("echo");
         Interceptor head = new ErrorInterceptor();
         InvocationChain chain = new InvocationChainImpl(operation);
         chain.addInterceptor(head);

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java Wed Apr  4 23:08:37 2007
@@ -18,19 +18,19 @@
  */
 package org.apache.tuscany.core.binding.local;
 
-import java.lang.reflect.Type;
 import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.tuscany.spi.model.Operation;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.idl.impl.OperationImpl;
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.MessageImpl;
 import org.apache.tuscany.spi.wire.Wire;
-
-import junit.framework.TestCase;
 import org.easymock.EasyMock;
 
 /**
@@ -62,7 +62,8 @@
         message.setBody("foo");
         Message response = new MessageImpl();
         response.setBody("response");
-        Operation<Type> operation = new Operation<Type>("echo", null, null, null);
+        Operation operation = new OperationImpl();
+        operation.setName("echo");
         head = EasyMock.createMock(Interceptor.class);
         EasyMock.expect(head.invoke(EasyMock.isA(Message.class))).andReturn(response);
         EasyMock.replay(head);
@@ -70,7 +71,7 @@
         EasyMock.expect(chain.getTargetInvoker()).andReturn(null);
         EasyMock.expect(chain.getHeadInterceptor()).andReturn(head);
         EasyMock.replay(chain);
-        Map<Operation<?>, InvocationChain> chains = new HashMap<Operation<?>, InvocationChain>();
+        Map<Operation, InvocationChain> chains = new HashMap<Operation, InvocationChain>();
         chains.put(operation, chain);
         wire = EasyMock.createMock(Wire.class);
         EasyMock.expect(wire.getCallbackInvocationChains()).andReturn(chains);

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java Wed Apr  4 23:08:37 2007
@@ -18,19 +18,18 @@
  */
 package org.apache.tuscany.core.binding.local;
 
-import java.lang.reflect.Type;
+import junit.framework.TestCase;
 
-import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.core.wire.InvocationChainImpl;
+import org.apache.tuscany.core.wire.WireImpl;
+import org.apache.tuscany.idl.Operation;
+import org.apache.tuscany.idl.impl.OperationImpl;
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.MessageImpl;
 import org.apache.tuscany.spi.wire.Wire;
 
-import junit.framework.TestCase;
-import org.apache.tuscany.core.wire.InvocationChainImpl;
-import org.apache.tuscany.core.wire.WireImpl;
-
 /**
  * @version $Rev$ $Date$
  */
@@ -54,7 +53,8 @@
     @SuppressWarnings("unchecked")
     protected void setUp() throws Exception {
         super.setUp();
-        Operation<Type> operation = new Operation<Type>("echo", null, null, null);
+        Operation operation = new OperationImpl();
+        operation.setName("echo");
         InvocationChain chain = new InvocationChainImpl(operation);
         chain.addInterceptor(new InsidiuousInterceptor());
         Wire wire = new WireImpl();

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=525717&r1=525716&r2=525717
==============================================================================
--- 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  4 23:08:37 2007
@@ -20,25 +20,29 @@
 
 import java.net.URI;
 
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.assembly.Contract;
+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.idl.Operation;
+import org.apache.tuscany.idl.impl.OperationImpl;
+import org.apache.tuscany.idl.java.JavaInterface;
+import org.apache.tuscany.idl.java.impl.DefaultJavaFactory;
 import org.apache.tuscany.spi.wire.InvocationChain;
 import org.apache.tuscany.spi.wire.Message;
 import org.apache.tuscany.spi.wire.MessageImpl;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.wire.Wire;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.wire.InvocationChainImpl;
-import org.apache.tuscany.core.wire.WireImpl;
 import org.easymock.EasyMock;
 
 /**
  * @version $Rev$ $Date$
  */
 public class LocalTargetInvokerTestCase extends TestCase {
-    private ServiceContract<Object> serviceContract;
-    private Operation<Object> operation;
+    private Contract serviceContract;
+    private Operation operation;
 
     public void testInvoke() {
         TargetInvoker targetInvoker = EasyMock.createMock(TargetInvoker.class);
@@ -56,10 +60,10 @@
     }
 
     public void testCallbackSetInvoke() {
-        ServiceContract<?> contract = new ServiceContract<Object>() {
-
-        };
-        contract.setCallbackClass(Object.class);
+        Contract contract = new ComponentServiceImpl();
+        JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
+        javaInterface.setJavaClass(Object.class);
+        contract.setCallbackInterface(javaInterface);
         TargetInvoker targetInvoker = EasyMock.createMock(TargetInvoker.class);
         EasyMock.expect(targetInvoker.invoke(EasyMock.isA(Message.class))).andReturn(new MessageImpl());
         EasyMock.replay(targetInvoker);
@@ -100,14 +104,12 @@
         EasyMock.verify(targetInvoker);
     }
 
-
     protected void setUp() throws Exception {
         super.setUp();
-        serviceContract = new ServiceContract<Object>() {
-        };
-        operation = new Operation<Object>("foo", null, null, null);
+        serviceContract = new ComponentServiceImpl();
+        operation = new OperationImpl();
+        operation.setName("foo");
     }
-
 
     private class TestException extends RuntimeException {
 

Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java?view=diff&rev=525717&r1=525716&r2=525717
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java Wed Apr  4 23:08:37 2007
@@ -18,8 +18,19 @@
  */
 package org.apache.tuscany.core.builder;
 
-import java.net.URI;
+import junit.framework.TestCase;
 
+import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.assembly.CompositeReference;
+import org.apache.tuscany.assembly.CompositeService;
+import org.apache.tuscany.assembly.Multiplicity;
+import org.apache.tuscany.assembly.impl.ComponentServiceImpl;
+import org.apache.tuscany.assembly.impl.CompositeReferenceImpl;
+import org.apache.tuscany.assembly.impl.CompositeServiceImpl;
+import org.apache.tuscany.core.binding.local.LocalBindingBuilder;
+import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
+import org.apache.tuscany.core.binding.local.LocalReferenceBinding;
+import org.apache.tuscany.core.binding.local.LocalServiceBinding;
 import org.apache.tuscany.spi.builder.BuilderRegistry;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.Reference;
@@ -27,15 +38,6 @@
 import org.apache.tuscany.spi.component.Service;
 import org.apache.tuscany.spi.component.ServiceBinding;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.Multiplicity;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.binding.local.LocalBindingBuilder;
-import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
-import org.apache.tuscany.core.binding.local.LocalReferenceBinding;
-import org.apache.tuscany.core.binding.local.LocalServiceBinding;
 import org.easymock.EasyMock;
 
 /**
@@ -49,8 +51,11 @@
     public void testNoServiceBindings() throws Exception {
         ServiceBinding binding = EasyMock.createNiceMock(ServiceBinding.class);
         EasyMock.replay(binding);
-        ServiceDefinition definition = new ServiceDefinition(URI.create("#foo"), null, false);
-        definition.setTarget(new URI("foo"));
+        CompositeService definition = new CompositeServiceImpl();
+        definition.setName("foo");
+        ComponentService componentService = new ComponentServiceImpl();
+        componentService.setName("foo");
+        definition.setPromotedService(componentService);
         EasyMock.replay(deploymentContext);
         EasyMock.replay(parent);
 
@@ -65,7 +70,9 @@
     public void testReferenceBindingBuilderDispatch() throws Exception {
         ReferenceBinding binding = EasyMock.createNiceMock(ReferenceBinding.class);
         EasyMock.replay(binding);
-        ReferenceDefinition definition = new ReferenceDefinition(URI.create("#foo"), null, Multiplicity.ONE_ONE);
+        CompositeReference definition = new CompositeReferenceImpl();
+        definition.setName("foo");
+        definition.setMultiplicity(Multiplicity.ONE_ONE);
         EasyMock.replay(deploymentContext);
         EasyMock.replay(parent);
 



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