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 2008/12/04 07:05:26 UTC

svn commit: r723218 [2/4] - in /tuscany/java/sca/modules: core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/ core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/transformers/ core-spi/src/main/java/org/apa...

Added: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceExt.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceExt.java?rev=723218&view=auto
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceExt.java (added)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceExt.java Wed Dec  3 22:05:21 2008
@@ -0,0 +1,29 @@
+/*
+ * 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.sca.core.context;
+
+import org.osoa.sca.ServiceReference;
+
+/**
+ * Extended ServiceReference
+ */
+public interface ServiceReferenceExt<B> extends CallableReferenceExt<B>, ServiceReference<B> {
+
+}

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceExt.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceExt.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java (from r722959, tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java?p2=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java&p1=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java&r1=722959&r2=723218&rev=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java Wed Dec  3 22:05:21 2008
@@ -16,9 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.sca.core.context;
+package org.apache.tuscany.sca.core.context.impl;
 
-import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
@@ -38,13 +37,16 @@
 import org.apache.tuscany.sca.assembly.Service;
 import org.apache.tuscany.sca.assembly.builder.BindingBuilderExtension;
 import org.apache.tuscany.sca.core.assembly.CompositeActivator;
-import org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl;
-import org.apache.tuscany.sca.core.assembly.EndpointReferenceImpl;
-import org.apache.tuscany.sca.core.assembly.EndpointWireImpl;
-import org.apache.tuscany.sca.core.assembly.ReferenceParametersImpl;
+import org.apache.tuscany.sca.core.assembly.impl.CompositeActivatorImpl;
+import org.apache.tuscany.sca.core.assembly.impl.EndpointReferenceImpl;
+import org.apache.tuscany.sca.core.assembly.impl.EndpointWireImpl;
+import org.apache.tuscany.sca.core.assembly.impl.ReferenceParametersImpl;
+import org.apache.tuscany.sca.core.context.CallableReferenceExt;
+import org.apache.tuscany.sca.core.context.ComponentContextExt;
+import org.apache.tuscany.sca.core.context.CompositeContext;
+import org.apache.tuscany.sca.core.conversation.ConversationExt;
 import org.apache.tuscany.sca.core.conversation.ConversationManager;
 import org.apache.tuscany.sca.core.conversation.ConversationState;
-import org.apache.tuscany.sca.core.conversation.ExtendedConversation;
 import org.apache.tuscany.sca.core.factory.ObjectCreationException;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.interfacedef.Interface;
@@ -55,7 +57,6 @@
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
 import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
 import org.apache.tuscany.sca.runtime.RuntimeWire;
-import org.osoa.sca.CallableReference;
 import org.osoa.sca.Conversation;
 import org.osoa.sca.ServiceRuntimeException;
 
@@ -65,7 +66,7 @@
  * @version $Rev$ $Date$
  * @param <B> the type of the business interface
  */
-public class CallableReferenceImpl<B> implements CallableReference<B>, Externalizable {
+public class CallableReferenceImpl<B> implements CallableReferenceExt<B> {
     static final long serialVersionUID = -521548304761848325L;
     protected transient CompositeActivator compositeActivator;
     protected transient ProxyFactory proxyFactory;
@@ -74,7 +75,7 @@
 
     // if the wire targets a conversational service this holds the conversation state 
     protected transient ConversationManager conversationManager;
-    protected transient ExtendedConversation conversation;
+    protected transient ConversationExt conversation;
     protected transient Object conversationID;
     protected Object callbackID; // The callbackID should be serializable
 
@@ -171,7 +172,7 @@
             this.component = wire.getSource().getComponent();
             this.reference = (RuntimeComponentReference)wire.getSource().getContract();
             this.binding = wire.getSource().getBinding();
-            this.compositeActivator = ((ComponentContextImpl)component.getComponentContext()).getCompositeActivator();
+            this.compositeActivator = ((ComponentContextExt)component.getComponentContext()).getCompositeActivator();
             this.conversationManager = this.compositeActivator.getConversationManager();
             initCallbackID();
         }
@@ -273,9 +274,9 @@
      */
     private synchronized void resolve() throws Exception {
         if ((scdl != null || xmlReader != null) && component == null && reference == null) {
-            ComponentContextHelper componentContextHelper = ComponentContextHelper.getCurrentComponentContextHelper();
+            CompositeContext componentContextHelper = CompositeContext.getCurrentCompositeContext();
             if (componentContextHelper != null) {
-                this.compositeActivator = ComponentContextHelper.getCurrentCompositeActivator();
+                this.compositeActivator = CompositeContext.getCurrentCompositeActivator();
                 this.conversationManager = this.compositeActivator.getConversationManager();
                 Component c;
                 if (xmlReader != null) {
@@ -371,7 +372,7 @@
                 this.proxyFactory = compositeActivator.getProxyFactory();
             }
         } else {
-            this.compositeActivator = ComponentContextHelper.getCurrentCompositeActivator();
+            this.compositeActivator = CompositeContext.getCurrentCompositeActivator();
             if (this.compositeActivator != null) {
                 this.proxyFactory = this.compositeActivator.getProxyFactory();
             }
@@ -455,7 +456,7 @@
             if (conversation != null){
                 refParams.setConversationID(conversation.getConversationID());
             }
-            return ((CompositeActivatorImpl)compositeActivator).getComponentContextHelper()
+            return ((CompositeActivatorImpl)compositeActivator).getCompositeContext()
                     .toXML(component, clonedRef);
         } else { 
             return scdl;
@@ -479,13 +480,13 @@
         this.conversationID = conversationID;
     }
     
-    public void attachConversation(ExtendedConversation conversation) {
+    public void attachConversation(ConversationExt conversation) {
         this.conversation = conversation;
     }
 
     public void attachConversation(Object conversationID) {
         if (conversationID != null) {
-            ExtendedConversation conversation = conversationManager.getConversation(conversationID);
+            ConversationExt conversation = conversationManager.getConversation(conversationID);
             if (conversation == null){
                 conversation = conversationManager.startConversation(conversationID);
             }
@@ -589,7 +590,7 @@
             }
 
             if ("".equals(serviceName)) {
-                targetService = ComponentContextHelper.getSingleService(targetComponent);
+                targetService = CompositeContext.getSingleService(targetComponent);
             } else {
                 for (ComponentService service : targetComponent.getServices()) {
                     if (service.getName().equals(serviceName)) {

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java:694816-713804

Copied: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java (from r722959, tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java?p2=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java&p1=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java&r1=722959&r2=723218&rev=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java Wed Dec  3 22:05:21 2008
@@ -16,13 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.sca.core.context;
+package org.apache.tuscany.sca.core.context.impl;
 
 import java.io.IOException;
 import java.io.Reader;
 import java.io.Writer;
-import java.util.Collection;
 import java.util.ArrayList;
+import java.util.Collection;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Binding;
@@ -36,7 +36,10 @@
 import org.apache.tuscany.sca.assembly.Service;
 import org.apache.tuscany.sca.context.PropertyValueFactory;
 import org.apache.tuscany.sca.context.RequestContextFactory;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.assembly.CompositeActivator;
+import org.apache.tuscany.sca.core.context.ComponentContextExt;
+import org.apache.tuscany.sca.core.context.CompositeContext;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.interfacedef.Interface;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
@@ -45,7 +48,6 @@
 import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
 import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
 import org.apache.tuscany.sca.runtime.RuntimeComponentService;
 import org.osoa.sca.CallableReference;
@@ -58,7 +60,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class ComponentContextImpl implements RuntimeComponentContext {
+public class ComponentContextImpl implements ComponentContextExt {
     private final RuntimeComponent component;
 
     private final CompositeActivator compositeActivator;
@@ -75,7 +77,7 @@
      * @see #getProperty(Class, String)
      */
     private PropertyValueFactory propertyFactory;
-    
+
     public ComponentContextImpl(CompositeActivator compositeActivator,
                                 AssemblyFactory assemblyFactory,
                                 ProxyFactory proxyFactory,
@@ -111,12 +113,13 @@
                 if (referenceName.equals(ref.getName())) {
                     /* ******************** Contribution for issue TUSCANY-2281 ******************** */
                     Multiplicity multiplicity = ref.getMultiplicity();
-                    if( multiplicity == Multiplicity.ZERO_N || multiplicity == Multiplicity.ONE_N)
-                    {
-                      throw new IllegalArgumentException("Reference " + referenceName + " has multiplicity " + multiplicity);
+                    if (multiplicity == Multiplicity.ZERO_N || multiplicity == Multiplicity.ONE_N) {
+                        throw new IllegalArgumentException("Reference " + referenceName
+                            + " has multiplicity "
+                            + multiplicity);
                     }
                     /* ******************** Contribution for issue TUSCANY-2281 ******************** */
-                    
+
                     return getServiceReference(businessInterface, (RuntimeComponentReference)ref, null);
                 }
             }
@@ -163,7 +166,7 @@
     }
 
     public <B> ServiceReference<B> createSelfReference(Class<B> businessInterface) {
-        ComponentService service = ComponentContextHelper.getSingleService(component);
+        ComponentService service = CompositeContext.getSingleService(component);
         try {
             return createSelfReference(businessInterface, service);
         } catch (Exception e) {
@@ -205,9 +208,9 @@
 
     public RequestContext getRequestContext() {
         if (requestContextFactory != null) {
-            return requestContextFactory.createRequestContext();
+            return requestContextFactory.createRequestContext(component);
         } else {
-            return new RequestContextImpl(proxyFactory);
+            return new RequestContextImpl(component);
         }
     }
 
@@ -218,7 +221,9 @@
      * @throws CloneNotSupportedException
      * @throws InvalidInterfaceException
      */
-    public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, RuntimeComponentReference reference, Binding binding) {
+    public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface,
+                                                       RuntimeComponentReference reference,
+                                                       Binding binding) {
         try {
             RuntimeComponentReference ref = (RuntimeComponentReference)reference;
             InterfaceContract interfaceContract = reference.getInterfaceContract();
@@ -236,11 +241,12 @@
                 }
             }
             ref.setComponent(component);
-            return new ServiceReferenceImpl<B>(businessInterface, component, ref, binding, proxyFactory, compositeActivator);
+            return new ServiceReferenceImpl<B>(businessInterface, component, ref, binding, proxyFactory,
+                                               compositeActivator);
         } catch (Exception e) {
             throw new ServiceRuntimeException(e);
         }
-    }    
+    }
 
     /**
      * Bind a component reference to a component service
@@ -399,7 +405,7 @@
      * @see org.apache.tuscany.sca.runtime.RuntimeComponentContext#read(java.io.Reader)
      */
     public RuntimeComponent read(Reader reader) throws IOException {
-        RuntimeComponent component = compositeActivator.getComponentContextHelper().read(reader);
+        RuntimeComponent component = compositeActivator.getCompositeContext().read(reader);
         compositeActivator.configureComponentContext(component);
         return component;
     }
@@ -408,45 +414,49 @@
      * @see org.apache.tuscany.sca.runtime.RuntimeComponentContext#write(org.apache.tuscany.sca.runtime.RuntimeComponentReference, java.io.Writer)
      */
     public void write(RuntimeComponentReference reference, Writer writer) throws IOException {
-        compositeActivator.getComponentContextHelper().write(component, reference, writer);
+        compositeActivator.getCompositeContext().write(component, reference, writer);
     }
 
     /* ******************** Contribution for issue TUSCANY-2281 ******************** */
-    
+
     /**
      * @see ComponentContext#getServices(Class<B>, String)
      */
     public <B> Collection<B> getServices(Class<B> businessInterface, String referenceName) {
-      ArrayList<B> services = new ArrayList<B>();
-      Collection<ServiceReference<B>> serviceRefs = getServiceReferences(businessInterface, referenceName);
-      for (ServiceReference<B> serviceRef : serviceRefs) {
-        services.add(serviceRef.getService());
-      }
-      return services;
+        ArrayList<B> services = new ArrayList<B>();
+        Collection<ServiceReference<B>> serviceRefs = getServiceReferences(businessInterface, referenceName);
+        for (ServiceReference<B> serviceRef : serviceRefs) {
+            services.add(serviceRef.getService());
+        }
+        return services;
     }
-    
+
     /**
      * @see ComponentContext#getServiceReferences(Class<B>, String)
      */
     public <B> Collection<ServiceReference<B>> getServiceReferences(Class<B> businessInterface, String referenceName) {
-      try {
-        for (ComponentReference ref : component.getReferences()) {
-          if (referenceName.equals(ref.getName())) {
-            ArrayList<ServiceReference<B>> serviceRefs = new ArrayList<ServiceReference<B>>();
-            for(Binding binding :  ref.getBindings())
-            {
-              serviceRefs.add( getServiceReference(businessInterface, (RuntimeComponentReference) ref, binding) );
-            }
-            return serviceRefs;
-          }
-        }
-        throw new ServiceRuntimeException("Reference not found: " + referenceName);
-      } catch (ServiceRuntimeException e) {
-        throw e;
-      } catch (Exception e) {
-        throw new ServiceRuntimeException(e.getMessage(), e);
-      }
+        try {
+            for (ComponentReference ref : component.getReferences()) {
+                if (referenceName.equals(ref.getName())) {
+                    ArrayList<ServiceReference<B>> serviceRefs = new ArrayList<ServiceReference<B>>();
+                    for (Binding binding : ref.getBindings()) {
+                        serviceRefs
+                            .add(getServiceReference(businessInterface, (RuntimeComponentReference)ref, binding));
+                    }
+                    return serviceRefs;
+                }
+            }
+            throw new ServiceRuntimeException("Reference not found: " + referenceName);
+        } catch (ServiceRuntimeException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new ServiceRuntimeException(e.getMessage(), e);
+        }
     }
     /* ******************** Contribution for issue TUSCANY-2281 ******************** */
-    
+
+    public ExtensionPointRegistry getExtensionPointRegistry() {
+        return compositeActivator.getCompositeContext().getExtensionPointRegistry();
+    }
+
 }

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java:694816-713804

Copied: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java (from r722959, tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java?p2=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java&p1=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java&r1=722959&r2=723218&rev=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java Wed Dec  3 22:05:21 2008
@@ -16,15 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.tuscany.sca.core.context;
+package org.apache.tuscany.sca.core.context.impl;
 
 import java.util.List;
 
 import javax.security.auth.Subject;
 
-import org.apache.tuscany.sca.core.invocation.CallbackReferenceImpl;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
+import org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint;
 import org.apache.tuscany.sca.core.invocation.ThreadMessageContext;
+import org.apache.tuscany.sca.core.invocation.impl.CallbackReferenceImpl;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.runtime.EndpointReference;
@@ -41,10 +43,11 @@
  */
 public class RequestContextImpl implements RequestContext {
 
-    private ProxyFactory proxyFactory;
+    private ProxyFactoryExtensionPoint proxyFactoryExtensionPoint;
 
-    public RequestContextImpl(ProxyFactory proxyFactory) {
-        this.proxyFactory = proxyFactory;
+    public RequestContextImpl(RuntimeComponent component) {
+        ExtensionPointRegistry registry = component.getComponentContext().getExtensionPointRegistry();
+        proxyFactoryExtensionPoint = registry.getExtensionPoint(ProxyFactoryExtensionPoint.class);
     }
 
     public Subject getSecuritySubject() {
@@ -97,6 +100,8 @@
         JavaInterface javaInterface = (JavaInterface) callbackReference.getInterfaceContract().getInterface();
         Class<CB> javaClass = (Class<CB>)javaInterface.getJavaClass();
         List<RuntimeWire> wires = callbackReference.getRuntimeWires();
+        ProxyFactory proxyFactory = javaClass.isInterface() ? proxyFactoryExtensionPoint.getInterfaceProxyFactory() :
+            proxyFactoryExtensionPoint.getClassProxyFactory();
         CallbackReferenceImpl ref = CallbackReferenceImpl.newInstance(javaClass, proxyFactory, wires);
         if (ref != null) {  
             //ref.resolveTarget();

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java:694816-713804

Copied: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java (from r722959, tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceImpl.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java?p2=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java&p1=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceImpl.java&r1=722959&r2=723218&rev=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java Wed Dec  3 22:05:21 2008
@@ -16,12 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.sca.core.context;
+package org.apache.tuscany.sca.core.context.impl;
 
 import javax.xml.stream.XMLStreamReader;
 
 import org.apache.tuscany.sca.assembly.Binding;
 import org.apache.tuscany.sca.core.assembly.CompositeActivator;
+import org.apache.tuscany.sca.core.context.CallableReferenceExt;
+import org.apache.tuscany.sca.core.context.ServiceReferenceExt;
 import org.apache.tuscany.sca.core.conversation.ConversationState;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.runtime.EndpointReference;
@@ -38,7 +40,7 @@
  * @version $Rev$ $Date$
  * @param <B> the type of the business interface
  */
-public class ServiceReferenceImpl<B> extends CallableReferenceImpl<B> implements ServiceReference<B> {
+public class ServiceReferenceImpl<B> extends CallableReferenceImpl<B> implements ServiceReferenceExt<B> {
     private static final long serialVersionUID = 6763709434194361540L;
 
     protected transient Object callback;
@@ -120,7 +122,7 @@
         ReferenceParameters parameters = super.getReferenceParameters();
         if (callback != null) {
             if (callback instanceof ServiceReference) {
-                EndpointReference callbackRef = ((CallableReferenceImpl)callback).getEndpointReference();
+                EndpointReference callbackRef = ((CallableReferenceExt)callback).getEndpointReference();
                 parameters.setCallbackReference(callbackRef);
             } else {
                 EndpointReference callbackRef = getRuntimeWire().getSource().getCallbackEndpoint();

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceImpl.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceImpl.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceImpl.java:694816-713804

Copied: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationExt.java (from r722959, tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversation.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationExt.java?p2=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationExt.java&p1=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversation.java&r1=722959&r2=723218&rev=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversation.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationExt.java Wed Dec  3 22:05:21 2008
@@ -27,7 +27,7 @@
  * 
  * @version $Rev$ $Date$
  */
-public interface ExtendedConversation extends Conversation {
+public interface ConversationExt extends Conversation {
     /**
      * Get the state of a conversation
      * @return The state

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationExt.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationExt.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationExt.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversation.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversation.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversation.java:694816-713804

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationListener.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationListener.java?rev=723218&r1=723217&r2=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationListener.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationListener.java Wed Dec  3 22:05:21 2008
@@ -28,13 +28,13 @@
     /**
      * The conversation is started
      */
-    void conversationStarted(ExtendedConversation conversation);
+    void conversationStarted(ConversationExt conversation);
     /**
      * The conversation is ended
      */
-    void conversationEnded(ExtendedConversation conversation);
+    void conversationEnded(ConversationExt conversation);
     /**
      * The conversation is expired
      */
-    void conversationExpired(ExtendedConversation conversation);
+    void conversationExpired(ConversationExt conversation);
 }

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManager.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManager.java?rev=723218&r1=723217&r2=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManager.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManager.java Wed Dec  3 22:05:21 2008
@@ -29,7 +29,7 @@
      * @param conversationID
      * @return
      */
-    ExtendedConversation startConversation(Object conversationID);
+    ConversationExt startConversation(Object conversationID);
 
     /**
      * @param conversationID
@@ -40,7 +40,7 @@
      * @param conversationID
      * @return
      */
-    ExtendedConversation getConversation(Object conversationID);
+    ConversationExt getConversation(Object conversationID);
 
     /**
      * @param conversationID

Copied: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ConversationManagerImpl.java (from r722959, tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManagerImpl.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ConversationManagerImpl.java?p2=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ConversationManagerImpl.java&p1=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManagerImpl.java&r1=722959&r2=723218&rev=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManagerImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ConversationManagerImpl.java Wed Dec  3 22:05:21 2008
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.core.conversation;
+package org.apache.tuscany.sca.core.conversation.impl;
 
 import java.security.AccessController;
 import java.security.PrivilegedAction;
@@ -31,13 +31,18 @@
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.tuscany.sca.core.conversation.ConversationListener;
+import org.apache.tuscany.sca.core.conversation.ConversationManager;
+import org.apache.tuscany.sca.core.conversation.ConversationState;
+import org.apache.tuscany.sca.core.conversation.ConversationExt;
+
 /**
  * @version $Rev$ $Date$
  */
 public class ConversationManagerImpl implements ConversationManager {
 	
     private List<ConversationListener> listeners = Collections.synchronizedList(new ArrayList<ConversationListener>());
-    private Map<Object, ExtendedConversation> conversations = new ConcurrentHashMap<Object, ExtendedConversation>();
+    private Map<Object, ConversationExt> conversations = new ConcurrentHashMap<Object, ConversationExt>();
 
     /**
      * the default max age. this is set to 1 hour
@@ -113,10 +118,10 @@
     }
 
     /**
-     * @see org.apache.tuscany.sca.core.conversation.ConversationManager#endConversation(org.apache.tuscany.sca.core.conversation.ExtendedConversation)
+     * @see org.apache.tuscany.sca.core.conversation.ConversationManager#endConversation(org.apache.tuscany.sca.core.conversation.ConversationExt)
      */
     public void endConversation(Object conversationID) {
-        ExtendedConversation conv = getConversation(conversationID);
+        ConversationExt conv = getConversation(conversationID);
         if (conv != null) {
             conv.setState(ConversationState.ENDED);
             for (ConversationListener listener : listeners) {
@@ -130,7 +135,7 @@
     }
 
     public void expireConversation(Object conversationID) {
-        ExtendedConversation conv = getConversation(conversationID);
+        ConversationExt conv = getConversation(conversationID);
         if (conv != null) {
             for (ConversationListener listener : listeners) {
                 listener.conversationExpired(conv);
@@ -145,7 +150,7 @@
     /**
      * @see org.apache.tuscany.sca.core.conversation.ConversationManager#getConversation(java.lang.Object)
      */
-    public ExtendedConversation getConversation(Object conversationID) {
+    public ConversationExt getConversation(Object conversationID) {
         // ConcurrentHashMap cannot take null key
         return conversationID == null ? null : conversations.get(conversationID);
     }
@@ -179,12 +184,12 @@
     /**
      * @see org.apache.tuscany.sca.core.conversation.ConversationManager#startConversation(java.lang.Object)
      */
-    public ExtendedConversation startConversation(Object conversationID) {
+    public ConversationExt startConversation(Object conversationID) {
     	
         if (conversationID == null) {
             conversationID = UUID.randomUUID().toString();
         }
-        ExtendedConversation conversation = getConversation(conversationID);
+        ConversationExt conversation = getConversation(conversationID);
         if (conversation != null && conversation.getState() != ConversationState.ENDED) {
             throw new IllegalStateException(conversation + " already exists.");
         }

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ConversationManagerImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ConversationManagerImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ConversationManagerImpl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManagerImpl.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManagerImpl.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ConversationManagerImpl.java:694816-713804

Copied: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ExtendedConversationImpl.java (from r722959, tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversationImpl.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ExtendedConversationImpl.java?p2=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ExtendedConversationImpl.java&p1=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversationImpl.java&r1=722959&r2=723218&rev=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversationImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ExtendedConversationImpl.java Wed Dec  3 22:05:21 2008
@@ -16,8 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.sca.core.conversation;
+package org.apache.tuscany.sca.core.conversation.impl;
 
+import org.apache.tuscany.sca.core.conversation.ConversationState;
+import org.apache.tuscany.sca.core.conversation.ConversationExt;
 import org.apache.tuscany.sca.core.scope.ScopedImplementationProvider;
 import org.apache.tuscany.sca.provider.ImplementationProvider;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
@@ -27,7 +29,7 @@
  * 
  * @version $Rev$ $Date$
  */
-public class ExtendedConversationImpl implements ExtendedConversation, Runnable {
+public class ExtendedConversationImpl implements ConversationExt, Runnable {
 	
     private final ConversationManagerImpl manager;
     private volatile Object conversationID;

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ExtendedConversationImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ExtendedConversationImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/impl/ExtendedConversationImpl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversationImpl.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversationImpl.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/conversation/ExtendedConversationImpl.java:694816-713804

Copied: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/InstanceWrapper.java (from r722959, tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/InstanceWrapper.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/InstanceWrapper.java?p2=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/InstanceWrapper.java&p1=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/InstanceWrapper.java&r1=722959&r2=723218&rev=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/InstanceWrapper.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/InstanceWrapper.java Wed Dec  3 22:05:21 2008
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.sca.core.context;
+package org.apache.tuscany.sca.core.factory;
 
 import org.apache.tuscany.sca.core.scope.TargetDestructionException;
 import org.apache.tuscany.sca.core.scope.TargetInitializationException;

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/InstanceWrapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/InstanceWrapper.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/InstanceWrapper.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/context/InstanceWrapper.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/context/InstanceWrapper.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/InstanceWrapper.java:694816-713804

Copied: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CachedProxy.java (from r722959, tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/SCAProxy.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CachedProxy.java?p2=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CachedProxy.java&p1=tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/SCAProxy.java&r1=722959&r2=723218&rev=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/SCAProxy.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CachedProxy.java Wed Dec  3 22:05:21 2008
@@ -18,57 +18,53 @@
  */
 package org.apache.tuscany.sca.core.invocation;
 
+import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Proxy;
-import java.lang.reflect.Constructor;
 import java.util.WeakHashMap;
 
-public class SCAProxy extends Proxy 
-{
-     protected SCAProxy (InvocationHandler handler) {
-         super(handler);
-     }
-     
-     // This is a cache containing the proxy class constructor for each business interface.
-     // This improves performance compared to calling Proxy.newProxyInstance()
-     // every time that a proxy is needed.
-     private static WeakHashMap cache = new WeakHashMap<Class, Object>();
-     
-     public static Object newProxyInstance(ClassLoader classloader, Class aclass[], InvocationHandler invocationhandler)
-        throws IllegalArgumentException
-    {
+public class CachedProxy extends Proxy {
+    private static final long serialVersionUID = 783519311852563060L;
+
+    protected CachedProxy(InvocationHandler handler) {
+        super(handler);
+    }
+
+    // This is a cache containing the proxy class constructor for each business interface.
+    // This improves performance compared to calling Proxy.newProxyInstance()
+    // every time that a proxy is needed.
+    private static WeakHashMap<Class<?>, Object> cache = new WeakHashMap<Class<?>, Object>();
+
+    public static Object newProxyInstance(ClassLoader classloader, Class aclass[], InvocationHandler invocationhandler)
+        throws IllegalArgumentException {
         try {
-            if(invocationhandler == null)
+            if (invocationhandler == null)
                 throw new NullPointerException();
             // Lookup cached constructor.  aclass[0] is the reference's business interface.
             Constructor proxyCTOR;
-            synchronized(cache) {
-                proxyCTOR = (Constructor) cache.get(aclass[0]);
+            synchronized (cache) {
+                proxyCTOR = (Constructor)cache.get(aclass[0]);
             }
-            if(proxyCTOR == null) {
+            if (proxyCTOR == null) {
                 Class proxyClass = getProxyClass(classloader, aclass);
                 proxyCTOR = proxyClass.getConstructor(constructorParams);
-                synchronized(cache){
-                    cache.put(aclass[0],proxyCTOR);
+                synchronized (cache) {
+                    cache.put(aclass[0], proxyCTOR);
                 }
             }
-            return proxyCTOR.newInstance(new Object[] { invocationhandler });
-        }
-        catch(NoSuchMethodException e) {
+            return proxyCTOR.newInstance(new Object[] {invocationhandler});
+        } catch (NoSuchMethodException e) {
             throw new InternalError(e.toString());
-        }
-        catch(IllegalAccessException e) {
+        } catch (IllegalAccessException e) {
             throw new InternalError(e.toString());
-        }
-        catch (InstantiationException e) {
+        } catch (InstantiationException e) {
             throw new InternalError(e.toString());
-        }
-        catch (InvocationTargetException e) {
+        } catch (InvocationTargetException e) {
             throw new InternalError(e.toString());
         }
     }
-    
-    private static final Class constructorParams[] = { InvocationHandler.class };
 
-}
\ No newline at end of file
+    private static final Class<?> constructorParams[] = {InvocationHandler.class};
+
+}

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CachedProxy.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/SCAProxy.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/SCAProxy.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/SCAProxy.java:694816-713804

Added: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallableReferenceObjectFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallableReferenceObjectFactory.java?rev=723218&view=auto
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallableReferenceObjectFactory.java (added)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallableReferenceObjectFactory.java Wed Dec  3 22:05:21 2008
@@ -0,0 +1,63 @@
+/*
+ * 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.sca.core.invocation;
+
+import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.core.factory.ObjectCreationException;
+import org.apache.tuscany.sca.core.factory.ObjectFactory;
+import org.apache.tuscany.sca.runtime.RuntimeComponent;
+import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
+import org.osoa.sca.CallableReference;
+
+/**
+ * Uses a wire to return a CallableReference
+ * 
+ * @version $Rev$ $Date$
+ */
+public class CallableReferenceObjectFactory implements ObjectFactory<CallableReference<?>> {
+    private Class<?> businessInterface;
+    private RuntimeComponent component;
+    private RuntimeComponentReference reference;
+    private Binding binding;
+
+    /**
+     * Constructor.
+     * 
+     * To support the @Reference protected CallableReference<MyService> ref;
+     * 
+     * @param businessInterface the interface to inject
+     * @param component the component defining the reference to be injected
+     * @param reference the reference to be injected
+     * @param binding the binding for the reference
+     */
+    public CallableReferenceObjectFactory(Class<?> businessInterface,
+                                          RuntimeComponent component,
+                                          RuntimeComponentReference reference,
+                                          Binding binding) {
+        this.businessInterface = businessInterface;
+        this.component = component;
+        this.reference = reference;
+        this.binding = binding;
+    }
+
+    public CallableReference<?> getInstance() throws ObjectCreationException {
+        return component.getComponentContext().getServiceReference(businessInterface, reference, binding);
+    }
+
+}

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallableReferenceObjectFactory.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallableReferenceObjectFactory.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallableReferenceObjectFactory.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallableReferenceObjectFactory.java:694816-713804

Added: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackInterfaceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackInterfaceInterceptor.java?rev=723218&view=auto
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackInterfaceInterceptor.java (added)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackInterfaceInterceptor.java Wed Dec  3 22:05:21 2008
@@ -0,0 +1,57 @@
+/*
+ * 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.sca.core.invocation;
+
+import org.apache.tuscany.sca.invocation.Interceptor;
+import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.invocation.Message;
+import org.apache.tuscany.sca.runtime.ReferenceParameters;
+import org.osoa.sca.NoRegisteredCallbackException;
+
+/**
+ * An interceptor applied to the forward direction of a wire that ensures the callback target implements the required
+ * service contract. This is required as callback targets may be set dynamically by service implementations.
+ *
+ * @version $Rev$ $Date$
+ */
+public class CallbackInterfaceInterceptor implements Interceptor {
+    private Invoker next;
+
+    public CallbackInterfaceInterceptor() {
+    }
+
+    public Message invoke(Message msg) {
+        ReferenceParameters parameters = msg.getFrom().getReferenceParameters();
+        if (parameters.getCallbackObjectID() != null || parameters.getCallbackReference() != msg.getFrom()
+            .getCallbackEndpoint()) {
+            return next.invoke(msg);
+        } else {
+            throw new NoRegisteredCallbackException("Callback target does not implement the callback interface");
+        }
+    }
+
+    public void setNext(Invoker next) {
+        this.next = next;
+    }
+
+    public Invoker getNext() {
+        return next;
+    }
+
+}

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackInterfaceInterceptor.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackInterfaceInterceptor.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackInterfaceInterceptor.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackInterfaceInterceptor.java:694816-713804

Added: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackReferenceObjectFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackReferenceObjectFactory.java?rev=723218&view=auto
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackReferenceObjectFactory.java (added)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackReferenceObjectFactory.java Wed Dec  3 22:05:21 2008
@@ -0,0 +1,49 @@
+/*
+ * 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.sca.core.invocation;
+
+import java.util.List;
+
+import org.apache.tuscany.sca.core.factory.ObjectCreationException;
+import org.apache.tuscany.sca.core.factory.ObjectFactory;
+import org.apache.tuscany.sca.core.invocation.impl.CallbackReferenceImpl;
+import org.apache.tuscany.sca.runtime.RuntimeWire;
+import org.osoa.sca.CallableReference;
+
+/**
+ * Uses a wire to return a CallableReference
+ * 
+ * @version $Rev: 574648 $ $Date: 2007-09-11 18:45:36 +0100 (Tue, 11 Sep 2007) $
+ */
+public class CallbackReferenceObjectFactory implements ObjectFactory<CallableReference<?>> {
+    private Class<?> businessInterface;
+    private ProxyFactory proxyFactory;
+    private List<RuntimeWire> wires;
+
+    public CallbackReferenceObjectFactory(Class<?> interfaze, ProxyFactory proxyFactory, List<RuntimeWire> wires) {
+        this.businessInterface = interfaze;
+        this.proxyFactory = proxyFactory;
+        this.wires = wires;
+    }
+
+    public CallableReference<?> getInstance() throws ObjectCreationException {
+        return CallbackReferenceImpl.newInstance(businessInterface, proxyFactory, wires);
+    }
+
+}

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackReferenceObjectFactory.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackReferenceObjectFactory.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackReferenceObjectFactory.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackReferenceObjectFactory.java:694816-713804

Added: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java?rev=723218&view=auto
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java (added)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java Wed Dec  3 22:05:21 2008
@@ -0,0 +1,47 @@
+/*
+ * 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.sca.core.invocation;
+
+import java.util.List;
+
+import org.apache.tuscany.sca.core.factory.ObjectCreationException;
+import org.apache.tuscany.sca.core.factory.ObjectFactory;
+import org.apache.tuscany.sca.runtime.RuntimeWire;
+
+/**
+ * Returns proxy instance for a wire callback
+ *
+ * @version $Rev$ $Date$
+ */
+public class CallbackWireObjectFactory<B> implements ObjectFactory<B> {
+    private Class<B> businessInterface;
+    private ProxyFactory proxyFactory;
+    private List<RuntimeWire> wires;
+
+    public CallbackWireObjectFactory(Class<B> interfaze, ProxyFactory proxyFactory, List<RuntimeWire> wires) {
+        this.businessInterface = interfaze;
+        this.proxyFactory = proxyFactory;
+        this.wires = wires;
+    }
+
+    public B getInstance() throws ObjectCreationException {
+        return proxyFactory.createCallbackProxy(businessInterface, wires);
+    }
+
+}

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java:694816-713804

Added: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CglibProxyFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CglibProxyFactory.java?rev=723218&view=auto
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CglibProxyFactory.java (added)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CglibProxyFactory.java Wed Dec  3 22:05:21 2008
@@ -0,0 +1,152 @@
+/*
+ * 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.sca.core.invocation;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import net.sf.cglib.proxy.Callback;
+import net.sf.cglib.proxy.Enhancer;
+import net.sf.cglib.proxy.Factory;
+import net.sf.cglib.proxy.MethodInterceptor;
+import net.sf.cglib.proxy.MethodProxy;
+
+import org.apache.tuscany.sca.core.context.impl.CallableReferenceImpl;
+import org.apache.tuscany.sca.core.context.impl.ServiceReferenceImpl;
+import org.apache.tuscany.sca.core.invocation.impl.CallbackReferenceImpl;
+import org.apache.tuscany.sca.core.invocation.impl.JDKCallbackInvocationHandler;
+import org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler;
+import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+import org.apache.tuscany.sca.invocation.MessageFactory;
+import org.apache.tuscany.sca.runtime.RuntimeWire;
+import org.osoa.sca.CallableReference;
+import org.osoa.sca.ServiceReference;
+
+/**
+ * The implementation of a wire service that uses cglib dynamic proxies
+ * 
+ * @version $Rev$ $Date$
+ */
+public class CglibProxyFactory implements ProxyFactory {
+    private MessageFactory messageFactory;
+
+    public CglibProxyFactory(MessageFactory messageFactory, InterfaceContractMapper mapper) {
+        this.messageFactory = messageFactory;
+
+    }
+
+    public <T> T createProxy(Class<T> interfaze, RuntimeWire wire) throws ProxyCreationException {
+        ServiceReference<T> serviceReference = new ServiceReferenceImpl(interfaze, wire, this);
+        return createProxy(serviceReference);
+    }
+
+    /**
+     * create the proxy with cglib. use the same JDKInvocationHandler as
+     * JDKProxyService.
+     */
+    public <T> T createProxy(CallableReference<T> callableReference) throws ProxyCreationException {
+        Enhancer enhancer = new Enhancer();
+        Class<T> interfaze = callableReference.getBusinessInterface();
+        enhancer.setSuperclass(interfaze);
+        enhancer.setCallback(new CglibMethodInterceptor<T>(callableReference));
+        Object proxy = enhancer.create();
+		((CallableReferenceImpl)callableReference).setProxy(proxy);
+        return interfaze.cast(proxy);
+    }
+
+    /**
+     * create the callback proxy with cglib. use the same
+     * JDKCallbackInvocationHandler as JDKProxyService.
+     */
+    public <T> T createCallbackProxy(Class<T> interfaze, final List<RuntimeWire> wires) throws ProxyCreationException {
+        CallbackReferenceImpl<T> callbackReference = CallbackReferenceImpl.newInstance(interfaze, this, wires);
+        return callbackReference != null ? createCallbackProxy(callbackReference) : null;
+    }
+
+    /**
+     * create the callback proxy with cglib. use the same
+     * JDKCallbackInvocationHandler as JDKProxyService.
+     */
+    public <T> T createCallbackProxy(CallbackReferenceImpl<T> callbackReference) throws ProxyCreationException {
+        Enhancer enhancer = new Enhancer();
+        Class<T> interfaze = callbackReference.getBusinessInterface();
+        enhancer.setSuperclass(interfaze);
+        enhancer.setCallback(new CglibMethodInterceptor<T>(callbackReference));
+        Object proxy = enhancer.create();
+		callbackReference.setProxy(proxy);
+        return interfaze.cast(proxy);
+    }
+
+    @SuppressWarnings("unchecked")
+    public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
+        if (isProxyClass(target.getClass())) {
+            Factory factory = (Factory)target;
+            Callback[] callbacks = factory.getCallbacks();
+            if (callbacks.length != 1 || !(callbacks[0] instanceof CglibMethodInterceptor)) {
+                throw new IllegalArgumentException("The object is not a known proxy.");
+            }
+            CglibMethodInterceptor interceptor = (CglibMethodInterceptor)callbacks[0];
+            return (R)interceptor.invocationHandler.getCallableReference();
+        } else {
+            throw new IllegalArgumentException("The object is not a known proxy.");
+        }
+    }
+
+    /**
+     * @see org.apache.tuscany.sca.core.invocation.ProxyFactory#isProxyClass(java.lang.Class)
+     */
+    public boolean isProxyClass(Class<?> clazz) {
+        return Factory.class.isAssignableFrom(clazz);
+    }
+
+    private class CglibMethodInterceptor<T> implements MethodInterceptor {
+        private JDKInvocationHandler invocationHandler;
+
+        public CglibMethodInterceptor(CallableReference<T> callableReference) {
+            invocationHandler = new JDKInvocationHandler(messageFactory, callableReference);
+        }
+
+        public CglibMethodInterceptor(CallbackReferenceImpl<T> callbackReference) {
+            invocationHandler = new JDKCallbackInvocationHandler(messageFactory, callbackReference);
+        }
+
+        /*
+        public CglibMethodInterceptor(Class<T> interfaze, RuntimeWire wire) {
+            ServiceReference<T> serviceRef = new ServiceReferenceImpl<T>(interfaze, wire, CglibProxyFactory.this);
+            invocationHandler = new JDKInvocationHandler(messageFactory, serviceRef);
+        }
+
+        public CglibMethodInterceptor(Class<T> interfaze, List<RuntimeWire> wires) {
+            CallbackReferenceImpl ref = new CallbackReferenceImpl(interfaze, CglibProxyFactory.this, wires);
+            invocationHandler = new JDKCallbackInvocationHandler(messageFactory, ref);
+        }
+		*/
+
+        /**
+         * @see net.sf.cglib.proxy.MethodInterceptor#intercept(java.lang.Object, java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy)
+         */
+        public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
+            Object result = invocationHandler.invoke(proxy, method, args);
+            return result;
+        }
+
+    }
+
+}

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CglibProxyFactory.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CglibProxyFactory.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CglibProxyFactory.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CglibProxyFactory.java:694816-713804

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java?rev=723218&r1=723217&r2=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java Wed Dec  3 22:05:21 2008
@@ -22,6 +22,7 @@
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.core.invocation.impl.JDKProxyFactory;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.invocation.MessageFactory;
 

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java?rev=723218&r1=723217&r2=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java Wed Dec  3 22:05:21 2008
@@ -21,13 +21,14 @@
 
 import java.util.List;
 
+import org.apache.tuscany.sca.core.invocation.impl.CallbackReferenceImpl;
 import org.apache.tuscany.sca.runtime.RuntimeWire;
 import org.osoa.sca.CallableReference;
 
 /**
  * An extensible proxy factory.
  *
- * @version $Rev: $ $Date: $
+ * @version $Rev$ $Date$
  */
 public class ExtensibleProxyFactory implements ProxyFactory {
     

Added: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java?rev=723218&view=auto
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java (added)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java Wed Dec  3 22:05:21 2008
@@ -0,0 +1,194 @@
+/*
+ * 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.sca.core.invocation;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Interceptor;
+import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.invocation.Message;
+import org.apache.tuscany.sca.runtime.EndpointReference;
+import org.apache.tuscany.sca.runtime.RuntimeWire;
+import org.apache.tuscany.sca.work.WorkScheduler;
+import org.osoa.sca.ServiceRuntimeException;
+
+/**
+ * Adds non-blocking behavior to an invocation chain
+ *
+ * @version $Rev$ $Date$
+ */
+public class NonBlockingInterceptor implements Interceptor {
+
+    private static final Message RESPONSE = new ImmutableMessage();
+
+    /**
+     * The JDK logger that will be used to log messages.
+     */
+    private static final Logger LOGGER = Logger.getLogger(NonBlockingInterceptor.class.getName());
+
+    private WorkScheduler workScheduler;
+    private Invoker next;
+
+    public NonBlockingInterceptor(WorkScheduler workScheduler) {
+        this.workScheduler = workScheduler;
+    }
+
+    public NonBlockingInterceptor(WorkScheduler workScheduler, Interceptor next) {
+        this.workScheduler = workScheduler;
+        this.next = next;
+    }
+
+    /**
+     * Sets desired workScheduler to NonBlockingInterceptor. This is a useful function for the extension framework
+     * to set desired workmanager on the InvocationChain, other than default workmanager which is set per Tuscany runtime.
+     * Using this function, extension framework can set desired workmanager on InvocationChain during post wire processing.
+     * @param workScheduler workScheduler which contains workmanager
+     */
+    public void setWorkScheduler(WorkScheduler workScheduler){
+        this.workScheduler = workScheduler;
+    }
+
+    public Message invoke(final Message msg) {
+        // Schedule the invocation of the next interceptor in a new Work instance
+        try {
+            workScheduler.scheduleWork(new Runnable() {
+                public void run() {
+                    Message context = ThreadMessageContext.setMessageContext(msg);
+                    try {
+                        Message response = null;
+
+                        Throwable ex = null;
+                        try {
+                            response = next.invoke(msg);
+                        } catch (Throwable t) {
+                            ex = t;
+                        }
+
+                        // Tuscany-2225 - Did the @OneWay method complete successfully?
+                        // (i.e. no exceptions)
+                        if (response != null && response.isFault()) {
+                            // The @OneWay method threw an Exception. Lets log it and
+                            // then pass it on to the WorkScheduler so it can notify any
+                            // listeners
+                            ex = (Throwable)response.getBody();
+                        }
+                        if (ex != null) {
+                            LOGGER.log(Level.SEVERE, "Exception from @OneWay invocation", ex);
+                            throw new ServiceRuntimeException("Exception from @OneWay invocation", ex);
+                        }
+                    } finally {
+                        ThreadMessageContext.setMessageContext(context);
+                    }
+                }
+            });
+        } catch (Exception e) {
+            throw new ServiceRuntimeException(e);
+        }
+        return RESPONSE;
+    }
+
+    public Invoker getNext() {
+        return next;
+    }
+
+    public void setNext(Invoker next) {
+        this.next = next;
+    }
+
+    /**
+     * A dummy message passed back on an invocation
+     */
+    private static class ImmutableMessage implements Message {
+
+        public Object getBody() {
+            return null;
+        }
+
+        public void setBody(Object body) {
+            if (body != null) {
+                throw new UnsupportedOperationException();
+            }
+        }
+
+        public void setCallbackWires(LinkedList<RuntimeWire> wires) {
+
+        }
+
+        public Object getMessageID() {
+            return null;
+        }
+
+        public void setMessageID(Object messageId) {
+            throw new UnsupportedOperationException();
+        }
+
+        public boolean isFault() {
+            return false;
+        }
+
+        public void setFaultBody(Object fault) {
+            throw new UnsupportedOperationException();
+        }
+
+        public EndpointReference getFrom() {
+            return null;
+        }
+
+        public EndpointReference getTo() {
+            return null;
+        }
+
+        public void setFrom(EndpointReference from) {
+            throw new UnsupportedOperationException();
+        }
+
+        public void setTo(EndpointReference to) {
+            throw new UnsupportedOperationException();
+        }
+
+        public Operation getOperation() {
+            return null;
+        }
+
+        public void setOperation(Operation op) {
+            throw new UnsupportedOperationException();
+        }
+
+        /**
+         * @see org.apache.tuscany.sca.invocation.Message#getReplyTo()
+         */
+        public EndpointReference getReplyTo() {
+            return null;
+        }
+
+        public Map<String, Object> getQoSContext() {
+            return null;
+        }
+        
+        public List<Object> getHeaders() {
+            return null;
+        }        
+    }
+
+}

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java:694816-713804

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactory.java?rev=723218&r1=723217&r2=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactory.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactory.java Wed Dec  3 22:05:21 2008
@@ -20,6 +20,7 @@
 
 import java.util.List;
 
+import org.apache.tuscany.sca.core.invocation.impl.CallbackReferenceImpl;
 import org.apache.tuscany.sca.runtime.RuntimeWire;
 import org.osoa.sca.CallableReference;
 

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java?rev=723218&r1=723217&r2=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java Wed Dec  3 22:05:21 2008
@@ -21,10 +21,10 @@
 
 import java.lang.reflect.InvocationTargetException;
 
-import org.apache.tuscany.sca.core.context.InstanceWrapper;
 import org.apache.tuscany.sca.core.conversation.ConversationManager;
 import org.apache.tuscany.sca.core.conversation.ConversationState;
-import org.apache.tuscany.sca.core.conversation.ExtendedConversation;
+import org.apache.tuscany.sca.core.conversation.ConversationExt;
+import org.apache.tuscany.sca.core.factory.InstanceWrapper;
 import org.apache.tuscany.sca.core.scope.Scope;
 import org.apache.tuscany.sca.core.scope.ScopeContainer;
 import org.apache.tuscany.sca.core.scope.ScopedRuntimeComponent;
@@ -50,7 +50,7 @@
 public class RuntimeWireInvoker implements Invoker{
     protected ConversationManager conversationManager;
     protected boolean conversational;
-    protected ExtendedConversation conversation;
+    protected ConversationExt conversation;
     protected MessageFactory messageFactory;
     protected Object conversationID;
     protected Object callbackID;

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ThreadMessageContext.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ThreadMessageContext.java?rev=723218&r1=723217&r2=723218&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ThreadMessageContext.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ThreadMessageContext.java Wed Dec  3 22:05:21 2008
@@ -18,7 +18,8 @@
  */
 package org.apache.tuscany.sca.core.invocation;
 
-import org.apache.tuscany.sca.core.assembly.EndpointReferenceImpl;
+import org.apache.tuscany.sca.core.assembly.impl.EndpointReferenceImpl;
+import org.apache.tuscany.sca.core.invocation.impl.MessageImpl;
 import org.apache.tuscany.sca.invocation.Message;
 
 /**

Added: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/WireObjectFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/WireObjectFactory.java?rev=723218&view=auto
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/WireObjectFactory.java (added)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/WireObjectFactory.java Wed Dec  3 22:05:21 2008
@@ -0,0 +1,55 @@
+/*
+ * 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.sca.core.invocation;
+
+import org.apache.tuscany.sca.core.context.impl.ServiceReferenceImpl;
+import org.apache.tuscany.sca.core.factory.ObjectCreationException;
+import org.apache.tuscany.sca.core.factory.ObjectFactory;
+import org.apache.tuscany.sca.core.invocation.impl.NoMethodForOperationException;
+import org.apache.tuscany.sca.runtime.RuntimeWire;
+
+/**
+ * Uses a wire to return an object instance
+ * 
+ * @version $Rev$ $Date$
+ */
+public class WireObjectFactory<T> implements ObjectFactory<T> {
+    private Class<T> interfaze;
+    private RuntimeWire wire;
+    private ProxyFactory proxyService;
+    
+    /**
+     * Constructor.
+     * 
+     * @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
+     */
+    public WireObjectFactory(Class<T> interfaze, RuntimeWire wire, ProxyFactory proxyService) {
+        this.interfaze = interfaze;
+        this.wire = wire;
+        this.proxyService = proxyService;
+    }
+
+    public T getInstance() throws ObjectCreationException {
+        return new ServiceReferenceImpl<T>(interfaze, wire, proxyService).getProxy();
+    }
+
+}

Propchange: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/WireObjectFactory.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 22:05:21 2008
@@ -0,0 +1,3 @@
+/tuscany/branches/sca-java-1.3/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/WireObjectFactory.java:671193
+/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/WireObjectFactory.java:713805-714043
+/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/WireObjectFactory.java:694816-713804