diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-09-08 05:55:12 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-09-08 05:55:12 +0000 |
commit | eb7dc287d00e10e561043e859924ebc656235f83 (patch) | |
tree | 384866fe4783625dc54999f7dcccb8732105413b /sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java | |
parent | a78cc2308b2f7f7c652b818e8e29de705db1c8cc (diff) |
Remove impl spring modules as now they are in trunk
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@993612 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java')
-rw-r--r-- | sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java deleted file mode 100644 index 8bcdc8108d..0000000000 --- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.implementation.spring.context.tie; - -import java.net.URL; -import java.util.List; - -import org.apache.tuscany.sca.implementation.spring.processor.tie.ComponentNameAnnotationProcessor; -import org.apache.tuscany.sca.implementation.spring.processor.tie.ComponentStub; -import org.apache.tuscany.sca.implementation.spring.processor.tie.ConstructorAnnotationProcessor; -import org.apache.tuscany.sca.implementation.spring.processor.tie.InitDestroyAnnotationProcessor; -import org.apache.tuscany.sca.implementation.spring.processor.tie.PropertyAnnotationProcessor; -import org.apache.tuscany.sca.implementation.spring.processor.tie.PropertyValueStub; -import org.apache.tuscany.sca.implementation.spring.processor.tie.ReferenceAnnotationProcessor; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.AbstractApplicationContext; -import org.springframework.context.support.GenericApplicationContext; -import org.springframework.core.io.UrlResource; - -/** - * This is the runtime side tie for the corresponding tuscany side stub class. - * It enables the Tuscany code to invoke methods on a Spring context without - * needing to know about any Spring classes. See the SpringContextStub class - * in the implementation-spring module for what the stub does. - */ -public class SpringContextTie { - - private AbstractApplicationContext springContext; - private SpringImplementationStub implementation; - - public SpringContextTie(SpringImplementationStub implementation, List<URL> resource) { - this.implementation = implementation; - SCAParentApplicationContext scaParentContext = new SCAParentApplicationContext(implementation); - springContext = createApplicationContext(scaParentContext, resource); - } - - public ApplicationContext getApplicationContext() { - return springContext; - } - - public void start() { - // Do refresh here to ensure that Spring Beans are not touched before the SCA config process is complete... - springContext.refresh(); - springContext.start(); - } - - public void close() { - springContext.close(); - if (springContext instanceof GenericApplicationContext) { - springContext.stop(); - } - } - - /** - * Include BeanPostProcessor to deal with SCA Annotations in Spring Bean - */ - private AbstractApplicationContext createApplicationContext(SCAParentApplicationContext scaParentContext, - List<URL> resources) { - - GenericApplicationContext appCtx = - new SCAGenericApplicationContext(scaParentContext, implementation.getClassLoader()); - XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(appCtx); - - // REVIEW: [rfeng] How do we control the schema validation - xmlReader.setValidating(false); - - for (URL resource : resources) { - xmlReader.loadBeanDefinitions(new UrlResource(resource)); - } - xmlReader.setBeanClassLoader(implementation.getClassLoader()); - includeAnnotationProcessors(appCtx.getBeanFactory()); - return appCtx; - - } - - public Object getBean(String id) throws BeansException { - return springContext.getBean(id); - } - - /** - * Include BeanPostProcessor to deal with SCA Annotations in Spring Bean - */ - private void includeAnnotationProcessors(ConfigurableListableBeanFactory beanFactory) { - - // Processor to deal with @Init and @Destroy SCA Annotations - BeanPostProcessor initDestroyProcessor = new InitDestroyAnnotationProcessor(); - beanFactory.addBeanPostProcessor(initDestroyProcessor); - - // Processor to deal with @Reference SCA Annotations - ComponentStub component = new ComponentStub(implementation.getComponentTie()); - BeanPostProcessor referenceProcessor = new ReferenceAnnotationProcessor(component); - beanFactory.addBeanPostProcessor(referenceProcessor); - - // Processor to deal with @Property SCA Annotations - PropertyValueStub pvs = new PropertyValueStub(implementation.getPropertyValueTie()); - BeanPostProcessor propertyProcessor = new PropertyAnnotationProcessor(pvs); - beanFactory.addBeanPostProcessor(propertyProcessor); - - // Processor to deal with @ComponentName SCA Annotations - BeanPostProcessor componentNameProcessor = - new ComponentNameAnnotationProcessor(implementation.getComponentName()); - beanFactory.addBeanPostProcessor(componentNameProcessor); - - // Processor to deal with @Constructor SCA Annotations - BeanPostProcessor constructorProcessor = new ConstructorAnnotationProcessor(); - beanFactory.addBeanPostProcessor(constructorProcessor); - } - -} |