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 2007/03/14 21:35:38 UTC

svn commit: r518312 - in /incubator/tuscany/java/sca/kernel: core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalWireSourceDefinition.java

Author: jmarino
Date: Wed Mar 14 13:35:37 2007
New Revision: 518312

URL: http://svn.apache.org/viewvc?view=rev&rev=518312
Log:
have callbacks handled by the JPCB

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalWireSourceDefinition.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java?view=diff&rev=518312&r1=518311&r2=518312
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java Wed Mar 14 13:35:37 2007
@@ -25,6 +25,7 @@
 
 import org.osoa.sca.annotations.Reference;
 
+import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.builder.BuilderException;
 import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilder;
 import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilderRegistry;
@@ -41,11 +42,11 @@
 
 import org.apache.tuscany.core.builder.physical.WireAttachException;
 import org.apache.tuscany.core.component.InstanceFactoryProvider;
+import org.apache.tuscany.core.injection.CallbackWireObjectFactory2;
 import org.apache.tuscany.core.model.physical.java.JavaPhysicalComponentDefinition;
 import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireSourceDefinition;
 import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireTargetDefinition;
 import org.apache.tuscany.core.wire.WireObjectFactory;
-import org.apache.tuscany.core.injection.CallbackWireObjectFactory2;
 
 /**
  * The physical component builder for Java implementation types. Responsible for creating the Component runtime artifact
@@ -157,20 +158,24 @@
     /**
      * Attaches the source to the component.
      *
-     * @param component Component.
-     * @param wire
-     * @param source    Source.
+     * @param component the source component
+     * @param wire      the wire for the callback
+     * @param source    the attach metadata
      */
     @SuppressWarnings({"unchecked"})
     public void attach(JavaComponent component, Wire wire, JavaPhysicalWireSourceDefinition source) {
-        Class<?> type = component.getMemberType(wire.getSourceUri());
-        WireObjectFactory<?> factory = new WireObjectFactory(type, wire, proxyService);
-        component.setObjectFactory(wire.getSourceUri(), factory);
+        URI sourceUri = wire.getSourceUri();
+        Class<?> type = component.getMemberType(sourceUri);
+        ObjectFactory<?> factory = new WireObjectFactory(type, wire, proxyService);
+        component.setObjectFactory(sourceUri, factory);
         if (!wire.getCallbackInvocationChains().isEmpty()) {
-            // TODO handle callbacks
+            URI callbackUri = source.getCallbackUri();
+            Class<?> callbackType = component.getMemberType(callbackUri);
+            ObjectFactory<?> callbackFactory = new CallbackWireObjectFactory2(callbackType, proxyService);
+            component.setObjectFactory(callbackUri, callbackFactory);
         }
     }
-
+                                    
     /**
      * Attaches the target to the component.
      *

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalWireSourceDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalWireSourceDefinition.java?view=diff&rev=518312&r1=518311&r2=518312
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalWireSourceDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalWireSourceDefinition.java Wed Mar 14 13:35:37 2007
@@ -32,12 +32,13 @@
 
     // URI
     private URI uri;
+    private URI callbackUri;
     private boolean optimizable;
 
     /**
      * Gets the URI.
      *
-     * @return Gets the URI.
+     * @return the URI.
      */
     public URI getUri() {
         return uri;
@@ -46,10 +47,28 @@
     /**
      * Sets the URI.
      *
-     * @param uri Sets the URI.
+     * @param uri the URI.
      */
     public void setUri(URI uri) {
         this.uri = uri;
+    }
+
+    /**
+     * Gets the callback URI.
+     *
+     * @return the callback URI.
+     */
+    public URI getCallbackUri() {
+        return callbackUri;
+    }
+
+    /**
+     * Sets the URI.
+     *
+     * @param uri the callback URI.
+     */
+    public void setCallbackUri(URI uri) {
+        this.callbackUri = uri;
     }
 
 



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