You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/08/09 20:51:18 UTC

svn commit: r430113 - in /incubator/tuscany/java/sca: core/src/main/java/org/apache/tuscany/core/builder/ core/src/main/java/org/apache/tuscany/core/implementation/ core/src/main/java/org/apache/tuscany/core/implementation/composite/ core/src/main/java...

Author: jmarino
Date: Wed Aug  9 11:51:14 2006
New Revision: 430113

URL: http://svn.apache.org/viewvc?rev=430113&view=rev
Log:
move callback model information from Java-specific extensions to the general model; prep for moving wire creation entirely to the wire service

Removed:
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaMappedCallback.java
Modified:
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaMappedService.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaServiceContract.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ProcessorUtils.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/InterfaceJavaLoader.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ProcessorUtilsServiceTestCase.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceCallbackTestCase.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Wed Aug  9 11:51:14 2006
@@ -271,7 +271,7 @@
         SCAObject<?> target = parent.getChild(targetName.getPartName());
         if (target == null) {
             String refName = sourceWire.getReferenceName();
-            BuilderConfigException e = new BuilderConfigException("Target not found for reference" + refName);
+            BuilderConfigException e = new BuilderConfigException("Target not found for reference " + refName);
             e.setIdentifier(targetName.getQualifiedName());
             throw e;
         }

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaMappedService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaMappedService.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaMappedService.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaMappedService.java Wed Aug  9 11:51:14 2006
@@ -16,6 +16,8 @@
  */
 package org.apache.tuscany.core.implementation;
 
+import java.lang.reflect.Member;
+
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.model.ServiceDefinition;
 
@@ -29,7 +31,7 @@
  */
 public class JavaMappedService extends ServiceDefinition {
     private Class<?> serviceInterface;
-    private JavaMappedCallback callbackReference;
+    private Member callbackMember;
 
     public JavaMappedService() {
     }
@@ -42,6 +44,15 @@
         super(name, contract, remotable);
     }
 
+    public JavaMappedService(String name,
+                             ServiceContract contract,
+                             boolean remotable,
+                             String callbackRefName,
+                             Member callbackMember) {
+        super(name, contract, remotable, callbackRefName);
+        this.callbackMember = callbackMember;
+    }
+
     public JavaMappedService(String name, ServiceContract contract, Class<?> serviceInterface, boolean remotable) {
         super(name, contract, remotable);
         this.serviceInterface = serviceInterface;
@@ -67,21 +78,12 @@
         this.serviceInterface = serviceInterface;
     }
 
-    /**
-     * Returns the Callback Reference for this service.
-     *
-     * @return the Callback Reference for this service
-     */
-    public JavaMappedCallback getCallbackReference() {
-        return callbackReference;
+    public Member getCallbackMember() {
+        return callbackMember;
     }
 
-    /**
-     * Sets the Callback Reference for this service.
-     *
-     * @param callbackReference the Callback Reference for this service
-     */
-    public void setCallbackReference(JavaMappedCallback callbackReference) {
-        this.callbackReference = callbackReference;
+    public void setCallbackMember(Member callbackMember) {
+        this.callbackMember = callbackMember;
     }
+
 }

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaServiceContract.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaServiceContract.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaServiceContract.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/JavaServiceContract.java Wed Aug  9 11:51:14 2006
@@ -24,42 +24,16 @@
  * @version $Rev$ $Date$
  */
 public class JavaServiceContract extends ServiceContract {
-    private String interfaceName;
-    private String callbackName;
-    private Class<?> callbackClass;
 
     public JavaServiceContract() {
     }
 
     public JavaServiceContract(String interfaceName) {
-        this.interfaceName = interfaceName;
+        super(interfaceName);
     }
 
     public JavaServiceContract(Class<?> interfaceClass) {
         super(interfaceClass);
     }
 
-    public String getInterfaceName() {
-        return interfaceName;
-    }
-
-    public void setInterfaceName(String interfaceName) {
-        this.interfaceName = interfaceName;
-    }
-
-    public String getCallbackName() {
-        return callbackName;
-    }
-
-    public void setCallbackName(String callbackName) {
-        this.callbackName = callbackName;
-    }
-
-    public Class<?> getCallbackClass() {
-        return callbackClass;
-    }
-
-    public void setCallbackClass(Class<?> callbackClass) {
-        this.callbackClass = callbackClass;
-    }
 }

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java Wed Aug  9 11:51:14 2006
@@ -32,8 +32,6 @@
 import org.apache.tuscany.spi.model.CompositeImplementation;
 import org.apache.tuscany.spi.model.Implementation;
 import org.apache.tuscany.spi.model.Include;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ReferenceTarget;
 import org.apache.tuscany.spi.model.ServiceDefinition;
 
 /**
@@ -67,7 +65,7 @@
         // FIXME is this right?
         List<BoundReferenceDefinition<? extends Binding>> allBoundReferences =
             new ArrayList<BoundReferenceDefinition<? extends Binding>>();
-        
+
         for (Object referenceTarget : componentType.getReferences().values()) {
             if (referenceTarget instanceof BoundReferenceDefinition<?>) {
                 allBoundReferences.add((BoundReferenceDefinition<? extends Binding>) referenceTarget);

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java Wed Aug  9 11:51:14 2006
@@ -29,17 +29,16 @@
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.ReferenceTarget;
 import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.OutboundInvocationChain;
 import org.apache.tuscany.spi.wire.OutboundWire;
 
 import org.apache.tuscany.core.implementation.ConstructorDefinition;
-import org.apache.tuscany.core.implementation.JavaMappedCallback;
 import org.apache.tuscany.core.implementation.JavaMappedProperty;
 import org.apache.tuscany.core.implementation.JavaMappedReference;
 import org.apache.tuscany.core.implementation.JavaMappedService;
-import org.apache.tuscany.core.implementation.JavaServiceContract;
 import org.apache.tuscany.core.implementation.PojoComponentType;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
 import org.apache.tuscany.core.injection.MethodEventInvoker;
@@ -128,10 +127,9 @@
 
         for (JavaMappedService service : componentType.getServices().values()) {
             // setup callback injection sites
-            JavaMappedCallback callback = service.getCallbackReference();
-            if (callback != null) {
+            if (service.getCallbackReferenceName() != null) {
                 // Only if there is a callback reference in the service
-                configuration.addCallbackSite(callback.getName(), callback.getMember());
+                configuration.addCallbackSite(service.getCallbackReferenceName(), service.getCallbackMember());
             }
             component.addInboundWire(createWire(service));
         }
@@ -164,8 +162,8 @@
         }
         // FIXME Using JavaServiceContract for now; this may be ok, but if it's not, then getCallbackClass
         //       will need to be promoted to ServiceContract
-        JavaServiceContract jsc = (JavaServiceContract) def.getServiceContract();
-        Class<?> callbackInterface = jsc.getCallbackClass();
+        ServiceContract contract = def.getServiceContract();
+        Class<?> callbackInterface = contract.getCallbackClass();
         if (callbackInterface != null) {
             wire.setCallbackInterface(callbackInterface);
             for (Method callbackMethod : callbackInterface.getMethods()) {
@@ -194,12 +192,9 @@
             chain.addInterceptor(new InvokerInterceptor());
             wire.addInvocationChain(method, chain);
         }
-        // FIXME Using JavaServiceContract for now; this may be ok, but if it's not, then getCallbackClass
-        //       will need to be promoted to ServiceContract
-        JavaServiceContract jsc = (JavaServiceContract) service.getServiceContract();
-        Class<?> callbackInterface = jsc.getCallbackClass();
-        if (callbackInterface != null) {
-            wire.setCallbackReferenceName(service.getCallbackReference().getName());
+        String callbackReferenceName = service.getCallbackReferenceName();
+        if (callbackReferenceName != null) {
+            wire.setCallbackReferenceName(callbackReferenceName);
         }
         return wire;
     }

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java Wed Aug  9 11:51:14 2006
@@ -32,6 +32,7 @@
 
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.model.ServiceContract;
 
 import org.apache.tuscany.core.implementation.ConstructorDefinition;
 import org.apache.tuscany.core.implementation.ImplementationProcessorSupport;
@@ -380,7 +381,7 @@
         reference.setName(name);
         reference.setMember(member);
         reference.setRequired(false);
-        JavaServiceContract contract = new JavaServiceContract();
+        ServiceContract contract = new JavaServiceContract();
         String interfaceName = getBaseName(paramType);
         contract.setInterfaceName(interfaceName);
         contract.setInterfaceClass(paramType);

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ProcessorUtils.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ProcessorUtils.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ProcessorUtils.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ProcessorUtils.java Wed Aug  9 11:51:14 2006
@@ -24,6 +24,7 @@
 
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.model.InteractionScope;
+import org.apache.tuscany.spi.model.ServiceContract;
 
 import org.apache.tuscany.core.implementation.JavaMappedProperty;
 import org.apache.tuscany.core.implementation.JavaMappedReference;
@@ -50,8 +51,7 @@
         JavaMappedService service = new JavaMappedService();
         service.setName(JavaIntrospectionHelper.getBaseName(interfaze));
         service.setRemotable(interfaze.getAnnotation(Remotable.class) != null);
-        service.setServiceInterface(interfaze);
-        JavaServiceContract contract = new JavaServiceContract();
+        ServiceContract contract = new JavaServiceContract();
         contract.setInterfaceClass(interfaze);
         Scope interactionScope = interfaze.getAnnotation(Scope.class);
         if (interactionScope == null) {
@@ -75,7 +75,7 @@
      * @param contract  the service contract the callback is associated wth
      * @throws IllegalCallbackException
      */
-    public static void processCallback(Class<?> interfaze, JavaServiceContract contract)
+    public static void processCallback(Class<?> interfaze, ServiceContract contract)
         throws IllegalCallbackException {
         Callback callback = interfaze.getAnnotation(Callback.class);
         if (callback != null && !Void.class.equals(callback.value())) {
@@ -236,7 +236,7 @@
                 "Name specified by @Constructor does not match autowire name at " + (pos + 1));
         }
         reference.setName(name);
-        JavaServiceContract contract = new JavaServiceContract();
+        ServiceContract contract = new JavaServiceContract();
         contract.setInterfaceClass(param);
         reference.setServiceContract(contract);
         type.getReferences().put(name, reference);
@@ -334,7 +334,7 @@
         }
         reference.setName(name);
         reference.setRequired(refAnnotation.required());
-        JavaServiceContract contract = new JavaServiceContract();
+        ServiceContract contract = new JavaServiceContract();
         contract.setInterfaceClass(param);
         reference.setServiceContract(contract);
         type.getReferences().put(name, reference);

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java Wed Aug  9 11:51:14 2006
@@ -21,6 +21,7 @@
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.model.ServiceContract;
 
 /**
  * Processes an {@link @Reference} annotation, updating the component type with corresponding {@link
@@ -66,7 +67,7 @@
         reference.setAutowire(autowire);
         reference.setRequired(required);
         reference.setName(name);
-        JavaServiceContract contract = new JavaServiceContract();
+        ServiceContract contract = new JavaServiceContract();
         Class<?> interfaceType = method.getParameterTypes()[0];
         String interfaceName = getBaseName(interfaceType);
         contract.setInterfaceName(interfaceName);
@@ -103,7 +104,7 @@
         reference.setRequired(required);
         reference.setAutowire(autowire);
         reference.setName(name);
-        JavaServiceContract contract = new JavaServiceContract();
+        ServiceContract contract = new JavaServiceContract();
         Class<?> interfaceType = field.getType();
         String interfaceName = getBaseName(interfaceType);
         contract.setInterfaceName(interfaceName);
@@ -117,7 +118,7 @@
     public void visitConstructor(CompositeComponent<?> parent, Constructor<?> constructor,
                                  PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
                                  DeploymentContext context) throws ProcessingException {
-        
+
     }
 
 

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java Wed Aug  9 11:51:14 2006
@@ -22,13 +22,12 @@
 
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.model.ServiceContract;
 
 import org.apache.tuscany.core.implementation.ImplementationProcessorSupport;
-import org.apache.tuscany.core.implementation.JavaMappedCallback;
 import org.apache.tuscany.core.implementation.JavaMappedProperty;
 import org.apache.tuscany.core.implementation.JavaMappedReference;
 import org.apache.tuscany.core.implementation.JavaMappedService;
-import org.apache.tuscany.core.implementation.JavaServiceContract;
 import org.apache.tuscany.core.implementation.PojoComponentType;
 import org.apache.tuscany.core.implementation.ProcessingException;
 import static org.apache.tuscany.core.implementation.processor.ProcessorUtils.createService;
@@ -98,7 +97,7 @@
         JavaMappedService callbackService = null;
         Class<?> callbackClass = method.getParameterTypes()[0];
         for (JavaMappedService service : type.getServices().values()) {
-            JavaServiceContract serviceContract = (JavaServiceContract) service.getServiceContract();
+            ServiceContract serviceContract = service.getServiceContract();
             if (serviceContract.getCallbackClass().equals(callbackClass)) {
                 callbackService = service;
             }
@@ -106,8 +105,8 @@
         if (callbackService == null) {
             throw new IllegalCallbackException("Callback type does not match a service callback interface");
         }
-        JavaMappedCallback callback = new JavaMappedCallback(name, method, callbackClass);
-        callbackService.setCallbackReference(callback);
+        callbackService.setCallbackReferenceName(name);
+        callbackService.setCallbackMember(method);
     }
 
     public void visitField(CompositeComponent<?> parent, Field field,
@@ -122,7 +121,7 @@
         JavaMappedService callbacksService = null;
         Class<?> callbackClass = field.getType();
         for (JavaMappedService service : type.getServices().values()) {
-            JavaServiceContract serviceContract = (JavaServiceContract) service.getServiceContract();
+            ServiceContract serviceContract = service.getServiceContract();
             if (serviceContract.getCallbackClass().equals(callbackClass)) {
                 callbacksService = service;
             }
@@ -130,8 +129,8 @@
         if (callbacksService == null) {
             throw new IllegalCallbackException("Callback type does not match a service callback interface");
         }
-        JavaMappedCallback callback = new JavaMappedCallback(name, field, callbackClass);
-        callbacksService.setCallbackReference(callback);
+        callbacksService.setCallbackReferenceName(name);
+        callbacksService.setCallbackMember(field);
     }
 
 

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/InterfaceJavaLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/InterfaceJavaLoader.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/InterfaceJavaLoader.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/InterfaceJavaLoader.java Wed Aug  9 11:51:14 2006
@@ -23,21 +23,23 @@
 import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
 import org.osoa.sca.annotations.Constructor;
 
-import org.apache.tuscany.core.implementation.JavaServiceContract;
+import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.LoaderExtension;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.loader.LoaderUtil;
-import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.model.ServiceContract;
+
+import org.apache.tuscany.core.implementation.JavaServiceContract;
 
 /**
  * Loads a Java interface definition from an XML-based assembly file
  *
  * @version $Rev$ $Date$
  */
-public class InterfaceJavaLoader extends LoaderExtension<JavaServiceContract> {
+public class InterfaceJavaLoader extends LoaderExtension<ServiceContract> {
     public static final QName INTERFACE_JAVA = new QName(XML_NAMESPACE_1_0, "interface.java");
 
     @Constructor({"registry"})
@@ -49,13 +51,11 @@
         return INTERFACE_JAVA;
     }
 
-    public JavaServiceContract load(CompositeComponent parent,
-                                    XMLStreamReader reader,
-                                    DeploymentContext deploymentContext)
+    public ServiceContract load(CompositeComponent parent, XMLStreamReader reader, DeploymentContext deploymentContext)
         throws XMLStreamException, LoaderException {
 
         assert INTERFACE_JAVA.equals(reader.getName());
-        JavaServiceContract serviceContract = new JavaServiceContract();
+        ServiceContract serviceContract = new JavaServiceContract();
         serviceContract.setInteractionScope(StAXUtil.interactionScope(reader.getAttributeValue(null, "scope")));
         String name = reader.getAttributeValue(null, "interface");
         if (name == null) {

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java Wed Aug  9 11:51:14 2006
@@ -127,11 +127,11 @@
                 }
             }
         } catch (IOException e) {
-            LoaderException sfe = new LoaderException(e.getMessage());
+            LoaderException sfe = new LoaderException(e);
             sfe.setResourceURI(url.toString());
             throw sfe;
         } catch (XMLStreamException e) {
-            LoaderException sfe = new LoaderException(e.getMessage());
+            LoaderException sfe = new LoaderException(e);
             sfe.setResourceURI(url.toString());
             throw sfe;
         }

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java Wed Aug  9 11:51:14 2006
@@ -108,4 +108,5 @@
     public InboundInvocationChain createInboundChain(Method operation) {
         return new InboundInvocationChainImpl(operation);
     }
+
 }

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java Wed Aug  9 11:51:14 2006
@@ -13,6 +13,7 @@
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.ReferenceTarget;
 import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.services.work.WorkScheduler;
 
 import junit.framework.TestCase;
@@ -20,7 +21,6 @@
 import org.apache.tuscany.core.component.WorkContextImpl;
 import org.apache.tuscany.core.component.scope.ModuleScopeContainer;
 import org.apache.tuscany.core.implementation.ConstructorDefinition;
-import org.apache.tuscany.core.implementation.JavaMappedCallback;
 import org.apache.tuscany.core.implementation.JavaMappedProperty;
 import org.apache.tuscany.core.implementation.JavaMappedReference;
 import org.apache.tuscany.core.implementation.JavaMappedService;
@@ -117,12 +117,10 @@
         type.setConstructorDefinition(ctorDef);
         type.setImplementationScope(Scope.MODULE);
         Method method = FooImpl.class.getMethod("setCallback", FooCallback.class);
-        JavaServiceContract contract = new JavaServiceContract(Foo.class);
+        ServiceContract contract = new JavaServiceContract(Foo.class);
         contract.setCallbackClass(FooCallback.class);
         contract.setCallbackName("callback");
-        JavaMappedService mappedService = new JavaMappedService("Foo", contract, false);
-        JavaMappedCallback mappedCallback = new JavaMappedCallback("callback", method, FooCallback.class);
-        mappedService.setCallbackReference(mappedCallback);
+        JavaMappedService mappedService = new JavaMappedService("Foo", contract, false, "callback", method);
         type.getServices().put("Foo", mappedService);
 
         JavaImplementation impl = new JavaImplementation();
@@ -140,7 +138,7 @@
         type.setConstructorDefinition(ctorDef);
         type.setImplementationScope(Scope.MODULE);
         Method method = FooClient.class.getMethod("setFoo", Foo.class);
-        JavaServiceContract contract = new JavaServiceContract(Foo.class);
+        ServiceContract contract = new JavaServiceContract(Foo.class);
         contract.setCallbackClass(FooCallback.class);
         contract.setCallbackName("callback");
         JavaMappedReference mappedReference = new JavaMappedReference("foo", contract, method);

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ProcessorUtilsServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ProcessorUtilsServiceTestCase.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ProcessorUtilsServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ProcessorUtilsServiceTestCase.java Wed Aug  9 11:51:14 2006
@@ -18,10 +18,10 @@
 import org.osoa.sca.annotations.Scope;
 
 import org.apache.tuscany.spi.model.InteractionScope;
+import org.apache.tuscany.spi.model.ServiceContract;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.implementation.JavaMappedService;
-import org.apache.tuscany.core.implementation.JavaServiceContract;
 
 /**
  * @version $Rev$ $Date$
@@ -33,7 +33,7 @@
         assertTrue(Foo.class.equals(service.getServiceContract().getInterfaceClass()));
         assertTrue(service.isRemotable());
         assertEquals(InteractionScope.CONVERSATIONAL, service.getServiceContract().getInteractionScope());
-        JavaServiceContract serviceContract = (JavaServiceContract) service.getServiceContract();
+        ServiceContract serviceContract = service.getServiceContract();
         assertTrue(Bar.class.equals(serviceContract.getCallbackClass()));
         assertTrue("ProcessorUtilsServiceTestCase$Bar".equals(serviceContract.getCallbackName()));
     }

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java Wed Aug  9 11:51:14 2006
@@ -2,11 +2,12 @@
 
 import org.osoa.sca.annotations.Reference;
 
+import org.apache.tuscany.spi.model.ServiceContract;
+
 import junit.framework.TestCase;
 import org.apache.tuscany.core.implementation.JavaMappedProperty;
 import org.apache.tuscany.core.implementation.JavaMappedReference;
 import org.apache.tuscany.core.implementation.JavaMappedService;
-import org.apache.tuscany.core.implementation.JavaServiceContract;
 import org.apache.tuscany.core.implementation.PojoComponentType;
 
 /**
@@ -22,7 +23,7 @@
         processor.visitMethod(null, ReferenceProcessorTestCase.Foo.class.getMethod("setFoo", Ref.class), type, null);
         JavaMappedReference reference = type.getReferences().get("foo");
         assertNotNull(reference);
-        JavaServiceContract contract = (JavaServiceContract) reference.getServiceContract();
+        ServiceContract contract = reference.getServiceContract();
         assertEquals(Ref.class, contract.getInterfaceClass());
         assertEquals("ReferenceProcessorTestCase$Ref", contract.getInterfaceName());
     }
@@ -45,7 +46,7 @@
         processor.visitField(null, ReferenceProcessorTestCase.Foo.class.getDeclaredField("baz"), type, null);
         JavaMappedReference reference = type.getReferences().get("baz");
         assertNotNull(reference);
-        JavaServiceContract contract = (JavaServiceContract) reference.getServiceContract();
+        ServiceContract contract = reference.getServiceContract();
         assertEquals(Ref.class, contract.getInterfaceClass());
         assertEquals("ReferenceProcessorTestCase$Ref", contract.getInterfaceName());
     }

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceCallbackTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceCallbackTestCase.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceCallbackTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceCallbackTestCase.java Wed Aug  9 11:51:14 2006
@@ -20,7 +20,6 @@
 import org.osoa.sca.annotations.Service;
 
 import junit.framework.TestCase;
-import org.apache.tuscany.core.implementation.JavaMappedCallback;
 import org.apache.tuscany.core.implementation.JavaMappedProperty;
 import org.apache.tuscany.core.implementation.JavaMappedReference;
 import org.apache.tuscany.core.implementation.JavaMappedService;
@@ -41,8 +40,7 @@
         assertNotNull(service);
         Method method = FooImpl.class.getMethod("setCallback", FooCallback.class);
         processor.visitMethod(null, method, type, null);
-        JavaMappedCallback callback = service.getCallbackReference();
-        assertEquals(FooCallback.class, callback.getCallbackInterface());
+        assertEquals(method, service.getCallbackMember());
     }
 
     public void testFieldCallbackInterface() throws Exception {
@@ -53,8 +51,7 @@
         assertNotNull(service);
         Field field = FooImpl.class.getDeclaredField("callback");
         processor.visitField(null, field, type, null);
-        JavaMappedCallback callback = service.getCallbackReference();
-        assertEquals(FooCallback.class, callback.getCallbackInterface());
+        assertEquals(field, service.getCallbackMember());
     }
 
     public void testMethodDoesNotMatchCallback() throws Exception {

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java Wed Aug  9 11:51:14 2006
@@ -17,11 +17,12 @@
 import org.osoa.sca.annotations.Remotable;
 import org.osoa.sca.annotations.Service;
 
+import org.apache.tuscany.spi.model.ServiceContract;
+
 import junit.framework.TestCase;
 import org.apache.tuscany.core.implementation.JavaMappedProperty;
 import org.apache.tuscany.core.implementation.JavaMappedReference;
 import org.apache.tuscany.core.implementation.JavaMappedService;
-import org.apache.tuscany.core.implementation.JavaServiceContract;
 import org.apache.tuscany.core.implementation.PojoComponentType;
 
 /**
@@ -36,7 +37,7 @@
         processor.visitClass(null, FooMultiple.class, type, null);
         assertEquals(2, type.getServices().size());
         JavaMappedService service = type.getServices().get("ServiceProcessorTestCase$Baz");
-        JavaServiceContract contract = (JavaServiceContract) service.getServiceContract();
+        ServiceContract contract = service.getServiceContract();
         assertEquals(Baz.class, contract.getInterfaceClass());
         assertEquals(Bar.class, contract.getCallbackClass());
         assertEquals("ServiceProcessorTestCase$Bar", contract.getCallbackName());
@@ -58,7 +59,7 @@
         processor.visitClass(null, FooRemotableNoService.class, type, null);
         assertEquals(1, type.getServices().size());
         JavaMappedService service = type.getServices().get("ServiceProcessorTestCase$BazRemotable");
-        JavaServiceContract contract = (JavaServiceContract) service.getServiceContract();
+        ServiceContract contract = service.getServiceContract();
         assertEquals(BazRemotable.class, contract.getInterfaceClass());
     }
 

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java Wed Aug  9 11:51:14 2006
@@ -23,6 +23,7 @@
 import org.apache.tuscany.spi.model.PropertyValue;
 import org.apache.tuscany.spi.model.ReferenceTarget;
 import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.OutboundWire;
 
 import org.apache.tuscany.core.component.AutowireComponent;
@@ -130,7 +131,7 @@
         Method refMethod = FooImpl.class.getMethod("setRef", Foo.class);
         refMethod.setAccessible(true);
         mappedReference.setMember(refMethod);
-        JavaServiceContract contract = new JavaServiceContract(Foo.class);
+        ServiceContract contract = new JavaServiceContract(Foo.class);
         mappedReference.setServiceContract(contract);
         type.add(mappedReference);
         ConstructorDefinition<FooImpl> ctorDef = new ConstructorDefinition<FooImpl>(FooImpl.class.getConstructor());
@@ -169,7 +170,7 @@
         Method refMethod = FooImpl.class.getMethod("setRef", Foo.class);
         refMethod.setAccessible(true);
         mappedReference.setMember(refMethod);
-        JavaServiceContract contract = new JavaServiceContract(Foo.class);
+        ServiceContract contract = new JavaServiceContract(Foo.class);
         mappedReference.setServiceContract(contract);
         type.add(mappedReference);
         ConstructorDefinition<FooImpl> ctorDef = new ConstructorDefinition<FooImpl>(FooImpl.class.getConstructor());
@@ -206,7 +207,7 @@
         JavaMappedReference mappedReference = new JavaMappedReference();
         mappedReference.setName("ref");
         mappedReference.setAutowire(true);
-        JavaServiceContract contract = new JavaServiceContract(Foo.class);
+        ServiceContract contract = new JavaServiceContract(Foo.class);
         mappedReference.setServiceContract(contract);
         type.add(mappedReference);
         ComponentDefinition<SystemImplementation> definition = new ComponentDefinition<SystemImplementation>(impl);

Modified: incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java (original)
+++ incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java Wed Aug  9 11:51:14 2006
@@ -24,6 +24,9 @@
 public abstract class ServiceContract extends ModelObject {
     private InteractionScope interactionScope;
     private Class<?> interfaceClass;
+    private String interfaceName;
+    private String callbackName;
+    private Class<?> callbackClass;
 
     protected ServiceContract() {
     }
@@ -32,20 +35,68 @@
         this.interfaceClass = interfaceClass;
     }
 
+    protected ServiceContract(String interfaceName) {
+        this.interfaceName = interfaceName;
+    }
+
+    public String getInterfaceName() {
+        return interfaceName;
+    }
+
+    public void setInterfaceName(String interfaceName) {
+        this.interfaceName = interfaceName;
+    }
+
+    /**
+     * Returns the class used to represent the service contract
+     */
     public Class<?> getInterfaceClass() {
         return interfaceClass;
     }
 
+    /**
+     * Sets the class used to represent the service contract
+     */
     public void setInterfaceClass(Class<?> interfaceClass) {
         this.interfaceClass = interfaceClass;
     }
 
+    /**
+     * Returns the service interaction scope
+     */
     public InteractionScope getInteractionScope() {
         return interactionScope;
     }
 
+    /**
+     * Sets the service interaction scope
+     */
     public void setInteractionScope(InteractionScope interactionScope) {
         this.interactionScope = interactionScope;
     }
 
+    /**
+     * Returns the name of the callback or null if the contract is unidirectional
+     */
+    public String getCallbackName() {
+        return callbackName;
+    }
+
+    /**
+     * Sets the name of the callback service
+     */
+    public void setCallbackName(String callbackName) {
+        this.callbackName = callbackName;
+    }
+
+    /**
+     * Returns the name of the callback service
+     */
+    public Class<?> getCallbackClass() {
+        return callbackClass;
+    }
+
+    public void setCallbackClass(Class<?> callbackClass) {
+        this.callbackClass = callbackClass;
+    }
 }

Modified: incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java?rev=430113&r1=430112&r2=430113&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java (original)
+++ incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java Wed Aug  9 11:51:14 2006
@@ -25,6 +25,10 @@
     private String name;
     private ServiceContract serviceContract;
     private boolean remotable;
+    private String callbackRefName;
+
+    public ServiceDefinition() {
+    }
 
     public ServiceDefinition(String name, ServiceContract serviceContract, boolean remotable) {
         this.name = name;
@@ -32,7 +36,11 @@
         this.remotable = remotable;
     }
 
-    public ServiceDefinition() {
+    public ServiceDefinition(String name, ServiceContract serviceContract, boolean remotable, String callbackRefName) {
+        this.name = name;
+        this.serviceContract = serviceContract;
+        this.remotable = remotable;
+        this.callbackRefName = callbackRefName;
     }
 
     public String getName() {
@@ -58,4 +66,16 @@
     public void setRemotable(boolean remotable) {
         this.remotable = remotable;
     }
+
+    /**
+     * Returns the callback name.
+     */
+    public String getCallbackReferenceName() {
+        return callbackRefName;
+    }
+
+    public void setCallbackReferenceName(String callbackRefName) {
+        this.callbackRefName = callbackRefName;
+    }
+
 }



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


Refactoring wire building: svn commit: r430113

Posted by Jim Marino <jm...@myromatours.com>.
A quick explanation of the commits I'm doing and as follow-up to some  
of the wiring questions...

I'm in the process of working on a sample binding which I will commit  
later today.  As part of this, I want to move wiring completely into  
the wire service and out of the builders. To do this, I needed to  
move callback-related information from the Java model extensions up  
to the generic model.

After this is complete, the builders will not need knowledge of the  
wiring mechanism, although Service, Component, and Reference  
implementation will still need to know how to deal with a wire.  
Basically, as the builder registry processes the model, it will call  
out to the wire service to create the appropriate wire types for the  
SCAObject it is currently evaluating. The wire service will in turn  
delegate to the policy registry to decorate the wire with appropriate  
policy interceptors and handlers. After returning, the builder  
registry will provide the SCAObject with the newly created wire.

Jim



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