From 912966714fb39ebf173bf9bb50105fece6b1415d Mon Sep 17 00:00:00 2001 From: lresende Date: Mon, 17 Nov 2008 07:07:27 +0000 Subject: Initial work to split implementation spring to follow the same pattern used in other modules (model/xml and runtime). git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@718181 13f79535-47bb-0310-9956-ffa450edef68 --- .../META-INF/MANIFEST.MF | 20 +- .../spring/impl/SCAApplicationContext.java | 53 ++++ .../spring/impl/SCANamespaceHandlerResolver.java | 53 ++++ .../spring/impl/SCAParentApplicationContext.java | 272 +++++++++++++++++++++ .../spring/impl/ScaNamespaceHandler.java | 40 +++ .../impl/ScaPropertyBeanDefinitionParser.java | 37 +++ .../impl/ScaReferenceBeanDefinitionParser.java | 38 +++ .../impl/ScaServiceBeanDefinitionParser.java | 38 +++ .../provider/SpringImplementationProvider.java | 90 +++++++ .../SpringImplementationProviderFactory.java | 79 ++++++ .../spring/provider/SpringInvocationException.java | 40 +++ .../spring/provider/SpringInvoker.java | 128 ++++++++++ ...cany.sca.provider.ImplementationProviderFactory | 19 ++ .../spring/itests/AbstractSCATestCase.java | 61 +++++ .../helloworld/AbstractHelloWorldTestCase.java | 43 ++++ .../spring/itests/helloworld/HelloWorld.java | 35 +++ .../spring/itests/helloworld/HelloWorldImpl.java | 38 +++ .../spring/itests/helloworld/HelloWorldProxy.java | 42 ++++ .../helloworld/SpringContextAccessTestCase.java | 35 +++ .../SpringExplicitHelloWorldTestCase.java | 34 +++ .../SpringExplicitReferenceTestCase.java | 39 +++ .../helloworld/SpringHelloWorldTestCase.java | 32 +++ .../SpringImplicitReferenceTestCase.java | 42 ++++ .../helloworld/SpringImportHelloWorldTestCase.java | 32 +++ .../helloworld/SpringSCAPropertyTestCase.java | 39 +++ .../spring/itests/mock/TestBean.java | 31 +++ .../spring/itests/mock/TestBeanImpl.java | 42 ++++ .../spring/itests/mock/TestContextAccessBean.java | 77 ++++++ .../spring/itests/mock/TestHelloWorldBean.java | 39 +++ .../spring/itests/mock/TestReference.java | 27 ++ .../spring/itests/mock/TestReferenceBean.java | 57 +++++ .../spring/itests/mock/TestSCAPropertyBean.java | 55 +++++ .../META-INF/sca/SpringContextAccess-context.xml | 31 +++ .../sca/SpringExplicitHelloWorld-context.xml | 39 +++ .../sca/SpringExplicitReference-context.xml | 33 +++ .../sca/SpringHelloWorld-Imported-context.xml | 31 +++ .../META-INF/sca/SpringHelloWorld-context.xml | 31 +++ .../sca/SpringImplicitReference-context.xml | 34 +++ .../sca/SpringImportHelloWorld-context.xml | 29 +++ .../META-INF/sca/testReferenceContext.xml | 33 +++ .../resources/META-INF/sca/testServiceContext.xml | 31 +++ .../SpringHelloWorld-Imported-context.xml | 31 +++ .../helloworld/SpringContextAccess.composite | 35 +++ .../helloworld/SpringExplicitHelloWorld.composite | 33 +++ .../helloworld/SpringExplicitReference.composite | 32 +++ .../itests/helloworld/SpringHelloWorld.composite | 32 +++ .../helloworld/SpringImplicitReference.composite | 39 +++ .../helloworld/SpringImportHelloWorld.composite | 32 +++ .../itests/helloworld/SpringSCAProperty.composite | 39 +++ .../src/test/resources/spring/META-INF/MANIFEST.MF | 3 + .../META-INF/spring/SpringSCAProperty-context.xml | 34 +++ .../src/test/resources/test.xml | 27 ++ .../implementation-spring/META-INF/MANIFEST.MF | 49 ++-- .../spring/SCAApplicationContext.java | 53 ---- .../spring/SCANamespaceHandlerResolver.java | 53 ---- .../spring/SCAParentApplicationContext.java | 271 -------------------- .../implementation/spring/ScaNamespaceHandler.java | 38 --- .../spring/ScaPropertyBeanDefinitionParser.java | 35 --- .../spring/ScaReferenceBeanDefinitionParser.java | 36 --- .../spring/ScaServiceBeanDefinitionParser.java | 36 --- .../spring/SpringImplementation.java | 71 +++--- .../spring/SpringImplementationProvider.java | 87 ------- .../SpringImplementationProviderFactory.java | 78 ------ .../spring/SpringInvocationException.java | 40 --- .../sca/implementation/spring/SpringInvoker.java | 127 ---------- .../spring/SpringOperationNotFoundException.java | 40 --- .../spring/SpringPropertyValueObjectFactory.java | 45 ---- ...cany.sca.provider.ImplementationProviderFactory | 19 -- .../spring/itests/AbstractSCATestCase.java | 61 ----- .../helloworld/AbstractHelloWorldTestCase.java | 43 ---- .../spring/itests/helloworld/HelloWorld.java | 35 --- .../spring/itests/helloworld/HelloWorldImpl.java | 38 --- .../spring/itests/helloworld/HelloWorldProxy.java | 42 ---- .../helloworld/SpringContextAccessTestCase.java | 35 --- .../SpringExplicitHelloWorldTestCase.java | 34 --- .../SpringExplicitReferenceTestCase.java | 39 --- .../helloworld/SpringHelloWorldTestCase.java | 32 --- .../SpringImplicitReferenceTestCase.java | 42 ---- .../helloworld/SpringImportHelloWorldTestCase.java | 32 --- .../helloworld/SpringSCAPropertyTestCase.java | 39 --- .../spring/itests/mock/TestBean.java | 31 --- .../spring/itests/mock/TestBeanImpl.java | 42 ---- .../spring/itests/mock/TestContextAccessBean.java | 77 ------ .../spring/itests/mock/TestHelloWorldBean.java | 39 --- .../spring/itests/mock/TestReference.java | 27 -- .../spring/itests/mock/TestReferenceBean.java | 57 ----- .../spring/itests/mock/TestSCAPropertyBean.java | 55 ----- .../META-INF/sca/SpringContextAccess-context.xml | 31 --- .../sca/SpringExplicitHelloWorld-context.xml | 39 --- .../sca/SpringExplicitReference-context.xml | 33 --- .../sca/SpringHelloWorld-Imported-context.xml | 31 --- .../META-INF/sca/SpringHelloWorld-context.xml | 31 --- .../sca/SpringImplicitReference-context.xml | 34 --- .../sca/SpringImportHelloWorld-context.xml | 29 --- .../META-INF/sca/testReferenceContext.xml | 33 --- .../resources/META-INF/sca/testServiceContext.xml | 31 --- .../SpringHelloWorld-Imported-context.xml | 31 --- .../helloworld/SpringContextAccess.composite | 35 --- .../helloworld/SpringExplicitHelloWorld.composite | 33 --- .../helloworld/SpringExplicitReference.composite | 32 --- .../itests/helloworld/SpringHelloWorld.composite | 32 --- .../helloworld/SpringImplicitReference.composite | 39 --- .../helloworld/SpringImportHelloWorld.composite | 32 --- .../itests/helloworld/SpringSCAProperty.composite | 39 --- .../src/test/resources/spring/META-INF/MANIFEST.MF | 3 - .../META-INF/spring/SpringSCAProperty-context.xml | 34 --- .../src/test/resources/test.xml | 27 -- 107 files changed, 2393 insertions(+), 2450 deletions(-) create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCAApplicationContext.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCANamespaceHandlerResolver.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCAParentApplicationContext.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaNamespaceHandler.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaPropertyBeanDefinitionParser.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaReferenceBeanDefinitionParser.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaServiceBeanDefinitionParser.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvocationException.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvoker.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorld.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldImpl.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldProxy.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccessTestCase.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorldTestCase.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReferenceTestCase.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReferenceTestCase.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorldTestCase.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAPropertyTestCase.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBean.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBeanImpl.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestContextAccessBean.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestHelloWorldBean.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReference.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReferenceBean.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestSCAPropertyBean.java create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringContextAccess-context.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringExplicitHelloWorld-context.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringExplicitReference-context.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringHelloWorld-Imported-context.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringHelloWorld-context.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringImplicitReference-context.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringImportHelloWorld-context.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/testReferenceContext.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/testServiceContext.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/SpringHelloWorld-Imported-context.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccess.composite create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorld.composite create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReference.composite create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorld.composite create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReference.composite create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorld.composite create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAProperty.composite create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/spring/META-INF/MANIFEST.MF create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/spring/META-INF/spring/SpringSCAProperty-context.xml create mode 100644 branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/test.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCAApplicationContext.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCANamespaceHandlerResolver.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCAParentApplicationContext.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaNamespaceHandler.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaPropertyBeanDefinitionParser.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaReferenceBeanDefinitionParser.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaServiceBeanDefinitionParser.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringInvocationException.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringInvoker.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringOperationNotFoundException.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringPropertyValueObjectFactory.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorld.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldImpl.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldProxy.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccessTestCase.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorldTestCase.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReferenceTestCase.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReferenceTestCase.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorldTestCase.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAPropertyTestCase.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBean.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBeanImpl.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestContextAccessBean.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestHelloWorldBean.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReference.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReferenceBean.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestSCAPropertyBean.java delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringContextAccess-context.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringExplicitHelloWorld-context.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringExplicitReference-context.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringHelloWorld-Imported-context.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringHelloWorld-context.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringImplicitReference-context.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringImportHelloWorld-context.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/testReferenceContext.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/testServiceContext.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/SpringHelloWorld-Imported-context.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccess.composite delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorld.composite delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReference.composite delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorld.composite delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReference.composite delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorld.composite delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAProperty.composite delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/spring/META-INF/MANIFEST.MF delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/spring/META-INF/spring/SpringSCAProperty-context.xml delete mode 100644 branches/sca-equinox/modules/implementation-spring/src/test/resources/test.xml diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/META-INF/MANIFEST.MF b/branches/sca-equinox/modules/implementation-spring-runtime/META-INF/MANIFEST.MF index 9c8fa66211..956a4f248d 100644 --- a/branches/sca-equinox/modules/implementation-spring-runtime/META-INF/MANIFEST.MF +++ b/branches/sca-equinox/modules/implementation-spring-runtime/META-INF/MANIFEST.MF @@ -1,21 +1,4 @@ Manifest-Version: 1.0 -Export-Package: org.apache.tuscany.sca.implementation.spring;uses:="or - g.apache.tuscany.sca.databinding,org.apache.tuscany.sca.runtime,org.a - pache.tuscany.sca.provider,org.springframework.context.support,org.sp - ringframework.beans,org.apache.tuscany.sca.assembly.impl,org.springfr - amework.beans.factory.config,org.apache.tuscany.sca.core,org.apache.t - uscany.sca.policy,javax.xml.namespace,javax.xml.stream,org.apache.tus - cany.sca.interfacedef.java.impl,org.apache.tuscany.sca.assembly.xml,o - rg.apache.tuscany.sca.contribution.resolver,org.apache.tuscany.sca.co - re.factory,org.apache.tuscany.sca.core.invocation,org.springframework - .beans.factory,org.apache.tuscany.sca.assembly,org.apache.tuscany.sca - .databinding.impl,org.springframework.core.io,org.springframework.bea - ns.factory.xml,org.springframework.context,org.apache.tuscany.sca.imp - lementation.java,org.apache.tuscany.sca.interfacedef.java,org.apache. - tuscany.sca.monitor,org.apache.tuscany.sca.interfacedef,org.w3c.dom,o - rg.apache.tuscany.sca.implementation.java.injection,org.apache.tuscan - y.sca.invocation,org.apache.tuscany.sca.contribution.processor";versi - on="1.4" Private-Package: org.apache.tuscany.sca.implementation.spring.xml;vers ion="1.4",org.springframework.sca.xml;version="1.4" Tool: Bnd-0.0.255 @@ -44,7 +27,8 @@ Import-Package: javax.xml.namespace, org.apache.tuscany.sca.databinding.impl;version="1.4", org.apache.tuscany.sca.implementation.java;version="1.4", org.apache.tuscany.sca.implementation.java.injection;version="1.4", - org.apache.tuscany.sca.implementation.spring;version="1.4", + org.apache.tuscany.sca.implementation.spring, + org.apache.tuscany.sca.implementation.spring.xml, org.apache.tuscany.sca.interfacedef;version="1.4", org.apache.tuscany.sca.interfacedef.java;version="1.4", org.apache.tuscany.sca.interfacedef.java.impl;version="1.4", diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCAApplicationContext.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCAApplicationContext.java new file mode 100644 index 0000000000..6ed1840b6b --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCAApplicationContext.java @@ -0,0 +1,53 @@ +/* + * 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.impl; + +import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.AbstractXmlApplicationContext; +import org.springframework.core.io.Resource; + +/** + * An ApplicationContext specialization that registers namespace + * handlers for SCA elements - in particular the , and + * elements which are provided as SCA extensions to the Spring + * application context schema + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + */ +public class SCAApplicationContext extends AbstractXmlApplicationContext { + public static final String APP_CONTEXT_PROP = "org.springframework.sca.application.context"; + private Resource appXml; + + public SCAApplicationContext(ApplicationContext parent, Resource appXml) { + super(parent); + this.appXml = appXml; + //refresh(); + } + + @Override + protected void initBeanDefinitionReader(XmlBeanDefinitionReader beanDefinitionReader) { + ClassLoader cl = getClassLoader(); + beanDefinitionReader.setNamespaceHandlerResolver(new SCANamespaceHandlerResolver(cl)); + } + + @Override + protected Resource[] getConfigResources() { + return new Resource[] {appXml}; + } +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCANamespaceHandlerResolver.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCANamespaceHandlerResolver.java new file mode 100644 index 0000000000..4e1c861910 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCANamespaceHandlerResolver.java @@ -0,0 +1,53 @@ +/* + * 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.impl; + +import org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver; +import org.springframework.beans.factory.xml.NamespaceHandler; + +/** + * Overrides the default Spring namespace resolver to automatically register + * {@link ScaNamespaceHandler} instead of requiring a value to be supplied in a + * Spring configuration + * + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + */ +public class SCANamespaceHandlerResolver extends DefaultNamespaceHandlerResolver { + private static final String SCA_NAMESPACE = "http://www.springframework.org/schema/sca"; + + private ScaNamespaceHandler handler; + + public SCANamespaceHandlerResolver(ClassLoader classLoader) { + super(classLoader); + handler = new ScaNamespaceHandler(/*componentType*/); + } + + public SCANamespaceHandlerResolver(String handlerMappingsLocation, ClassLoader classLoader) { + super(classLoader, handlerMappingsLocation); + handler = new ScaNamespaceHandler(/*componentType*/); + } + + @Override + public NamespaceHandler resolve(String namespaceUri) { + if (SCA_NAMESPACE.equals(namespaceUri)) { + return handler; + } + return super.resolve(namespaceUri); + } +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCAParentApplicationContext.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCAParentApplicationContext.java new file mode 100644 index 0000000000..d654d1172a --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/SCAParentApplicationContext.java @@ -0,0 +1,272 @@ +/* + * 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.impl; + +import java.io.IOException; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.apache.tuscany.sca.assembly.ComponentProperty; +import org.apache.tuscany.sca.assembly.Property; +import org.apache.tuscany.sca.assembly.Reference; +import org.apache.tuscany.sca.core.factory.ObjectFactory; +import org.apache.tuscany.sca.core.invocation.ProxyFactory; +import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory; +import org.apache.tuscany.sca.implementation.spring.SpringImplementation; +import org.apache.tuscany.sca.interfacedef.java.JavaInterface; +import org.apache.tuscany.sca.runtime.RuntimeComponent; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.beans.factory.config.AutowireCapableBeanFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationEvent; +import org.springframework.context.MessageSourceResolvable; +import org.springframework.context.NoSuchMessageException; +import org.springframework.core.io.Resource; + +/** + * A Spring ParentApplicationContext for a given Spring Implementation + * + * The Parent application context is responsible for handling those entities within a Spring + * application context that actually belong to SCA rather than to Spring. The principal things + * are Properties and References. These may be present either through explicit + * and elements in the application context or they may be implicit through + * unresolved Spring bean elements. In either case, it is the Parent application + * context that must provide Spring beans that correspond to the property or reference, as derived + * from the SCA composite in which the Spring application context is an implementation. + * + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + */ +public class SCAParentApplicationContext implements ApplicationContext { + + // The Spring implementation for which this is the parent application context + private SpringImplementation implementation; + private RuntimeComponent component; + private JavaPropertyValueObjectFactory propertyFactory; + + private static final String[] EMPTY_ARRAY = new String[0]; + + public SCAParentApplicationContext(RuntimeComponent component, + SpringImplementation implementation, + ProxyFactory proxyService, + JavaPropertyValueObjectFactory propertyValueObjectFactory) { + this.implementation = implementation; + this.component = component; + this.propertyFactory = propertyValueObjectFactory; + } // end constructor + + public Object getBean(String name) throws BeansException { + return getBean(name, (Class) null); + } + + /** + * Get a Bean for a reference or for a property. + * + * @param name - the name of the Bean required + * @param requiredType - the required type of the Bean (either a Java class or a Java interface) + * @return Object - a Bean which matches the requested bean + */ + public Object getBean(String name, Class requiredType) throws BeansException { + System.out.println("Spring parent context - getBean called for name: " + name); + // The expectation is that the requested Bean is either a reference or a property + // from the Spring context + for (Reference reference : implementation.getReferences()) { + if (reference.getName().equals(name)) { + // Extract the Java interface for the reference (it can't be any other interface type + // for a Spring application context) + if (requiredType == null) { + JavaInterface javaInterface = (JavaInterface)reference.getInterfaceContract().getInterface(); + requiredType = javaInterface.getJavaClass(); + } + // Create and return the proxy for the reference + return getService(requiredType, reference.getName()); + } // end if + } // end for + + // For a property, get the name and the required Java type and create a Bean + // of that type with the value inserted. + for (Property property : implementation.getProperties()) { + if (property.getName().equals(name)) { + if (requiredType == null) { + // The following code only deals with a subset of types and was superceded + // by the information from the implementation (which uses Classes as found + // in the Spring implementation itself. + //requiredType = JavaXMLMapper.getJavaType( property.getXSDType() ); + requiredType = implementation.getPropertyClass(name); + } + return getPropertyBean(requiredType, property.getName()); + } // end if + } // end for + throw new NoSuchBeanDefinitionException("Unable to find Bean with name " + name); + + } // end method getBean( String, Class ) + + public Object getBean(String name, Object[] args) throws BeansException { + return getBean(name, ((Class)null)); + } + + /** + * Creates a proxy Bean for a reference + * @param the Business interface type for the reference + * @param businessInterface - the business interface as a Class + * @param referenceName - the name of the Reference + * @return an Bean of the type defined by + */ + private B getService(Class businessInterface, String referenceName) { + return component.getComponentContext().getService(businessInterface, referenceName); + } + + /** + * Method to create a Java Bean for a Property value + * @param the class type of the Bean + * @param requiredType - a Class object for the required type + * @param name - the Property name + * @return - a Bean of the specified property, with value set + */ + private B getPropertyBean(Class requiredType, String name) { + B propertyObject = null; + // Get the component's list of properties + List props = component.getProperties(); + for (ComponentProperty prop : props) { + if (prop.getName().equals(name)) { + // On finding the property, create a factory for it and create a Bean using + // the factory + ObjectFactory factory = propertyFactory.createValueFactory(prop, prop.getValue(), requiredType); + propertyObject = (B)factory.getInstance(); + } // end if + } // end for + + return propertyObject; + } + + public boolean containsBean(String name) { + // TODO + System.out.println("Spring parent context - containsBean called for name: " + name); + return false; + } + + public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { + // TODO + return false; + } + + public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { + throw new UnsupportedOperationException(); + } + + public Class getType(String name) throws NoSuchBeanDefinitionException { + return null; + } + + public String[] getAliases(String name) throws NoSuchBeanDefinitionException { + return EMPTY_ARRAY; + } + + public ApplicationContext getParent() { + return null; + } + + public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException { + return null; + } + + public String getId() { + return this.toString(); + } + + public String getDisplayName() { + return implementation.getURI(); + } + + public long getStartupDate() { + return 0; + } + + public boolean containsBeanDefinition(String beanName) { + return false; + } + + public int getBeanDefinitionCount() { + return 0; + } + + public String[] getBeanDefinitionNames() { + return new String[0]; + } + + public String[] getBeanNamesForType(Class type) { + return new String[0]; + } + + public String[] getBeanNamesForType(Class type, boolean includePrototypes, boolean includeFactoryBeans) { + return new String[0]; + } + + public Map getBeansOfType(Class type) throws BeansException { + return null; + } + + public Map getBeansOfType(Class type, boolean includePrototypes, boolean includeFactoryBeans) throws BeansException { + return null; + } + + public boolean isPrototype(String theString) { + return false; + } + + public BeanFactory getParentBeanFactory() { + return null; + } + + public boolean containsLocalBean(String name) { + return false; + } + + public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) { + return null; + } + + public String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException { + return null; + } + + public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { + return null; + } + + public void publishEvent(ApplicationEvent event) { + + } + + public Resource[] getResources(String locationPattern) throws IOException { + return new Resource[0]; + } + + public Resource getResource(String location) { + return null; + } + + public ClassLoader getClassLoader() { + // REVIEW: this is almost certainly flawed, but it's not clear how the SCA runtime's + // resource loading mechanism is exposed right now. + return this.getClass().getClassLoader(); + } +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaNamespaceHandler.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaNamespaceHandler.java new file mode 100644 index 0000000000..5f7614a68e --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaNamespaceHandler.java @@ -0,0 +1,40 @@ +/* + * 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.impl; + +import org.springframework.beans.factory.xml.NamespaceHandlerSupport; + +/** + * Handler for the <sca:> namespace in an application context + * + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + */ +public class ScaNamespaceHandler extends NamespaceHandlerSupport { + + public ScaNamespaceHandler() { + init(); + } + + public final void init() { + registerBeanDefinitionParser("reference", new ScaReferenceBeanDefinitionParser()); + registerBeanDefinitionParser("service", new ScaServiceBeanDefinitionParser()); + registerBeanDefinitionParser("property", new ScaPropertyBeanDefinitionParser()); + } + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaPropertyBeanDefinitionParser.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaPropertyBeanDefinitionParser.java new file mode 100644 index 0000000000..a025d23b9f --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaPropertyBeanDefinitionParser.java @@ -0,0 +1,37 @@ +/* + * 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.impl; + +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.beans.factory.xml.BeanDefinitionParser; +import org.springframework.beans.factory.xml.ParserContext; +import org.w3c.dom.Element; + +/** + * Parser for the <sca:reference> element + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + */ +public class ScaPropertyBeanDefinitionParser implements BeanDefinitionParser { + + public BeanDefinition parse(Element element, ParserContext parserContext) { + // do nothing, this is handled by Tuscany + return null; + } + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaReferenceBeanDefinitionParser.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaReferenceBeanDefinitionParser.java new file mode 100644 index 0000000000..178f538339 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaReferenceBeanDefinitionParser.java @@ -0,0 +1,38 @@ +/* + * 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.impl; + +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.beans.factory.xml.BeanDefinitionParser; +import org.springframework.beans.factory.xml.ParserContext; +import org.w3c.dom.Element; + +/** + * Parser for the <sca:reference> element + * + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + */ +public class ScaReferenceBeanDefinitionParser implements BeanDefinitionParser { + + public BeanDefinition parse(Element element, ParserContext parserContext) { + // do nothing, this is handled by Tuscany + return null; + } + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaServiceBeanDefinitionParser.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaServiceBeanDefinitionParser.java new file mode 100644 index 0000000000..ae5093dbea --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/impl/ScaServiceBeanDefinitionParser.java @@ -0,0 +1,38 @@ +/* + * 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.impl; + +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.beans.factory.xml.BeanDefinitionParser; +import org.springframework.beans.factory.xml.ParserContext; +import org.w3c.dom.Element; + +/** + * Parser for the <sca:service/> element + * + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + */ +public class ScaServiceBeanDefinitionParser implements BeanDefinitionParser { + + public BeanDefinition parse(Element element, ParserContext parserContext) { + // do nothing, handled by Tuscany + return null; + } + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java new file mode 100644 index 0000000000..f780c71549 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java @@ -0,0 +1,90 @@ +/* + * 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.provider; + +import org.apache.tuscany.sca.core.invocation.ProxyFactory; +import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory; +import org.apache.tuscany.sca.implementation.spring.SpringImplementation; +import org.apache.tuscany.sca.implementation.spring.impl.SCAApplicationContext; +import org.apache.tuscany.sca.implementation.spring.impl.SCAParentApplicationContext; +import org.apache.tuscany.sca.interfacedef.Operation; +import org.apache.tuscany.sca.invocation.Invoker; +import org.apache.tuscany.sca.provider.ImplementationProvider; +import org.apache.tuscany.sca.runtime.RuntimeComponent; +import org.apache.tuscany.sca.runtime.RuntimeComponentService; +import org.springframework.context.support.AbstractApplicationContext; + +// TODO - create a working version of this class... +/** + * A provider class for runtime Spring implementation instances + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + */ +public class SpringImplementationProvider implements ImplementationProvider { + private RuntimeComponent component; + + // A Spring application context object + private AbstractApplicationContext springContext; + + /** + * Constructor for the provider - takes a component definition and a Spring implementation + * description + * @param component - the component in the assembly + * @param implementation - the implementation + */ + public SpringImplementationProvider(RuntimeComponent component, + SpringImplementation implementation, + ProxyFactory proxyService, + JavaPropertyValueObjectFactory propertyValueObjectFactory) { + super(); + this.component = component; + SCAParentApplicationContext scaParentContext = + new SCAParentApplicationContext(component, implementation, proxyService, propertyValueObjectFactory); + springContext = new SCAApplicationContext(scaParentContext, implementation.getResource()); + } // end constructor + + public Invoker createInvoker(RuntimeComponentService service, Operation operation) { + return new SpringInvoker(component, springContext, service, operation); + } + + public boolean supportsOneWayInvocation() { + return false; + } + + /** + * Start this Spring implementation instance + */ + 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(); + // System.out.println("SpringImplementationProvider: Spring context started"); + } // end method start() + + /** + * Stop this implementation instance + */ + public void stop() { + // TODO - complete + springContext.stop(); + //System.out.println("SpringImplementationProvider: Spring context stopped"); + } // end method stop + +} // end class SpringImplementationProvider diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java new file mode 100644 index 0000000000..eb83a92f6a --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java @@ -0,0 +1,79 @@ +/* + * 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.provider; + +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory; +import org.apache.tuscany.sca.core.invocation.ProxyFactory; +import org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint; +import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; +import org.apache.tuscany.sca.databinding.TransformerExtensionPoint; +import org.apache.tuscany.sca.databinding.impl.MediatorImpl; +import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory; +import org.apache.tuscany.sca.implementation.spring.SpringImplementation; +import org.apache.tuscany.sca.provider.ImplementationProvider; +import org.apache.tuscany.sca.provider.ImplementationProviderFactory; +import org.apache.tuscany.sca.runtime.RuntimeComponent; + +/** + * ImplementationProviderFactory for Spring implementation type + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + * + */ +public class SpringImplementationProviderFactory implements ImplementationProviderFactory { + + private ProxyFactory proxyFactory; + private JavaPropertyValueObjectFactory propertyFactory; + + /** + * Simple constructor + * + */ + public SpringImplementationProviderFactory(ExtensionPointRegistry extensionPoints) { + super(); + + ProxyFactoryExtensionPoint proxyFactories = extensionPoints.getExtensionPoint(ProxyFactoryExtensionPoint.class); + proxyFactory = new ExtensibleProxyFactory(proxyFactories); + + // TODO: could the runtime have a default PropertyValueObjectFactory? + DataBindingExtensionPoint dataBindings = extensionPoints.getExtensionPoint(DataBindingExtensionPoint.class); + TransformerExtensionPoint transformers = extensionPoints.getExtensionPoint(TransformerExtensionPoint.class); + MediatorImpl mediator = new MediatorImpl(dataBindings, transformers); + propertyFactory = new JavaPropertyValueObjectFactory(mediator); + } + + /** + * Returns a SpringImplementationProvider for a given component and Spring implementation + * @param component the component for which implementation instances are required + * @param implementation the Spring implementation with details of the component + * implementation + * @return the SpringImplementationProvider for the specified component + */ + public ImplementationProvider createImplementationProvider(RuntimeComponent component, + SpringImplementation implementation) { + return new SpringImplementationProvider(component, implementation, proxyFactory, propertyFactory); + } + + /** + * Returns the class of the Spring implementation + */ + public Class getModelType() { + return SpringImplementation.class; + } +} // end class SpringImplementationProviderFactory diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvocationException.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvocationException.java new file mode 100644 index 0000000000..a195549851 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvocationException.java @@ -0,0 +1,40 @@ +/* + * 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.provider; + +/** + * @version $Rev$ $Date$ + */ +public class SpringInvocationException extends Exception { + + private static final long serialVersionUID = -1157790036638157513L; + + public SpringInvocationException(String msg) { + super(msg); + } + + public SpringInvocationException(Throwable e) { + super(e); + } + + public SpringInvocationException(String msg,Throwable e) { + super(msg,e); + } + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvoker.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvoker.java new file mode 100644 index 0000000000..b63518d1c7 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvoker.java @@ -0,0 +1,128 @@ +/* + * 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.provider; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +import org.apache.tuscany.sca.implementation.spring.SpringImplementation; +import org.apache.tuscany.sca.implementation.spring.xml.SpringBeanElement; +import org.apache.tuscany.sca.interfacedef.Operation; +import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceUtil; +import org.apache.tuscany.sca.invocation.Invoker; +import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.runtime.RuntimeComponent; +import org.apache.tuscany.sca.runtime.RuntimeComponentService; +import org.springframework.beans.BeansException; +import org.springframework.context.support.AbstractApplicationContext; + +/** + * Initial implementation of a Spring bean invoker + * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ + */ +public class SpringInvoker implements Invoker { + + private Method theMethod = null; + private Object bean; + private SpringBeanElement beanElement; + private boolean badInvoker = false; + + private AbstractApplicationContext springContext; + private Operation operation; + + /** + * SpringInvoker constructor + * @param component - the Spring component to invoke + * @param service - the service to invoke + * @param operation - the operation to invoke + */ + public SpringInvoker(RuntimeComponent component, + AbstractApplicationContext springContext, + RuntimeComponentService service, + Operation operation) { + + this.springContext = springContext; + this.operation = operation; + + // From the component and the service, identify the Spring Bean which is the target + SpringImplementation theImplementation = (SpringImplementation)component.getImplementation(); + beanElement = theImplementation.getBeanFromService(service.getService()); + + if (beanElement == null) { + badInvoker = true; + return; + } + + } // end constructor SpringInvoker + + // Lazy-load the method to avoid timing problems with the Spring Context + private void setupMethod() throws SpringInvocationException{ + try { + bean = springContext.getBean(beanElement.getId()); + Class beanClass = bean.getClass(); + theMethod = JavaInterfaceUtil.findMethod(beanClass, operation); + //System.out.println("SpringInvoker - found method " + theMethod.getName() ); + } catch (BeansException e) { + throw new SpringInvocationException(e); + } catch (NoSuchMethodException e) { + throw new SpringInvocationException(e); + } + } + + private Object doInvoke(Object payload) throws SpringInvocationException { + if (theMethod == null) + setupMethod(); + + if (badInvoker) + throw new SpringInvocationException("Spring invoker incorrectly configured"); + // Invoke the method on the Spring bean using the payload, returning the results + try { + Object ret; + + if (payload != null && !payload.getClass().isArray()) { + ret = theMethod.invoke(bean, payload); + } else { + ret = theMethod.invoke(bean, (Object[])payload); + } + return ret; + } catch (InvocationTargetException e) { + throw new SpringInvocationException("Spring invoker invoke method '"+ theMethod.getName()+"' error.",e); + } catch (Exception e) { + throw new SpringInvocationException("Spring invoker invoke method '"+ theMethod.getName()+"' error.",e); + } + + } // end method doInvoke + + /** + * @param msg the message to invoke on the target bean + */ + public Message invoke(Message msg) { + try { + Object resp = doInvoke(msg.getBody()); + msg.setBody(resp); + } catch (SpringInvocationException e) { + msg.setFaultBody(e.getCause()); + }catch (Throwable e) { + msg.setFaultBody(e); + } + //System.out.println("Spring Invoker - invoke called"); + return msg; + } // end method invoke + +} // end class SpringInvoker diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory new file mode 100644 index 0000000000..6edfc3b6ca --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory @@ -0,0 +1,19 @@ +# 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. + +# Implementation class for the implementation extension +org.apache.tuscany.sca.implementation.spring.provider.SpringImplementationProviderFactory;model=org.apache.tuscany.sca.implementation.spring.SpringImplementation diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java new file mode 100644 index 0000000000..d782384ce6 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java @@ -0,0 +1,61 @@ +/* + * 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.itests; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.ContributionLocationHelper; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; + +/** + * + * @version $Rev$ $Date$ + */ +public abstract class AbstractSCATestCase extends TestCase { + + protected Node node; + protected T service; + + @Override + protected void setUp() throws Exception { + String contribution = ContributionLocationHelper.getContributionLocation(getClass()); + node = NodeFactory.newInstance().createNode(getCompositeName(), new Contribution("test", contribution)); + node.start(); + service = (T)node.getService(getServiceClass(), "ClientComponent"); + } + + protected abstract Class getServiceClass(); + + @Override + protected void tearDown() throws Exception { + node.stop(); + node.destroy(); + } + + protected String getCompositeName() { + String className = this.getClass().getName(); + String compositeName = className.substring(0, className.length() - 8).replace('.', '/') + ".composite"; + System.out.println("Using composite: " + compositeName); + return compositeName; + } + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java new file mode 100644 index 0000000000..c9b30b1688 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java @@ -0,0 +1,43 @@ +/* + * 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.itests.helloworld; + +import org.apache.tuscany.sca.implementation.spring.itests.AbstractSCATestCase; + +/** + * Basic "hello world" style test case for testing Spring component implementation + * + * @version $Rev$ $Date$ + */ +public abstract class AbstractHelloWorldTestCase extends AbstractSCATestCase { + + /** + * Calls the hello world service and checks that it gives the right response... + */ + public void testCalculator() throws Exception { + assertEquals("Hello petra", service.sayHello("petra")); + System.out.println("Test " + this.getClass().getSimpleName() + " completed successfully"); + } + + @Override + protected Class getServiceClass() { + return HelloWorld.class; + } +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorld.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorld.java new file mode 100644 index 0000000000..fd295daaf6 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorld.java @@ -0,0 +1,35 @@ +/* + * 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.itests.helloworld; + +import org.osoa.sca.annotations.Remotable; + +/** + * Interface for the "hello world" service - predictably simple with a single operation + * "sayHello" + * + * @version $Rev$ $Date$ + */ +@Remotable +public interface HelloWorld { + + String sayHello(String s); + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldImpl.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldImpl.java new file mode 100644 index 0000000000..65ab096855 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldImpl.java @@ -0,0 +1,38 @@ +/* + * 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.itests.helloworld; + +/** + * A simple proxy Java class which implements the HelloWorld interface but which uses + * a reference "delegate" to actually provide the HelloWorld service + * + * @version $Rev$ $Date$ + */ +public class HelloWorldImpl implements HelloWorld { + + static String hello = "Hello "; + + public String sayHello(String s) { + // Simply call the reference to satisfy the service request... + System.out.println("HelloWorldImpl - sayHello called"); + return (hello + s); + } + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldProxy.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldProxy.java new file mode 100644 index 0000000000..bd35e9f3b9 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldProxy.java @@ -0,0 +1,42 @@ +/* + * 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.itests.helloworld; + +import org.osoa.sca.annotations.Reference; + +/** + * A simple proxy Java class which implements the HelloWorld interface but which uses + * a reference "delegate" to actually provide the HelloWorld service + * + * @version $Rev$ $Date$ + */ +public class HelloWorldProxy implements HelloWorld { + + // Here is the reference "delegate" - it implements the HelloWorld interface... + @Reference + public HelloWorld delegate; + + public String sayHello(String s) { + // Simply call the reference to satisfy the service request... + System.out.println("HelloWorldProxy - calling sayHello"); + return delegate.sayHello(s); + } + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccessTestCase.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccessTestCase.java new file mode 100644 index 0000000000..d77f183a66 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccessTestCase.java @@ -0,0 +1,35 @@ +/* + * 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.itests.helloworld; + +/** + * A test case to check the ability of Spring Beans used as an SCA implementation + * to access the Spring application context without problems: + * 1) A composite containing a component with a Spring implementation + * 2) The composite has a component with a Java POJO implementation which uses the + * Spring implementation to satisfy a reference + * 3) The Spring Bean accesses the Spring application context and only returns data + * if it is successful + * + * @version $Rev$ $Date$ + */ +public class SpringContextAccessTestCase extends AbstractHelloWorldTestCase { + // super class does it all getting composite based on this class name +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorldTestCase.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorldTestCase.java new file mode 100644 index 0000000000..86f979fe15 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorldTestCase.java @@ -0,0 +1,34 @@ +/* + * 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.itests.helloworld; + +/** + * A basic test case of: + * 1) A composite containing a component with a Spring implementation + * 2) The composite has a component with a Java POJO implementation which uses the + * Spring implementation to satisfy a reference + * 3) The element references an application context that + * uses an explicit sca: element to identify the service offered by the Spring application + * + * @version $Rev$ $Date$ + */ +public class SpringExplicitHelloWorldTestCase extends AbstractHelloWorldTestCase { + // super class does it all getting composite based on this class name +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReferenceTestCase.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReferenceTestCase.java new file mode 100644 index 0000000000..44016ad249 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReferenceTestCase.java @@ -0,0 +1,39 @@ +/* + * 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.itests.helloworld; + +/** + * A test case designed to test the implementation of References from a Spring application + * context, where the references are explicit, through the presence of an sca:reference + * element within the Spring application context + * + * The artifacts involved in this test are: + * + * 1) A composite containing a component with a Spring implementation which makes + * a reference to a second component + * 2) The composite has a component with a Java POJO implementation which satisfies the reference + * 3) The element references an application context that + * uses an explicit sca:reference element to identify the reference made by the Spring application + * + * @version $Rev$ $Date$ + */ +public class SpringExplicitReferenceTestCase extends AbstractHelloWorldTestCase { + // super class does it all getting composite based on this class name +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java new file mode 100644 index 0000000000..74dcf32723 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java @@ -0,0 +1,32 @@ +/* + * 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.itests.helloworld; + +/** + * A basic test case of: + * 1) A composite containing a component with a Spring implementation + * 2) The composite has a component with a Java POJO implementation which uses the + * Spring implementation to satisfy a reference + * + * @version $Rev$ $Date$ + */ +public class SpringHelloWorldTestCase extends AbstractHelloWorldTestCase { + // super class does it all getting composite based on this class name +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReferenceTestCase.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReferenceTestCase.java new file mode 100644 index 0000000000..97f91ff91e --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReferenceTestCase.java @@ -0,0 +1,42 @@ +/* + * 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.itests.helloworld; + +/** + * A test case designed to test the implementation of References from a Spring application + * context, where the references are implicit, through the presence of Bean properties with a + * ref attribute which is not satisfied by a Bean within the application context. + * + * The artifacts involved in this test are: + * + * 1) A composite containing a component with a Spring implementation which makes + * a reference to a second component + * 2) The composite has a component with a Java POJO implementation which satisfies the reference + * 3) The element references an application context that + * does not use an explicit sca:reference element to identify the reference made by the + * Spring application, but relies on an unsatisfied Bean property with a ref attribute. + * + * @version $Rev$ $Date$ + */ +public class SpringImplicitReferenceTestCase extends AbstractHelloWorldTestCase { + // super class does it all getting composite based on this class name +} + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorldTestCase.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorldTestCase.java new file mode 100644 index 0000000000..bfe3d64cf3 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorldTestCase.java @@ -0,0 +1,32 @@ +/* + * 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.itests.helloworld; + +/** + * A basic test case of: + * 1) A composite containing a component with a Spring implementation + * 2) The composite has a component with a Java POJO implementation which uses the + * Spring implementation to satisfy a reference + * + * @version $Rev$ $Date$ + */ +public class SpringImportHelloWorldTestCase extends AbstractHelloWorldTestCase { + // super class does it all getting composite based on this class name +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAPropertyTestCase.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAPropertyTestCase.java new file mode 100644 index 0000000000..2c46f8c066 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAPropertyTestCase.java @@ -0,0 +1,39 @@ +/* + * 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.itests.helloworld; + +/** + * A test case designed to test the implementation of Properties from a Spring application + * context, where the properties are explicit, through the presence of an sca:property + * element within the Spring application context + * + * The artifacts involved in this test are: + * + * 1) A composite containing a component with a Spring implementation + * 2) The element references an application context that + * uses an explicit sca:property element which is used to compute the response to an invocation + * of the service of the implementation + * + * @version $Rev$ $Date$ + */ +public class SpringSCAPropertyTestCase extends AbstractHelloWorldTestCase { + // super class does it all getting composite based on this class name +} + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBean.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBean.java new file mode 100644 index 0000000000..4d60bffef8 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBean.java @@ -0,0 +1,31 @@ +/* + * 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.itests.mock; + +/** + * @version $Rev: 430937 $ $Date: 2006-08-12 02:17:56 +0100 (Sat, 12 Aug 2006) $ + */ +public interface TestBean { + String echo(String msg); + + TestBean getBean(); + + void setBean(TestBean bean); + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBeanImpl.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBeanImpl.java new file mode 100644 index 0000000000..acad9f2fea --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBeanImpl.java @@ -0,0 +1,42 @@ +/* + * 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.itests.mock; + +/** + * @version $Rev: 441406 $ $Date: 2006-09-08 08:20:10 +0100 (Fri, 08 Sep 2006) $ + */ +public class TestBeanImpl implements TestBean { + + private TestBean bean; + + public TestBeanImpl() { + } + + public String echo(String msg) { + return msg; + } + + public TestBean getBean() { + return bean; + } + + public void setBean(TestBean bean) { + this.bean = bean; + } +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestContextAccessBean.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestContextAccessBean.java new file mode 100644 index 0000000000..79de2b32a0 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestContextAccessBean.java @@ -0,0 +1,77 @@ +/* + * 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.itests.mock; + +/** + * Spring bean test class for testing the access to the Spring Context from within + * a Spring Bean running as part of an SCA Component. + * + * This class accesses the Spring Context and only returns non-null data if the + * Context is successfully accessed. + * + * The design to receive the application context is as follows: + * - the Bean implements the ApplicationContextAware interface + * - this interface provides getter and setter methods for the Spring application + * context + * - when the Bean is created at runtime, the setter method is called, injecting + * the context + */ + +import org.apache.tuscany.sca.implementation.spring.itests.helloworld.HelloWorld; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; + + +public class TestContextAccessBean implements HelloWorld, ApplicationContextAware { + + private static ApplicationContext ctx; + static String hello = "Hello "; + + // Return the hello string only if the application context is successfully accessed + public String sayHello(String message) { + System.out.println("TestContextAccessBean - sayHello called"); + ApplicationContext theContext = getApplicationContext(); + + if( theContext == null ) return null; + + // A simple check to see if the context contains this bean, which it should... + if ( !theContext.containsBean( "testBean" ) ) return null; + + return (hello + message); + } // end sayHello() + + /** + * Application context setter + */ + public void setApplicationContext(ApplicationContext appContext) throws BeansException { + // Wiring the ApplicationContext into a static method + ctx = appContext; + } + + /** + * Application context getter + * @return + */ + public static ApplicationContext getApplicationContext() { + return ctx; + } + +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestHelloWorldBean.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestHelloWorldBean.java new file mode 100644 index 0000000000..f165bb8b75 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestHelloWorldBean.java @@ -0,0 +1,39 @@ +/* + * 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.itests.mock; + +/** + * A simple test Spring bean which provides the HelloWorld service + * + * @version $Rev$ $Date$ + */ + +import org.apache.tuscany.sca.implementation.spring.itests.helloworld.HelloWorld; + +public class TestHelloWorldBean implements HelloWorld { + + static String hello = "Hello "; + + // Classic "Hello xxx" response to any input message + public String sayHello(String message) { + System.out.println("TestHelloWorldBean - sayHello called"); + return (hello + message); + } + +} // end class TestHelloWorldBean diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReference.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReference.java new file mode 100644 index 0000000000..a1d9b5a2f4 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReference.java @@ -0,0 +1,27 @@ +/* + * 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.itests.mock; + +/** + * @version $Rev: 536115 $ $Date: 2007-05-08 09:04:20 +0100 (Tue, 08 May 2007) $ + */ +public interface TestReference { + String echo(String msg); +} diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReferenceBean.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReferenceBean.java new file mode 100644 index 0000000000..ab4c07d059 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReferenceBean.java @@ -0,0 +1,57 @@ +/* + * 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.itests.mock; + +/** + * A test Spring bean which provides the HelloWorld service by calling a reference + * to provide the content of the response + * + * @version $Rev$ $Date$ + */ + +import org.apache.tuscany.sca.implementation.spring.itests.helloworld.HelloWorld; + +public class TestReferenceBean implements HelloWorld { + + // The reference + private HelloWorld bean; + + // Classic "Hello xxx" response to any input message + public String sayHello(String message) { + System.out.println("TestReferenceBean - sayHello called"); + return (bean.sayHello(message)); + } + + /** + * Setter for the bean reference + * @param theBean + */ + public void setBean(HelloWorld theBean) { + this.bean = theBean; + } + + /** + * Getter for the reference + * @return + */ + public HelloWorld getBean() { + return this.bean; + } + +} // end class TestReferenceBean diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestSCAPropertyBean.java b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestSCAPropertyBean.java new file mode 100644 index 0000000000..0f00c7e480 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestSCAPropertyBean.java @@ -0,0 +1,55 @@ +/* + * 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.itests.mock; + +/** + * A test Spring bean which provides the HelloWorld service. + * This bean has a single String property called "hello" which must be set through + * external configuration to give the correct response message, otherwise an (incorrect) + * default message is generated + * + * @version $Rev$ $Date$ + */ + +import org.apache.tuscany.sca.implementation.spring.itests.helloworld.HelloWorld; + +public class TestSCAPropertyBean implements HelloWorld { + + private String hello = "Go away"; + + /** + * Provides the operation of the "HelloWorld" interface - a simple string response + * to a string input message, where the response is a greeting followed by the original + * input message. + */ + public String sayHello(String message) { + System.out.println("TestHelloWorldBean - sayHello called"); + return (hello + " " + message); + } + + /** + * Public setter for the (unannotated) field "hello" which constitutes an SCA + * property + * @param message - the message to use for the response to "sayHello" + */ + public void setHello(String message) { + hello = message; + } + +} // end class TestSCAPropertyBean diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringContextAccess-context.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringContextAccess-context.xml new file mode 100644 index 0000000000..a7d30bf201 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringContextAccess-context.xml @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringExplicitHelloWorld-context.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringExplicitHelloWorld-context.xml new file mode 100644 index 0000000000..7c358ac01c --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringExplicitHelloWorld-context.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringExplicitReference-context.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringExplicitReference-context.xml new file mode 100644 index 0000000000..38e90b41fa --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringExplicitReference-context.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringHelloWorld-Imported-context.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringHelloWorld-Imported-context.xml new file mode 100644 index 0000000000..18ce21805c --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringHelloWorld-Imported-context.xml @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringHelloWorld-context.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringHelloWorld-context.xml new file mode 100644 index 0000000000..18ce21805c --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringHelloWorld-context.xml @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringImplicitReference-context.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringImplicitReference-context.xml new file mode 100644 index 0000000000..e6b69e8cad --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringImplicitReference-context.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringImportHelloWorld-context.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringImportHelloWorld-context.xml new file mode 100644 index 0000000000..8e18a56cca --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/SpringImportHelloWorld-context.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/testReferenceContext.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/testReferenceContext.xml new file mode 100644 index 0000000000..fdbbeeced2 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/testReferenceContext.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/testServiceContext.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/testServiceContext.xml new file mode 100644 index 0000000000..6b3f1f9890 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/META-INF/sca/testServiceContext.xml @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/SpringHelloWorld-Imported-context.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/SpringHelloWorld-Imported-context.xml new file mode 100644 index 0000000000..18ce21805c --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/SpringHelloWorld-Imported-context.xml @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccess.composite b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccess.composite new file mode 100644 index 0000000000..0b260b5dcf --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccess.composite @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorld.composite b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorld.composite new file mode 100644 index 0000000000..79f4041fe6 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorld.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReference.composite b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReference.composite new file mode 100644 index 0000000000..87353b69ea --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReference.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorld.composite b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorld.composite new file mode 100644 index 0000000000..ebb693d243 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorld.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReference.composite b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReference.composite new file mode 100644 index 0000000000..9f51277d22 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReference.composite @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorld.composite b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorld.composite new file mode 100644 index 0000000000..95dd9131eb --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorld.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAProperty.composite b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAProperty.composite new file mode 100644 index 0000000000..af1b3be0a5 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAProperty.composite @@ -0,0 +1,39 @@ + + + + + + + + + + + + + Hello + + + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/spring/META-INF/MANIFEST.MF b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/spring/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..950dbeba4c --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/spring/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Spring-Context: META-INF/spring/SpringSCAProperty-context.xml + diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/spring/META-INF/spring/SpringSCAProperty-context.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/spring/META-INF/spring/SpringSCAProperty-context.xml new file mode 100644 index 0000000000..f1ee21686d --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/spring/META-INF/spring/SpringSCAProperty-context.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/test.xml b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/test.xml new file mode 100644 index 0000000000..f2d684f766 --- /dev/null +++ b/branches/sca-equinox/modules/implementation-spring-runtime/src/test/resources/test.xml @@ -0,0 +1,27 @@ + + + + + + + diff --git a/branches/sca-equinox/modules/implementation-spring/META-INF/MANIFEST.MF b/branches/sca-equinox/modules/implementation-spring/META-INF/MANIFEST.MF index 240deaee25..f35441326e 100644 --- a/branches/sca-equinox/modules/implementation-spring/META-INF/MANIFEST.MF +++ b/branches/sca-equinox/modules/implementation-spring/META-INF/MANIFEST.MF @@ -1,21 +1,36 @@ Manifest-Version: 1.0 -Export-Package: org.apache.tuscany.sca.implementation.spring;uses:="or - g.apache.tuscany.sca.databinding,org.apache.tuscany.sca.runtime,org.a - pache.tuscany.sca.provider,org.springframework.context.support,org.sp - ringframework.beans,org.apache.tuscany.sca.assembly.impl,org.springfr - amework.beans.factory.config,org.apache.tuscany.sca.core,org.apache.t - uscany.sca.policy,javax.xml.namespace,javax.xml.stream,org.apache.tus - cany.sca.interfacedef.java.impl,org.apache.tuscany.sca.assembly.xml,o - rg.apache.tuscany.sca.contribution.resolver,org.apache.tuscany.sca.co - re.factory,org.apache.tuscany.sca.core.invocation,org.springframework - .beans.factory,org.apache.tuscany.sca.assembly,org.apache.tuscany.sca - .databinding.impl,org.springframework.core.io,org.springframework.bea - ns.factory.xml,org.springframework.context,org.apache.tuscany.sca.imp - lementation.java,org.apache.tuscany.sca.interfacedef.java,org.apache. - tuscany.sca.monitor,org.apache.tuscany.sca.interfacedef,org.w3c.dom,o - rg.apache.tuscany.sca.implementation.java.injection,org.apache.tuscan - y.sca.invocation,org.apache.tuscany.sca.contribution.processor";versi - on="1.4" +Export-Package: org.apache.tuscany.sca.implementation.spring;version="1.4"; + uses:="org.apache.tuscany.sca.databinding, + org.apache.tuscany.sca.runtime, + org.apache.tuscany.sca.provider, + org.springframework.context.support, + org.springframework.beans, + org.apache.tuscany.sca.assembly.impl, + org.springframework.beans.factory.config, + org.apache.tuscany.sca.core, + org.apache.tuscany.sca.policy, + javax.xml.namespace, + javax.xml.stream, + org.apache.tuscany.sca.interfacedef.java.impl, + org.apache.tuscany.sca.assembly.xml, + org.apache.tuscany.sca.contribution.resolver, + org.apache.tuscany.sca.core.factory, + org.apache.tuscany.sca.core.invocation, + org.springframework.beans.factory, + org.apache.tuscany.sca.assembly, + org.apache.tuscany.sca.databinding.impl, + org.springframework.core.io, + org.springframework.beans.factory.xml, + org.springframework.context, + org.apache.tuscany.sca.implementation.java, + org.apache.tuscany.sca.interfacedef.java, + org.apache.tuscany.sca.monitor, + org.apache.tuscany.sca.interfacedef, + org.w3c.dom, + org.apache.tuscany.sca.implementation.java.injection, + org.apache.tuscany.sca.invocation, + org.apache.tuscany.sca.contribution.processor", + org.apache.tuscany.sca.implementation.spring.xml Private-Package: org.apache.tuscany.sca.implementation.spring.xml;vers ion="1.4",org.springframework.sca.xml;version="1.4" Tool: Bnd-0.0.255 diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCAApplicationContext.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCAApplicationContext.java deleted file mode 100644 index b550fc3229..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCAApplicationContext.java +++ /dev/null @@ -1,53 +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; - -import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.AbstractXmlApplicationContext; -import org.springframework.core.io.Resource; - -/** - * An ApplicationContext specialization that registers namespace - * handlers for SCA elements - in particular the , and - * elements which are provided as SCA extensions to the Spring - * application context schema - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -public class SCAApplicationContext extends AbstractXmlApplicationContext { - public static final String APP_CONTEXT_PROP = "org.springframework.sca.application.context"; - private Resource appXml; - - public SCAApplicationContext(ApplicationContext parent, Resource appXml) { - super(parent); - this.appXml = appXml; - //refresh(); - } - - @Override - protected void initBeanDefinitionReader(XmlBeanDefinitionReader beanDefinitionReader) { - ClassLoader cl = getClassLoader(); - beanDefinitionReader.setNamespaceHandlerResolver(new SCANamespaceHandlerResolver(cl)); - } - - @Override - protected Resource[] getConfigResources() { - return new Resource[] {appXml}; - } -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCANamespaceHandlerResolver.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCANamespaceHandlerResolver.java deleted file mode 100644 index 32f575fe46..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCANamespaceHandlerResolver.java +++ /dev/null @@ -1,53 +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; - -import org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver; -import org.springframework.beans.factory.xml.NamespaceHandler; - -/** - * Overrides the default Spring namespace resolver to automatically register - * {@link ScaNamespaceHandler} instead of requiring a value to be supplied in a - * Spring configuration - * - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -public class SCANamespaceHandlerResolver extends DefaultNamespaceHandlerResolver { - private static final String SCA_NAMESPACE = "http://www.springframework.org/schema/sca"; - - private ScaNamespaceHandler handler; - - public SCANamespaceHandlerResolver(ClassLoader classLoader) { - super(classLoader); - handler = new ScaNamespaceHandler(/*componentType*/); - } - - public SCANamespaceHandlerResolver(String handlerMappingsLocation, ClassLoader classLoader) { - super(classLoader, handlerMappingsLocation); - handler = new ScaNamespaceHandler(/*componentType*/); - } - - @Override - public NamespaceHandler resolve(String namespaceUri) { - if (SCA_NAMESPACE.equals(namespaceUri)) { - return handler; - } - return super.resolve(namespaceUri); - } -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCAParentApplicationContext.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCAParentApplicationContext.java deleted file mode 100644 index d419d6db68..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SCAParentApplicationContext.java +++ /dev/null @@ -1,271 +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; - -import java.io.IOException; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import org.apache.tuscany.sca.assembly.ComponentProperty; -import org.apache.tuscany.sca.assembly.Property; -import org.apache.tuscany.sca.assembly.Reference; -import org.apache.tuscany.sca.core.factory.ObjectFactory; -import org.apache.tuscany.sca.core.invocation.ProxyFactory; -import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory; -import org.apache.tuscany.sca.interfacedef.java.JavaInterface; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.NoSuchBeanDefinitionException; -import org.springframework.beans.factory.config.AutowireCapableBeanFactory; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationEvent; -import org.springframework.context.MessageSourceResolvable; -import org.springframework.context.NoSuchMessageException; -import org.springframework.core.io.Resource; - -/** - * A Spring ParentApplicationContext for a given Spring Implementation - * - * The Parent application context is responsible for handling those entities within a Spring - * application context that actually belong to SCA rather than to Spring. The principal things - * are Properties and References. These may be present either through explicit - * and elements in the application context or they may be implicit through - * unresolved Spring bean elements. In either case, it is the Parent application - * context that must provide Spring beans that correspond to the property or reference, as derived - * from the SCA composite in which the Spring application context is an implementation. - * - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -class SCAParentApplicationContext implements ApplicationContext { - - // The Spring implementation for which this is the parent application context - private SpringImplementation implementation; - private RuntimeComponent component; - private JavaPropertyValueObjectFactory propertyFactory; - - private static final String[] EMPTY_ARRAY = new String[0]; - - public SCAParentApplicationContext(RuntimeComponent component, - SpringImplementation implementation, - ProxyFactory proxyService, - JavaPropertyValueObjectFactory propertyValueObjectFactory) { - this.implementation = implementation; - this.component = component; - this.propertyFactory = propertyValueObjectFactory; - } // end constructor - - public Object getBean(String name) throws BeansException { - return getBean(name, (Class) null); - } - - /** - * Get a Bean for a reference or for a property. - * - * @param name - the name of the Bean required - * @param requiredType - the required type of the Bean (either a Java class or a Java interface) - * @return Object - a Bean which matches the requested bean - */ - public Object getBean(String name, Class requiredType) throws BeansException { - System.out.println("Spring parent context - getBean called for name: " + name); - // The expectation is that the requested Bean is either a reference or a property - // from the Spring context - for (Reference reference : implementation.getReferences()) { - if (reference.getName().equals(name)) { - // Extract the Java interface for the reference (it can't be any other interface type - // for a Spring application context) - if (requiredType == null) { - JavaInterface javaInterface = (JavaInterface)reference.getInterfaceContract().getInterface(); - requiredType = javaInterface.getJavaClass(); - } - // Create and return the proxy for the reference - return getService(requiredType, reference.getName()); - } // end if - } // end for - - // For a property, get the name and the required Java type and create a Bean - // of that type with the value inserted. - for (Property property : implementation.getProperties()) { - if (property.getName().equals(name)) { - if (requiredType == null) { - // The following code only deals with a subset of types and was superceded - // by the information from the implementation (which uses Classes as found - // in the Spring implementation itself. - //requiredType = JavaXMLMapper.getJavaType( property.getXSDType() ); - requiredType = implementation.getPropertyClass(name); - } - return getPropertyBean(requiredType, property.getName()); - } // end if - } // end for - throw new NoSuchBeanDefinitionException("Unable to find Bean with name " + name); - - } // end method getBean( String, Class ) - - public Object getBean(String name, Object[] args) throws BeansException { - return getBean(name, ((Class)null)); - } - - /** - * Creates a proxy Bean for a reference - * @param the Business interface type for the reference - * @param businessInterface - the business interface as a Class - * @param referenceName - the name of the Reference - * @return an Bean of the type defined by - */ - private B getService(Class businessInterface, String referenceName) { - return component.getComponentContext().getService(businessInterface, referenceName); - } - - /** - * Method to create a Java Bean for a Property value - * @param the class type of the Bean - * @param requiredType - a Class object for the required type - * @param name - the Property name - * @return - a Bean of the specified property, with value set - */ - private B getPropertyBean(Class requiredType, String name) { - B propertyObject = null; - // Get the component's list of properties - List props = component.getProperties(); - for (ComponentProperty prop : props) { - if (prop.getName().equals(name)) { - // On finding the property, create a factory for it and create a Bean using - // the factory - ObjectFactory factory = propertyFactory.createValueFactory(prop, prop.getValue(), requiredType); - propertyObject = (B)factory.getInstance(); - } // end if - } // end for - - return propertyObject; - } - - public boolean containsBean(String name) { - // TODO - System.out.println("Spring parent context - containsBean called for name: " + name); - return false; - } - - public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { - // TODO - return false; - } - - public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { - throw new UnsupportedOperationException(); - } - - public Class getType(String name) throws NoSuchBeanDefinitionException { - return null; - } - - public String[] getAliases(String name) throws NoSuchBeanDefinitionException { - return EMPTY_ARRAY; - } - - public ApplicationContext getParent() { - return null; - } - - public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException { - return null; - } - - public String getId() { - return this.toString(); - } - - public String getDisplayName() { - return implementation.getURI(); - } - - public long getStartupDate() { - return 0; - } - - public boolean containsBeanDefinition(String beanName) { - return false; - } - - public int getBeanDefinitionCount() { - return 0; - } - - public String[] getBeanDefinitionNames() { - return new String[0]; - } - - public String[] getBeanNamesForType(Class type) { - return new String[0]; - } - - public String[] getBeanNamesForType(Class type, boolean includePrototypes, boolean includeFactoryBeans) { - return new String[0]; - } - - public Map getBeansOfType(Class type) throws BeansException { - return null; - } - - public Map getBeansOfType(Class type, boolean includePrototypes, boolean includeFactoryBeans) throws BeansException { - return null; - } - - public boolean isPrototype(String theString) { - return false; - } - - public BeanFactory getParentBeanFactory() { - return null; - } - - public boolean containsLocalBean(String name) { - return false; - } - - public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) { - return null; - } - - public String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException { - return null; - } - - public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { - return null; - } - - public void publishEvent(ApplicationEvent event) { - - } - - public Resource[] getResources(String locationPattern) throws IOException { - return new Resource[0]; - } - - public Resource getResource(String location) { - return null; - } - - public ClassLoader getClassLoader() { - // REVIEW: this is almost certainly flawed, but it's not clear how the SCA runtime's - // resource loading mechanism is exposed right now. - return this.getClass().getClassLoader(); - } -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaNamespaceHandler.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaNamespaceHandler.java deleted file mode 100644 index 45f00ce1af..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaNamespaceHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2002-2006 the original author or authors. - * - * Licensed 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; - -import org.springframework.beans.factory.xml.NamespaceHandlerSupport; - -/** - * Handler for the <sca:> namespace in an application context - * - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -public class ScaNamespaceHandler extends NamespaceHandlerSupport { - - public ScaNamespaceHandler() { - init(); - } - - public final void init() { - registerBeanDefinitionParser("reference", new ScaReferenceBeanDefinitionParser()); - registerBeanDefinitionParser("service", new ScaServiceBeanDefinitionParser()); - registerBeanDefinitionParser("property", new ScaPropertyBeanDefinitionParser()); - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaPropertyBeanDefinitionParser.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaPropertyBeanDefinitionParser.java deleted file mode 100644 index dc532ce20d..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaPropertyBeanDefinitionParser.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2002-2006 the original author or authors. - * - * Licensed 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; - -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.xml.BeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.w3c.dom.Element; - -/** - * Parser for the <sca:reference> element - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -public class ScaPropertyBeanDefinitionParser implements BeanDefinitionParser { - - public BeanDefinition parse(Element element, ParserContext parserContext) { - // do nothing, this is handled by Tuscany - return null; - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaReferenceBeanDefinitionParser.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaReferenceBeanDefinitionParser.java deleted file mode 100644 index 1dd44cd752..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaReferenceBeanDefinitionParser.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2002-2006 the original author or authors. - * - * Licensed 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; - -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.xml.BeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.w3c.dom.Element; - -/** - * Parser for the <sca:reference> element - * - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -public class ScaReferenceBeanDefinitionParser implements BeanDefinitionParser { - - public BeanDefinition parse(Element element, ParserContext parserContext) { - // do nothing, this is handled by Tuscany - return null; - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaServiceBeanDefinitionParser.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaServiceBeanDefinitionParser.java deleted file mode 100644 index 9dadcd2f49..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/ScaServiceBeanDefinitionParser.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2002-2006 the original author or authors. - * - * Licensed 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; - -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.xml.BeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.w3c.dom.Element; - -/** - * Parser for the <sca:service/> element - * - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -public class ScaServiceBeanDefinitionParser implements BeanDefinitionParser { - - public BeanDefinition parse(Element element, ParserContext parserContext) { - // do nothing, handled by Tuscany - return null; - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java index 56af997fae..8f49a1751b 100644 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java +++ b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java @@ -38,75 +38,75 @@ import org.springframework.core.io.Resource; */ public class SpringImplementation extends ImplementationImpl implements Implementation, Extensible { - // The location attribute which points to the Spring application-context XML file + /** The location attribute which points to the Spring application-context XML file **/ private String location; - // The application-context file as a Spring Resource + /** The application-context file as a Spring Resource **/ private Resource resource; + /** **/ private ComponentType componentType; - // Mapping of Services to Beans + /** Mapping of Services to Beans **/ private Hashtable serviceMap; - // Mapping of property names to Java class + /** Mapping of property names to Java class **/ private Hashtable propertyMap; - protected SpringImplementation() { + public SpringImplementation() { this.location = null; this.resource = null; setUnresolved(true); serviceMap = new Hashtable(); propertyMap = new Hashtable(); - } // end method SpringImplementation + } + - /* Returns the location attribute for this Spring implementation */ + /** + * Returns the location attribute for this Spring implementation + * @return URI for the location of the Spring implementation + */ public String getLocation() { return location; } /** * Sets the location attribute for this Spring implementation - * location - a URI to the Spring application-context file + * @param location a URI to the Spring application-context file */ public void setLocation(String location) { this.location = location; return; } + /** + * + * @param resource + */ public void setResource(Resource resource) { this.resource = resource; } + /** + * + * @return + */ public Resource getResource() { return resource; } - /* - * Returns the componentType for this Spring implementation + /** + * Returns the componentType for this Spring implementation + * @return */ public ComponentType getComponentType() { return componentType; } - /* + /** * Sets the componentType for this Spring implementation + * @param componentType */ public void setComponentType(ComponentType componentType) { this.componentType = componentType; } - @Override - public List getServices() { - return componentType.getServices(); - } - - @Override - public List getReferences() { - return componentType.getReferences(); - } - - @Override - public List getProperties() { - return componentType.getProperties(); - } - /** * Returns the Spring Bean which implements a particular service * @param service the service @@ -136,7 +136,7 @@ public class SpringImplementation extends ImplementationImpl implements Implemen return; propertyMap.put(propertyName, propertyClass); return; - } // end method setPropertyClass + } /** * Gets the Java Class for an SCA property @@ -145,5 +145,20 @@ public class SpringImplementation extends ImplementationImpl implements Implemen */ public Class getPropertyClass(String propertyName) { return propertyMap.get(propertyName); - } // end method getPropertyClass + } + + @Override + public List getServices() { + return componentType.getServices(); + } + + @Override + public List getReferences() { + return componentType.getReferences(); + } + + @Override + public List getProperties() { + return componentType.getProperties(); + } } diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java deleted file mode 100644 index d7724f1723..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java +++ /dev/null @@ -1,87 +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; - -import org.apache.tuscany.sca.core.invocation.ProxyFactory; -import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.provider.ImplementationProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; -import org.springframework.context.support.AbstractApplicationContext; - -// TODO - create a working version of this class... -/** - * A provider class for runtime Spring implementation instances - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -public class SpringImplementationProvider implements ImplementationProvider { - private RuntimeComponent component; - - // A Spring application context object - private AbstractApplicationContext springContext; - - /** - * Constructor for the provider - takes a component definition and a Spring implementation - * description - * @param component - the component in the assembly - * @param implementation - the implementation - */ - public SpringImplementationProvider(RuntimeComponent component, - SpringImplementation implementation, - ProxyFactory proxyService, - JavaPropertyValueObjectFactory propertyValueObjectFactory) { - super(); - this.component = component; - SCAParentApplicationContext scaParentContext = - new SCAParentApplicationContext(component, implementation, proxyService, propertyValueObjectFactory); - springContext = new SCAApplicationContext(scaParentContext, implementation.getResource()); - } // end constructor - - public Invoker createInvoker(RuntimeComponentService service, Operation operation) { - return new SpringInvoker(component, springContext, service, operation); - } - - public boolean supportsOneWayInvocation() { - return false; - } - - /** - * Start this Spring implementation instance - */ - 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(); - // System.out.println("SpringImplementationProvider: Spring context started"); - } // end method start() - - /** - * Stop this implementation instance - */ - public void stop() { - // TODO - complete - springContext.stop(); - //System.out.println("SpringImplementationProvider: Spring context stopped"); - } // end method stop - -} // end class SpringImplementationProvider diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java deleted file mode 100644 index f2bb1fd6e8..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java +++ /dev/null @@ -1,78 +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; - -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory; -import org.apache.tuscany.sca.core.invocation.ProxyFactory; -import org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint; -import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; -import org.apache.tuscany.sca.databinding.TransformerExtensionPoint; -import org.apache.tuscany.sca.databinding.impl.MediatorImpl; -import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory; -import org.apache.tuscany.sca.provider.ImplementationProvider; -import org.apache.tuscany.sca.provider.ImplementationProviderFactory; -import org.apache.tuscany.sca.runtime.RuntimeComponent; - -/** - * ImplementationProviderFactory for Spring implementation type - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - * - */ -public class SpringImplementationProviderFactory implements ImplementationProviderFactory { - - private ProxyFactory proxyFactory; - private JavaPropertyValueObjectFactory propertyFactory; - - /** - * Simple constructor - * - */ - public SpringImplementationProviderFactory(ExtensionPointRegistry extensionPoints) { - super(); - - ProxyFactoryExtensionPoint proxyFactories = extensionPoints.getExtensionPoint(ProxyFactoryExtensionPoint.class); - proxyFactory = new ExtensibleProxyFactory(proxyFactories); - - // TODO: could the runtime have a default PropertyValueObjectFactory? - DataBindingExtensionPoint dataBindings = extensionPoints.getExtensionPoint(DataBindingExtensionPoint.class); - TransformerExtensionPoint transformers = extensionPoints.getExtensionPoint(TransformerExtensionPoint.class); - MediatorImpl mediator = new MediatorImpl(dataBindings, transformers); - propertyFactory = new JavaPropertyValueObjectFactory(mediator); - } - - /** - * Returns a SpringImplementationProvider for a given component and Spring implementation - * @param component the component for which implementation instances are required - * @param implementation the Spring implementation with details of the component - * implementation - * @return the SpringImplementationProvider for the specified component - */ - public ImplementationProvider createImplementationProvider(RuntimeComponent component, - SpringImplementation implementation) { - return new SpringImplementationProvider(component, implementation, proxyFactory, propertyFactory); - } - - /** - * Returns the class of the Spring implementation - */ - public Class getModelType() { - return SpringImplementation.class; - } -} // end class SpringImplementationProviderFactory diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringInvocationException.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringInvocationException.java deleted file mode 100644 index 410525a054..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringInvocationException.java +++ /dev/null @@ -1,40 +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; - -/** - * @version $Rev$ $Date$ - */ -public class SpringInvocationException extends Exception { - - private static final long serialVersionUID = -1157790036638157513L; - - public SpringInvocationException(String msg) { - super(msg); - } - - public SpringInvocationException(Throwable e) { - super(e); - } - - public SpringInvocationException(String msg,Throwable e) { - super(msg,e); - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringInvoker.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringInvoker.java deleted file mode 100644 index 5eeb802727..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringInvoker.java +++ /dev/null @@ -1,127 +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; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import org.apache.tuscany.sca.implementation.spring.xml.SpringBeanElement; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceUtil; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; -import org.springframework.beans.BeansException; -import org.springframework.context.support.AbstractApplicationContext; - -/** - * Initial implementation of a Spring bean invoker - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -public class SpringInvoker implements Invoker { - - private Method theMethod = null; - private Object bean; - private SpringBeanElement beanElement; - private boolean badInvoker = false; - - private AbstractApplicationContext springContext; - private Operation operation; - - /** - * SpringInvoker constructor - * @param component - the Spring component to invoke - * @param service - the service to invoke - * @param operation - the operation to invoke - */ - public SpringInvoker(RuntimeComponent component, - AbstractApplicationContext springContext, - RuntimeComponentService service, - Operation operation) { - - this.springContext = springContext; - this.operation = operation; - - // From the component and the service, identify the Spring Bean which is the target - SpringImplementation theImplementation = (SpringImplementation)component.getImplementation(); - beanElement = theImplementation.getBeanFromService(service.getService()); - - if (beanElement == null) { - badInvoker = true; - return; - } - - } // end constructor SpringInvoker - - // Lazy-load the method to avoid timing problems with the Spring Context - private void setupMethod() throws SpringInvocationException{ - try { - bean = springContext.getBean(beanElement.getId()); - Class beanClass = bean.getClass(); - theMethod = JavaInterfaceUtil.findMethod(beanClass, operation); - //System.out.println("SpringInvoker - found method " + theMethod.getName() ); - } catch (BeansException e) { - throw new SpringInvocationException(e); - } catch (NoSuchMethodException e) { - throw new SpringInvocationException(e); - } - } - - private Object doInvoke(Object payload) throws SpringInvocationException { - if (theMethod == null) - setupMethod(); - - if (badInvoker) - throw new SpringInvocationException("Spring invoker incorrectly configured"); - // Invoke the method on the Spring bean using the payload, returning the results - try { - Object ret; - - if (payload != null && !payload.getClass().isArray()) { - ret = theMethod.invoke(bean, payload); - } else { - ret = theMethod.invoke(bean, (Object[])payload); - } - return ret; - } catch (InvocationTargetException e) { - throw new SpringInvocationException("Spring invoker invoke method '"+ theMethod.getName()+"' error.",e); - } catch (Exception e) { - throw new SpringInvocationException("Spring invoker invoke method '"+ theMethod.getName()+"' error.",e); - } - - } // end method doInvoke - - /** - * @param msg the message to invoke on the target bean - */ - public Message invoke(Message msg) { - try { - Object resp = doInvoke(msg.getBody()); - msg.setBody(resp); - } catch (SpringInvocationException e) { - msg.setFaultBody(e.getCause()); - }catch (Throwable e) { - msg.setFaultBody(e); - } - //System.out.println("Spring Invoker - invoke called"); - return msg; - } // end method invoke - -} // end class SpringInvoker diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringOperationNotFoundException.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringOperationNotFoundException.java deleted file mode 100644 index b34b1ee0b1..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringOperationNotFoundException.java +++ /dev/null @@ -1,40 +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; - -/** - * @version $Rev$ $Date$ - */ -public class SpringOperationNotFoundException extends Exception { - - private static final long serialVersionUID = -1157790036638157554L; - - public SpringOperationNotFoundException(String msg) { - super(msg); - } - - public SpringOperationNotFoundException(Throwable e) { - super(e); - } - - public SpringOperationNotFoundException(String msg,Throwable e) { - super(msg,e); - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringPropertyValueObjectFactory.java b/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringPropertyValueObjectFactory.java deleted file mode 100644 index 3f98180498..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringPropertyValueObjectFactory.java +++ /dev/null @@ -1,45 +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; - -import org.apache.tuscany.sca.databinding.Mediator; -import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory; - -/** - * - * Factory class for PropertyValueObjects for Spring implementations - * - * 6th May 2007: Chosen a very simple design for this class - since Spring implementations are a form - * of Java POJO, the simple design chosen for this class is to re-use the PropertyValueObjectFactory - * implementation from the base implementation-java-runtime package of Tuscany SCA Java, since the - * same properties are going to be rendered in the same way to simple Tuscany POJOs and to Spring - * Bean POJOs. Mike Edwards - * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $ - */ -public class SpringPropertyValueObjectFactory extends JavaPropertyValueObjectFactory { - - /** - * Constructor simply defers to the superclass, along with the complete implementation... - */ - public SpringPropertyValueObjectFactory(Mediator mediator) { - super(mediator); - } // end constructor JavaPropertyValueObjectFactory(Mediator mediator) - -} // end class SpringPropertyValueObjectFactory diff --git a/branches/sca-equinox/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory b/branches/sca-equinox/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory deleted file mode 100644 index ab707cfd68..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory +++ /dev/null @@ -1,19 +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. - -# Implementation class for the implementation extension -org.apache.tuscany.sca.implementation.spring.SpringImplementationProviderFactory;model=org.apache.tuscany.sca.implementation.spring.SpringImplementation diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java deleted file mode 100644 index d782384ce6..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java +++ /dev/null @@ -1,61 +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.itests; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.node.Contribution; -import org.apache.tuscany.sca.node.ContributionLocationHelper; -import org.apache.tuscany.sca.node.Node; -import org.apache.tuscany.sca.node.NodeFactory; - -/** - * - * @version $Rev$ $Date$ - */ -public abstract class AbstractSCATestCase extends TestCase { - - protected Node node; - protected T service; - - @Override - protected void setUp() throws Exception { - String contribution = ContributionLocationHelper.getContributionLocation(getClass()); - node = NodeFactory.newInstance().createNode(getCompositeName(), new Contribution("test", contribution)); - node.start(); - service = (T)node.getService(getServiceClass(), "ClientComponent"); - } - - protected abstract Class getServiceClass(); - - @Override - protected void tearDown() throws Exception { - node.stop(); - node.destroy(); - } - - protected String getCompositeName() { - String className = this.getClass().getName(); - String compositeName = className.substring(0, className.length() - 8).replace('.', '/') + ".composite"; - System.out.println("Using composite: " + compositeName); - return compositeName; - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java deleted file mode 100644 index c9b30b1688..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java +++ /dev/null @@ -1,43 +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.itests.helloworld; - -import org.apache.tuscany.sca.implementation.spring.itests.AbstractSCATestCase; - -/** - * Basic "hello world" style test case for testing Spring component implementation - * - * @version $Rev$ $Date$ - */ -public abstract class AbstractHelloWorldTestCase extends AbstractSCATestCase { - - /** - * Calls the hello world service and checks that it gives the right response... - */ - public void testCalculator() throws Exception { - assertEquals("Hello petra", service.sayHello("petra")); - System.out.println("Test " + this.getClass().getSimpleName() + " completed successfully"); - } - - @Override - protected Class getServiceClass() { - return HelloWorld.class; - } -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorld.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorld.java deleted file mode 100644 index fd295daaf6..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorld.java +++ /dev/null @@ -1,35 +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.itests.helloworld; - -import org.osoa.sca.annotations.Remotable; - -/** - * Interface for the "hello world" service - predictably simple with a single operation - * "sayHello" - * - * @version $Rev$ $Date$ - */ -@Remotable -public interface HelloWorld { - - String sayHello(String s); - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldImpl.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldImpl.java deleted file mode 100644 index 65ab096855..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldImpl.java +++ /dev/null @@ -1,38 +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.itests.helloworld; - -/** - * A simple proxy Java class which implements the HelloWorld interface but which uses - * a reference "delegate" to actually provide the HelloWorld service - * - * @version $Rev$ $Date$ - */ -public class HelloWorldImpl implements HelloWorld { - - static String hello = "Hello "; - - public String sayHello(String s) { - // Simply call the reference to satisfy the service request... - System.out.println("HelloWorldImpl - sayHello called"); - return (hello + s); - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldProxy.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldProxy.java deleted file mode 100644 index bd35e9f3b9..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/HelloWorldProxy.java +++ /dev/null @@ -1,42 +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.itests.helloworld; - -import org.osoa.sca.annotations.Reference; - -/** - * A simple proxy Java class which implements the HelloWorld interface but which uses - * a reference "delegate" to actually provide the HelloWorld service - * - * @version $Rev$ $Date$ - */ -public class HelloWorldProxy implements HelloWorld { - - // Here is the reference "delegate" - it implements the HelloWorld interface... - @Reference - public HelloWorld delegate; - - public String sayHello(String s) { - // Simply call the reference to satisfy the service request... - System.out.println("HelloWorldProxy - calling sayHello"); - return delegate.sayHello(s); - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccessTestCase.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccessTestCase.java deleted file mode 100644 index d77f183a66..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccessTestCase.java +++ /dev/null @@ -1,35 +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.itests.helloworld; - -/** - * A test case to check the ability of Spring Beans used as an SCA implementation - * to access the Spring application context without problems: - * 1) A composite containing a component with a Spring implementation - * 2) The composite has a component with a Java POJO implementation which uses the - * Spring implementation to satisfy a reference - * 3) The Spring Bean accesses the Spring application context and only returns data - * if it is successful - * - * @version $Rev$ $Date$ - */ -public class SpringContextAccessTestCase extends AbstractHelloWorldTestCase { - // super class does it all getting composite based on this class name -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorldTestCase.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorldTestCase.java deleted file mode 100644 index 86f979fe15..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorldTestCase.java +++ /dev/null @@ -1,34 +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.itests.helloworld; - -/** - * A basic test case of: - * 1) A composite containing a component with a Spring implementation - * 2) The composite has a component with a Java POJO implementation which uses the - * Spring implementation to satisfy a reference - * 3) The element references an application context that - * uses an explicit sca: element to identify the service offered by the Spring application - * - * @version $Rev$ $Date$ - */ -public class SpringExplicitHelloWorldTestCase extends AbstractHelloWorldTestCase { - // super class does it all getting composite based on this class name -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReferenceTestCase.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReferenceTestCase.java deleted file mode 100644 index 44016ad249..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReferenceTestCase.java +++ /dev/null @@ -1,39 +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.itests.helloworld; - -/** - * A test case designed to test the implementation of References from a Spring application - * context, where the references are explicit, through the presence of an sca:reference - * element within the Spring application context - * - * The artifacts involved in this test are: - * - * 1) A composite containing a component with a Spring implementation which makes - * a reference to a second component - * 2) The composite has a component with a Java POJO implementation which satisfies the reference - * 3) The element references an application context that - * uses an explicit sca:reference element to identify the reference made by the Spring application - * - * @version $Rev$ $Date$ - */ -public class SpringExplicitReferenceTestCase extends AbstractHelloWorldTestCase { - // super class does it all getting composite based on this class name -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java deleted file mode 100644 index 74dcf32723..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java +++ /dev/null @@ -1,32 +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.itests.helloworld; - -/** - * A basic test case of: - * 1) A composite containing a component with a Spring implementation - * 2) The composite has a component with a Java POJO implementation which uses the - * Spring implementation to satisfy a reference - * - * @version $Rev$ $Date$ - */ -public class SpringHelloWorldTestCase extends AbstractHelloWorldTestCase { - // super class does it all getting composite based on this class name -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReferenceTestCase.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReferenceTestCase.java deleted file mode 100644 index 97f91ff91e..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReferenceTestCase.java +++ /dev/null @@ -1,42 +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.itests.helloworld; - -/** - * A test case designed to test the implementation of References from a Spring application - * context, where the references are implicit, through the presence of Bean properties with a - * ref attribute which is not satisfied by a Bean within the application context. - * - * The artifacts involved in this test are: - * - * 1) A composite containing a component with a Spring implementation which makes - * a reference to a second component - * 2) The composite has a component with a Java POJO implementation which satisfies the reference - * 3) The element references an application context that - * does not use an explicit sca:reference element to identify the reference made by the - * Spring application, but relies on an unsatisfied Bean property with a ref attribute. - * - * @version $Rev$ $Date$ - */ -public class SpringImplicitReferenceTestCase extends AbstractHelloWorldTestCase { - // super class does it all getting composite based on this class name -} - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorldTestCase.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorldTestCase.java deleted file mode 100644 index bfe3d64cf3..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorldTestCase.java +++ /dev/null @@ -1,32 +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.itests.helloworld; - -/** - * A basic test case of: - * 1) A composite containing a component with a Spring implementation - * 2) The composite has a component with a Java POJO implementation which uses the - * Spring implementation to satisfy a reference - * - * @version $Rev$ $Date$ - */ -public class SpringImportHelloWorldTestCase extends AbstractHelloWorldTestCase { - // super class does it all getting composite based on this class name -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAPropertyTestCase.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAPropertyTestCase.java deleted file mode 100644 index 2c46f8c066..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAPropertyTestCase.java +++ /dev/null @@ -1,39 +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.itests.helloworld; - -/** - * A test case designed to test the implementation of Properties from a Spring application - * context, where the properties are explicit, through the presence of an sca:property - * element within the Spring application context - * - * The artifacts involved in this test are: - * - * 1) A composite containing a component with a Spring implementation - * 2) The element references an application context that - * uses an explicit sca:property element which is used to compute the response to an invocation - * of the service of the implementation - * - * @version $Rev$ $Date$ - */ -public class SpringSCAPropertyTestCase extends AbstractHelloWorldTestCase { - // super class does it all getting composite based on this class name -} - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBean.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBean.java deleted file mode 100644 index 4d60bffef8..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBean.java +++ /dev/null @@ -1,31 +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.itests.mock; - -/** - * @version $Rev: 430937 $ $Date: 2006-08-12 02:17:56 +0100 (Sat, 12 Aug 2006) $ - */ -public interface TestBean { - String echo(String msg); - - TestBean getBean(); - - void setBean(TestBean bean); - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBeanImpl.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBeanImpl.java deleted file mode 100644 index acad9f2fea..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestBeanImpl.java +++ /dev/null @@ -1,42 +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.itests.mock; - -/** - * @version $Rev: 441406 $ $Date: 2006-09-08 08:20:10 +0100 (Fri, 08 Sep 2006) $ - */ -public class TestBeanImpl implements TestBean { - - private TestBean bean; - - public TestBeanImpl() { - } - - public String echo(String msg) { - return msg; - } - - public TestBean getBean() { - return bean; - } - - public void setBean(TestBean bean) { - this.bean = bean; - } -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestContextAccessBean.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestContextAccessBean.java deleted file mode 100644 index 79de2b32a0..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestContextAccessBean.java +++ /dev/null @@ -1,77 +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.itests.mock; - -/** - * Spring bean test class for testing the access to the Spring Context from within - * a Spring Bean running as part of an SCA Component. - * - * This class accesses the Spring Context and only returns non-null data if the - * Context is successfully accessed. - * - * The design to receive the application context is as follows: - * - the Bean implements the ApplicationContextAware interface - * - this interface provides getter and setter methods for the Spring application - * context - * - when the Bean is created at runtime, the setter method is called, injecting - * the context - */ - -import org.apache.tuscany.sca.implementation.spring.itests.helloworld.HelloWorld; - -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; - - -public class TestContextAccessBean implements HelloWorld, ApplicationContextAware { - - private static ApplicationContext ctx; - static String hello = "Hello "; - - // Return the hello string only if the application context is successfully accessed - public String sayHello(String message) { - System.out.println("TestContextAccessBean - sayHello called"); - ApplicationContext theContext = getApplicationContext(); - - if( theContext == null ) return null; - - // A simple check to see if the context contains this bean, which it should... - if ( !theContext.containsBean( "testBean" ) ) return null; - - return (hello + message); - } // end sayHello() - - /** - * Application context setter - */ - public void setApplicationContext(ApplicationContext appContext) throws BeansException { - // Wiring the ApplicationContext into a static method - ctx = appContext; - } - - /** - * Application context getter - * @return - */ - public static ApplicationContext getApplicationContext() { - return ctx; - } - -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestHelloWorldBean.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestHelloWorldBean.java deleted file mode 100644 index f165bb8b75..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestHelloWorldBean.java +++ /dev/null @@ -1,39 +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.itests.mock; - -/** - * A simple test Spring bean which provides the HelloWorld service - * - * @version $Rev$ $Date$ - */ - -import org.apache.tuscany.sca.implementation.spring.itests.helloworld.HelloWorld; - -public class TestHelloWorldBean implements HelloWorld { - - static String hello = "Hello "; - - // Classic "Hello xxx" response to any input message - public String sayHello(String message) { - System.out.println("TestHelloWorldBean - sayHello called"); - return (hello + message); - } - -} // end class TestHelloWorldBean diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReference.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReference.java deleted file mode 100644 index a1d9b5a2f4..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReference.java +++ /dev/null @@ -1,27 +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.itests.mock; - -/** - * @version $Rev: 536115 $ $Date: 2007-05-08 09:04:20 +0100 (Tue, 08 May 2007) $ - */ -public interface TestReference { - String echo(String msg); -} diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReferenceBean.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReferenceBean.java deleted file mode 100644 index ab4c07d059..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestReferenceBean.java +++ /dev/null @@ -1,57 +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.itests.mock; - -/** - * A test Spring bean which provides the HelloWorld service by calling a reference - * to provide the content of the response - * - * @version $Rev$ $Date$ - */ - -import org.apache.tuscany.sca.implementation.spring.itests.helloworld.HelloWorld; - -public class TestReferenceBean implements HelloWorld { - - // The reference - private HelloWorld bean; - - // Classic "Hello xxx" response to any input message - public String sayHello(String message) { - System.out.println("TestReferenceBean - sayHello called"); - return (bean.sayHello(message)); - } - - /** - * Setter for the bean reference - * @param theBean - */ - public void setBean(HelloWorld theBean) { - this.bean = theBean; - } - - /** - * Getter for the reference - * @return - */ - public HelloWorld getBean() { - return this.bean; - } - -} // end class TestReferenceBean diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestSCAPropertyBean.java b/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestSCAPropertyBean.java deleted file mode 100644 index 0f00c7e480..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/mock/TestSCAPropertyBean.java +++ /dev/null @@ -1,55 +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.itests.mock; - -/** - * A test Spring bean which provides the HelloWorld service. - * This bean has a single String property called "hello" which must be set through - * external configuration to give the correct response message, otherwise an (incorrect) - * default message is generated - * - * @version $Rev$ $Date$ - */ - -import org.apache.tuscany.sca.implementation.spring.itests.helloworld.HelloWorld; - -public class TestSCAPropertyBean implements HelloWorld { - - private String hello = "Go away"; - - /** - * Provides the operation of the "HelloWorld" interface - a simple string response - * to a string input message, where the response is a greeting followed by the original - * input message. - */ - public String sayHello(String message) { - System.out.println("TestHelloWorldBean - sayHello called"); - return (hello + " " + message); - } - - /** - * Public setter for the (unannotated) field "hello" which constitutes an SCA - * property - * @param message - the message to use for the response to "sayHello" - */ - public void setHello(String message) { - hello = message; - } - -} // end class TestSCAPropertyBean diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringContextAccess-context.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringContextAccess-context.xml deleted file mode 100644 index a7d30bf201..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringContextAccess-context.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringExplicitHelloWorld-context.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringExplicitHelloWorld-context.xml deleted file mode 100644 index 7c358ac01c..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringExplicitHelloWorld-context.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringExplicitReference-context.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringExplicitReference-context.xml deleted file mode 100644 index 38e90b41fa..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringExplicitReference-context.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringHelloWorld-Imported-context.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringHelloWorld-Imported-context.xml deleted file mode 100644 index 18ce21805c..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringHelloWorld-Imported-context.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringHelloWorld-context.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringHelloWorld-context.xml deleted file mode 100644 index 18ce21805c..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringHelloWorld-context.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringImplicitReference-context.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringImplicitReference-context.xml deleted file mode 100644 index e6b69e8cad..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringImplicitReference-context.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringImportHelloWorld-context.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringImportHelloWorld-context.xml deleted file mode 100644 index 8e18a56cca..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/SpringImportHelloWorld-context.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/testReferenceContext.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/testReferenceContext.xml deleted file mode 100644 index fdbbeeced2..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/testReferenceContext.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/testServiceContext.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/testServiceContext.xml deleted file mode 100644 index 6b3f1f9890..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/META-INF/sca/testServiceContext.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/SpringHelloWorld-Imported-context.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/SpringHelloWorld-Imported-context.xml deleted file mode 100644 index 18ce21805c..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/SpringHelloWorld-Imported-context.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccess.composite b/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccess.composite deleted file mode 100644 index 0b260b5dcf..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringContextAccess.composite +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorld.composite b/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorld.composite deleted file mode 100644 index 79f4041fe6..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitHelloWorld.composite +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReference.composite b/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReference.composite deleted file mode 100644 index 87353b69ea..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringExplicitReference.composite +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorld.composite b/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorld.composite deleted file mode 100644 index ebb693d243..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringHelloWorld.composite +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReference.composite b/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReference.composite deleted file mode 100644 index 9f51277d22..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImplicitReference.composite +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorld.composite b/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorld.composite deleted file mode 100644 index 95dd9131eb..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringImportHelloWorld.composite +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAProperty.composite b/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAProperty.composite deleted file mode 100644 index af1b3be0a5..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/org/apache/tuscany/sca/implementation/spring/itests/helloworld/SpringSCAProperty.composite +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - Hello - - - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/spring/META-INF/MANIFEST.MF b/branches/sca-equinox/modules/implementation-spring/src/test/resources/spring/META-INF/MANIFEST.MF deleted file mode 100644 index 950dbeba4c..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/spring/META-INF/MANIFEST.MF +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -Spring-Context: META-INF/spring/SpringSCAProperty-context.xml - diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/spring/META-INF/spring/SpringSCAProperty-context.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/spring/META-INF/spring/SpringSCAProperty-context.xml deleted file mode 100644 index f1ee21686d..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/spring/META-INF/spring/SpringSCAProperty-context.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/branches/sca-equinox/modules/implementation-spring/src/test/resources/test.xml b/branches/sca-equinox/modules/implementation-spring/src/test/resources/test.xml deleted file mode 100644 index f2d684f766..0000000000 --- a/branches/sca-equinox/modules/implementation-spring/src/test/resources/test.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - -- cgit v1.2.3