summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/stub/SpringXMLBeanDefinitionLoaderStub.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/stub/SpringXMLBeanDefinitionLoaderStub.java (renamed from sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLLoaderStub.java)59
1 files changed, 35 insertions, 24 deletions
diff --git a/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLLoaderStub.java b/sca-java-2.x/trunk/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/stub/SpringXMLBeanDefinitionLoaderStub.java
index 01208aba19..f34dfb8ceb 100644
--- a/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLLoaderStub.java
+++ b/sca-java-2.x/trunk/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/stub/SpringXMLBeanDefinitionLoaderStub.java
@@ -17,17 +17,20 @@
* under the License.
*/
-package org.apache.tuscany.sca.implementation.spring.introspect;
+package org.apache.tuscany.sca.implementation.spring.processor.stub;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
import org.apache.tuscany.sca.implementation.spring.SpringBeanElement;
import org.apache.tuscany.sca.implementation.spring.SpringSCAPropertyElement;
import org.apache.tuscany.sca.implementation.spring.SpringSCAReferenceElement;
import org.apache.tuscany.sca.implementation.spring.SpringSCAServiceElement;
+import org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader;
+import org.oasisopen.sca.ServiceRuntimeException;
/**
* This is the Tuscany side stub for the corresponding runtime tie class.
@@ -35,13 +38,13 @@ import org.apache.tuscany.sca.implementation.spring.SpringSCAServiceElement;
* needing to know about any Spring classes. See the SpringContextTie class
* in the implementation-spring-runtime module for what the tie does.
*/
-public class SpringXMLLoaderStub {
- private final static String TIE = "org.apache.tuscany.sca.implementation.spring.processor.SpringXMLLoaderTie";
+public class SpringXMLBeanDefinitionLoaderStub implements SpringXMLBeanDefinitionLoader {
+ private final static String TIE = "org.apache.tuscany.sca.implementation.spring.processor.tie.SpringXMLLoaderTie";
private static Method createApplicationContext;
- public SpringXMLLoaderStub() throws Exception {
- synchronized (SpringXMLLoaderStub.class) {
+ public SpringXMLBeanDefinitionLoaderStub() throws Exception {
+ synchronized (SpringXMLBeanDefinitionLoaderStub.class) {
if (createApplicationContext == null) {
Class<?> tieClass = Class.forName(TIE, false, Thread.currentThread().getContextClassLoader());
createApplicationContext =
@@ -55,27 +58,35 @@ public class SpringXMLLoaderStub {
return createApplicationContext.invoke(null, scaParentContext, classLoader, resources);
}
- public void introspect(List<URL> resources,
- List<SpringSCAServiceElement> serviceElements,
- List<SpringSCAReferenceElement> referenceElements,
- List<SpringSCAPropertyElement> propertyElements,
- List<SpringBeanElement> beanElements) throws Exception {
- Object appContext = createApplicationContext(null, Thread.currentThread().getContextClassLoader(), resources);
- Class<?> cls = appContext.getClass();
- Method method = cls.getMethod("getElements", Class.class);
- SpringSCAServiceElement[] serviceArray =
- (SpringSCAServiceElement[])method.invoke(appContext, SpringSCAServiceElement.class);
- serviceElements.addAll(Arrays.asList(serviceArray));
+ public Object load(List<URL> resources,
+ List<SpringSCAServiceElement> serviceElements,
+ List<SpringSCAReferenceElement> referenceElements,
+ List<SpringSCAPropertyElement> propertyElements,
+ List<SpringBeanElement> beanElements,
+ ProcessorContext context) {
+ try {
+ Object appContext =
+ createApplicationContext(null, Thread.currentThread().getContextClassLoader(), resources);
+ Class<?> cls = appContext.getClass();
+ Method method = cls.getMethod("getElements", Class.class);
+ SpringSCAServiceElement[] serviceArray =
+ (SpringSCAServiceElement[])method.invoke(appContext, SpringSCAServiceElement.class);
+ serviceElements.addAll(Arrays.asList(serviceArray));
- SpringSCAReferenceElement[] referenceArray =
- (SpringSCAReferenceElement[])method.invoke(appContext, SpringSCAReferenceElement.class);
- referenceElements.addAll(Arrays.asList(referenceArray));
+ SpringSCAReferenceElement[] referenceArray =
+ (SpringSCAReferenceElement[])method.invoke(appContext, SpringSCAReferenceElement.class);
+ referenceElements.addAll(Arrays.asList(referenceArray));
- SpringSCAPropertyElement[] propertyArray =
- (SpringSCAPropertyElement[])method.invoke(appContext, SpringSCAPropertyElement.class);
- propertyElements.addAll(Arrays.asList(propertyArray));
+ SpringSCAPropertyElement[] propertyArray =
+ (SpringSCAPropertyElement[])method.invoke(appContext, SpringSCAPropertyElement.class);
+ propertyElements.addAll(Arrays.asList(propertyArray));
- SpringBeanElement[] beanArray = (SpringBeanElement[])method.invoke(appContext, SpringBeanElement.class);
- beanElements.addAll(Arrays.asList(beanArray));
+ SpringBeanElement[] beanArray = (SpringBeanElement[])method.invoke(appContext, SpringBeanElement.class);
+ beanElements.addAll(Arrays.asList(beanArray));
+
+ return appContext;
+ } catch (Throwable e) {
+ throw new ServiceRuntimeException(e);
+ }
}
}