summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-07-29 00:14:45 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-07-29 00:14:45 +0000
commit49a28fd5795d7ed1d155a2ee571a98e009214281 (patch)
treed19634ec9c8464688804afa3bb438d3ed1502abb /sca-java-2.x/trunk/modules
parentf661a34f0314c405134067c843222312f8408db7 (diff)
Add the parent delegation for the SCA spring application context
Improve the sample to demonstrate the child bean wired to a bean in the parent context (WebApplicationContext) git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@980272 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules')
-rw-r--r--sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SCAParentApplicationContext.java12
-rw-r--r--sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringImplementationStub.java7
-rw-r--r--sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationTie.java3
3 files changed, 15 insertions, 7 deletions
diff --git a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SCAParentApplicationContext.java b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SCAParentApplicationContext.java
index 5b4ef9e130..13fe341881 100644
--- a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SCAParentApplicationContext.java
+++ b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SCAParentApplicationContext.java
@@ -69,7 +69,15 @@ class SCAParentApplicationContext implements ApplicationContext {
* @return Object - a Bean which matches the requested bean
*/
public Object getBean(String name, Class requiredType) throws BeansException {
- return implementation.getBean(name, requiredType);
+ Object bean = implementation.getBean(name, requiredType);
+ if (bean == null && getParent() != null) {
+ bean = getParent().getBean(name, requiredType);
+ }
+ if (bean == null) {
+ throw new NoSuchBeanDefinitionException("Unable to find Bean with name " + name);
+ } else {
+ return bean;
+ }
} // end method getBean( String, Class )
public Object getBean(String name, Object[] args) throws BeansException {
@@ -77,7 +85,7 @@ class SCAParentApplicationContext implements ApplicationContext {
}
public <T> T getBean(Class<T> clazz) throws BeansException {
- return clazz.cast(implementation.getBean(clazz.getName(), clazz));
+ return clazz.cast(getBean(clazz.getName(), clazz));
}
public Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> clazz) throws BeansException {
diff --git a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringImplementationStub.java b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringImplementationStub.java
index bf46765f13..20e5d6b8d2 100644
--- a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringImplementationStub.java
+++ b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringImplementationStub.java
@@ -22,7 +22,6 @@ package org.apache.tuscany.sca.implementation.spring.runtime.context;
import java.lang.reflect.Method;
import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.ApplicationContext;
/**
@@ -80,9 +79,9 @@ public class SpringImplementationStub {
try {
Object bean = getBean.invoke(tie, new Object[] {name, requiredType});
- if (bean == null) {
- throw new NoSuchBeanDefinitionException("Unable to find Bean with name " + name);
- }
+// if (bean == null) {
+// throw new NoSuchBeanDefinitionException("Unable to find Bean with name " + name);
+// }
return bean;
} catch (Exception e) {
diff --git a/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationTie.java b/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationTie.java
index 81cbed28dc..d8b7d0c285 100644
--- a/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationTie.java
+++ b/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationTie.java
@@ -132,7 +132,8 @@ public class SpringImplementationTie {
} // end if
} // end for
// TODO: NoSuchBeanException
- throw new RuntimeException("Unable to find Bean with name " + name);
+ // throw new RuntimeException("Unable to find Bean with name " + name);
+ return null;
} // end method getBean( String, Class )