diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-08-20 23:42:39 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-08-20 23:42:39 +0000 |
commit | 8eee1434bbc9b66bf5f005cefc88306c9bf999dd (patch) | |
tree | 7fb867f06b9caada7dac045bc983f7cfd8ad2cc2 /sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org | |
parent | 387e76929d9df78c3adbacc2b37693fc0741ca2e (diff) |
Allow service target to be a bean in the parent context
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@987674 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org')
-rw-r--r-- | sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java b/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java index 1b0ad108fb..9d360ebc2b 100644 --- a/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java +++ b/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java @@ -314,6 +314,7 @@ public class SpringXMLComponentTypeLoader { 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 SpringXMLComponentTypeLoader { 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 |