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/09 20:20:27 UTC

svn commit: r724840 - in /tuscany/java/sca/modules: binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java core/src/main/java/org/apache/tuscany/sca/core/assembly/RuntimeAssemblyFactory.java

Author: rfeng
Date: Tue Dec  9 11:20:26 2008
New Revision: 724840

URL: http://svn.apache.org/viewvc?rev=724840&view=rev
Log:
Fix the access violation to EndpointReferenceImpl

Modified:
    tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
    tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/RuntimeAssemblyFactory.java

Modified: tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java?rev=724840&r1=724839&r2=724840&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java (original)
+++ tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java Tue Dec  9 11:20:26 2008
@@ -71,6 +71,7 @@
 import org.apache.axis2.transport.jms.JMSSender;
 import org.apache.axis2.transport.jms.JMSUtils;
 import org.apache.tuscany.sca.assembly.AbstractContract;
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Binding;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceClient.URIResolverImpl;
@@ -80,7 +81,8 @@
 import org.apache.tuscany.sca.binding.ws.axis2.policy.configurator.Axis2BindingHeaderConfigurator;
 import org.apache.tuscany.sca.binding.ws.axis2.policy.header.Axis2HeaderPolicy;
 import org.apache.tuscany.sca.binding.ws.axis2.policy.header.Axis2SOAPHeaderString;
-import org.apache.tuscany.sca.core.assembly.impl.EndpointReferenceImpl;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+import org.apache.tuscany.sca.core.assembly.RuntimeAssemblyFactory;
 import org.apache.tuscany.sca.host.http.ServletHost;
 import org.apache.tuscany.sca.interfacedef.Interface;
 import org.apache.tuscany.sca.interfacedef.Operation;
@@ -252,6 +254,14 @@
         }
     }
 
+    // FIXME: [rfeng] Need to have a better way
+    private EndpointReference createEndpointReference(String uri) {
+        FactoryExtensionPoint factories =
+            component.getComponentContext().getExtensionPointRegistry().getExtensionPoint(FactoryExtensionPoint.class);
+        RuntimeAssemblyFactory factory = (RuntimeAssemblyFactory)factories.getFactory(AssemblyFactory.class);
+        return factory.createEndpointReference(uri);
+    }
+    
     private String computeEndpointURI(String uri, ServletHost servletHost) {
 
         if (uri == null) {
@@ -713,14 +723,14 @@
         if (callbackAddress != null ||
             callbackID != null ||
             conversationID != null) {
-            from = new EndpointReferenceImpl(null);
+            from = createEndpointReference(null);
             parameters = from.getReferenceParameters();
             msg.setFrom(from);
         }
 
         // set the reference parameters into the "From" EPR
         if (callbackAddress != null) {
-            parameters.setCallbackReference(new EndpointReferenceImpl(callbackAddress));
+            parameters.setCallbackReference(createEndpointReference(callbackAddress));
         }
         if (callbackID != null) {
             parameters.setCallbackID(callbackID);

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/RuntimeAssemblyFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/RuntimeAssemblyFactory.java?rev=724840&r1=724839&r2=724840&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/RuntimeAssemblyFactory.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/RuntimeAssemblyFactory.java Tue Dec  9 11:20:26 2008
@@ -20,13 +20,21 @@
 package org.apache.tuscany.sca.core.assembly;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Binding;
 import org.apache.tuscany.sca.assembly.Component;
 import org.apache.tuscany.sca.assembly.ComponentReference;
 import org.apache.tuscany.sca.assembly.ComponentService;
+import org.apache.tuscany.sca.assembly.Contract;
 import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
+import org.apache.tuscany.sca.core.assembly.impl.EndpointReferenceImpl;
+import org.apache.tuscany.sca.core.assembly.impl.ReferenceParametersImpl;
 import org.apache.tuscany.sca.core.assembly.impl.RuntimeComponentImpl;
 import org.apache.tuscany.sca.core.assembly.impl.RuntimeComponentReferenceImpl;
 import org.apache.tuscany.sca.core.assembly.impl.RuntimeComponentServiceImpl;
+import org.apache.tuscany.sca.interfacedef.InterfaceContract;
+import org.apache.tuscany.sca.runtime.EndpointReference;
+import org.apache.tuscany.sca.runtime.ReferenceParameters;
+import org.apache.tuscany.sca.runtime.RuntimeComponent;
 
 /**
  * The runtime version of assembly factory
@@ -52,5 +60,21 @@
     public ComponentService createComponentService() {
         return new RuntimeComponentServiceImpl();
     }
+    
+    // FIXME: [rfeng] We need to find a more consistent story to deal with EPR, EP and CallableReference
+    public EndpointReference createEndpointReference(String uri) {
+        return new EndpointReferenceImpl(uri);
+    }
+
+    public EndpointReference createEndpointReference(RuntimeComponent component,
+                                                     Contract contract,
+                                                     Binding binding,
+                                                     InterfaceContract interfaceContract) {
+        return new EndpointReferenceImpl(component, contract, binding, interfaceContract);
+    }
+    
+    public ReferenceParameters createReferenceParameters() {
+        return new ReferenceParametersImpl();
+    }
 
 }