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 2010/08/21 01:42:40 UTC

svn commit: r987674 - /tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java

Author: rfeng
Date: Fri Aug 20 23:42:39 2010
New Revision: 987674

URL: http://svn.apache.org/viewvc?rev=987674&view=rev
Log:
Allow service target to be a bean in the parent context

Modified:
    tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java

Modified: tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java?rev=987674&r1=987673&r2=987674&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java Fri Aug 20 23:42:39 2010
@@ -314,6 +314,7 @@ public class SpringXMLComponentTypeLoade
                 componentType.getServices().add(theService);
                 // Add this service to the Service / Bean map
                 String beanName = serviceElement.getTarget();
+                boolean found = false;
                 for (SpringBeanElement beanElement : beans) {
                     if (beanName.equals(beanElement.getId())) {
                         if (isValidBeanForService(beanElement)) {
@@ -321,9 +322,18 @@ public class SpringXMLComponentTypeLoade
                             theService.getRequiredIntents().addAll(serviceElement.getRequiredIntents());
                             theService.getPolicySets().addAll(serviceElement.getPolicySets());
                             implementation.setBeanForService(theService, beanElement);
+                            found = true;
+                            break;
                         }
                     }
                 } // end for
+                
+                if (!found) {
+                    // REVIEW: Adding a SpringBeanElement "proxy" so that the bean id can be used at runtime to look
+                    // up the bean instance from the parent context
+                    implementation.setBeanForService(theService,
+                                                     new SpringBeanElement(serviceElement.getTarget(), null));
+                }
             } // end while
 
             // Next handle the references