summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-08-20 23:42:39 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-08-20 23:42:39 +0000
commit8eee1434bbc9b66bf5f005cefc88306c9bf999dd (patch)
tree7fb867f06b9caada7dac045bc983f7cfd8ad2cc2 /sca-java-2.x
parent387e76929d9df78c3adbacc2b37693fc0741ca2e (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')
-rw-r--r--sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java10
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