Author: slaws
Date: Thu Aug  4 08:54:07 2011
New Revision: 1153789

URL: http://svn.apache.org/viewvc?rev=1153789&view=rev
Log:
TUSCANY-3904 - Apply Greg's patch so that the correct endpoint is picked up 
when SCAClientFactory.getService() references a promoted service. 

Modified:
    
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentImpl.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentImpl.java?rev=1153789&r1=1153788&r2=1153789&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentImpl.java
 Thu Aug  4 08:54:07 2011
@@ -118,41 +118,14 @@ public class RuntimeComponentImpl extend
     public <B> ServiceReference<B> getServiceReference(Class<B> 
businessInterface, String serviceName) {
         RuntimeComponentContext componentContext = null;
 
-        // If the component is a composite, then we need to find the
-        // non-composite component that provides the requested service
-        if (getImplementation() instanceof Composite) {
-            for (ComponentService componentService : getServices()) {
-                String bindingName = null;
-                if (serviceName != null) {
-                    int index = serviceName.indexOf('/');
-                    if (index != -1) {
-                        bindingName = serviceName.substring(index + 1);
-                        serviceName = serviceName.substring(0, index);
-                    }
-                }
-                if (serviceName == null || 
serviceName.equals(componentService.getName())) {
-                    CompositeService compositeService = 
(CompositeService)componentService.getService();
-                    if (compositeService != null) {
-                        componentContext =
-                            
((RuntimeComponent)compositeService.getPromotedComponent()).getComponentContext();
-                        serviceName = 
compositeService.getPromotedService().getName();
-                        if (bindingName != null) {
-                            serviceName = serviceName + "/" + bindingName;
-                        }
-                        return 
componentContext.createSelfReference(businessInterface, serviceName);
-                    }
-                    break;
-                }
-            }
-            // No matching service found
-            throw new ServiceRuntimeException("Composite service not found: " 
+ serviceName);
+        // TUSCANY-3904 Removed implementation.composite path
+
+        componentContext = getComponentContext();
+        if (serviceName != null) {
+            return componentContext.createSelfReference(businessInterface, 
serviceName);
         } else {
-            componentContext = getComponentContext();
-            if (serviceName != null) {
-                return componentContext.createSelfReference(businessInterface, 
serviceName);
-            } else {
-                return componentContext.createSelfReference(businessInterface);
-            }
+            return componentContext.createSelfReference(businessInterface);
         }
+
     }
 }


Reply via email to