summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/LICENSE205
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/META-INF/MANIFEST.MF63
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/NOTICE6
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/pom.xml81
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SCAGenericApplicationContext.java145
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SCAParentApplicationContext.java213
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SpringApplicationContextAccessor.java41
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SpringContextWrapper.java130
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/SCANamespaceHandlerResolver.java53
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaNamespaceHandler.java38
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaPropertyBeanDefinitionParser.java44
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaReferenceBeanDefinitionParser.java49
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaServiceBeanDefinitionParser.java48
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ComponentNameAnnotationProcessor.java151
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ConstructorAnnotationProcessor.java112
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/InitDestroyAnnotationProcessor.java75
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/PropertyAnnotationProcessor.java164
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ReferenceAnnotationProcessor.java168
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/SpringXMLBeanDefinitionLoaderImpl.java78
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/ComponentWrapper.java38
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/PropertyValueWrapper.java50
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java81
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java78
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationWrapper.java158
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvocationException.java40
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvoker.java126
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader17
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory20
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.handlers1
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.schemas1
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/org/springframework/sca/xml/spring-sca.xsd84
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/LICENSE205
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/META-INF/MANIFEST.MF25
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/NOTICE6
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/README9
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/pom.xml50
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/stub/SpringXMLBeanDefinitionLoaderStub.java92
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/ComponentTie.java41
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/PropertyValueTie.java53
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringApplicationContextAccessor.java39
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringContextStub.java142
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationProvider.java80
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationProviderFactory.java75
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationTie.java156
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringInvocationException.java40
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringInvoker.java125
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader17
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory20
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/LICENSE205
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/META-INF/MANIFEST.MF25
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/NOTICE6
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/README9
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/pom.xml70
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SCAGenericApplicationContext.java176
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SCAParentApplicationContext.java212
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java130
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringImplementationStub.java146
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringBeanElement.java129
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringConstructorArgElement.java77
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringElementTie.java70
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringPropertyElement.java68
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAPropertyElement.java59
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAReferenceElement.java73
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAServiceElement.java73
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/SCANamespaceHandlerResolver.java53
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaNamespaceHandler.java38
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaPropertyBeanDefinitionParser.java44
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaReferenceBeanDefinitionParser.java49
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaServiceBeanDefinitionParser.java48
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ComponentNameAnnotationProcessor.java151
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ComponentStub.java54
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ConstructorAnnotationProcessor.java112
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/InitDestroyAnnotationProcessor.java75
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/PropertyAnnotationProcessor.java163
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/PropertyValueStub.java55
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ReferenceAnnotationProcessor.java167
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/SpringXMLLoaderTie.java57
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/META-INF/spring.handlers1
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/META-INF/spring.schemas1
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/org/springframework/sca/xml/spring-sca.xsd84
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/LICENSE205
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/META-INF/MANIFEST.MF50
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/NOTICE6
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/pom.xml59
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringBeanElement.java132
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringConstructorArgElement.java90
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java259
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java41
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationConstants.java73
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringPropertyElement.java71
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAPropertyElement.java63
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAReferenceElement.java92
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAServiceElement.java92
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringBeanIntrospector.java95
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java917
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringImplementationProcessor.java244
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringXMLBeanDefinitionLoader.java50
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder18
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor20
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions17
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/impl-spring-validation-messages.properties28
-rw-r--r--sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/org/apache/tuscany/sca/implementation/spring/definitions.xml30
102 files changed, 0 insertions, 9065 deletions
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/LICENSE b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/LICENSE
deleted file mode 100644
index 6e529a25c4..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
-
-
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/META-INF/MANIFEST.MF b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/META-INF/MANIFEST.MF
deleted file mode 100644
index b598607625..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,63 +0,0 @@
-Manifest-Version: 1.0
-SCA-Version: 1.1
-Bundle-Name: Apache Tuscany SCA Spring Implementation Runtime Model
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0.0
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Spring Implementation Runtime Model
-Bundle-SymbolicName: org.apache.tuscany.sca.implementation.spring.runtime
-Bundle-DocURL: http://www.apache.org/
-Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6
-Import-Package: org.oasisopen.sca;version="2.0.0",
- org.oasisopen.sca.annotation;version="2.0.0",
- javax.xml.namespace,
- org.apache.tuscany.sca.assembly;version="2.0.0",
- org.apache.tuscany.sca.assembly.builder;version="2.0.0",
- org.apache.tuscany.sca.assembly.impl;version="2.0.0",
- org.apache.tuscany.sca.assembly.xml;version="2.0.0",
- org.apache.tuscany.sca.context;version="2.0.0",
- org.apache.tuscany.sca.contribution;version="2.0.0",
- org.apache.tuscany.sca.contribution.processor;version="2.0.0",
- org.apache.tuscany.sca.contribution.resolver;version="2.0.0",
- org.apache.tuscany.sca.core;version="2.0.0",
- org.apache.tuscany.sca.core.factory;version="2.0.0",
- org.apache.tuscany.sca.core.invocation;version="2.0.0",
- org.apache.tuscany.sca.databinding;version="2.0.0",
- org.apache.tuscany.sca.databinding.impl;version="2.0.0",
- org.apache.tuscany.sca.implementation.spring;version="2.0.0",
- org.apache.tuscany.sca.implementation.spring.xml;version="2.0.0",
- org.apache.tuscany.sca.implementation.java;version="2.0.0",
- org.apache.tuscany.sca.implementation.java.injection;version="2.0.0",
- org.apache.tuscany.sca.implementation.java.introspect;version="2.0.0",
- org.apache.tuscany.sca.implementation.java.introspect.impl;version="2.0.0",
- org.apache.tuscany.sca.interfacedef;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.java;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.java.impl;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.util;version="2.0.0",
- org.apache.tuscany.sca.invocation;version="2.0.0",
- org.apache.tuscany.sca.monitor;version="2.0.0",
- org.apache.tuscany.sca.policy;version="2.0.0",
- org.apache.tuscany.sca.provider;version="2.0.0",
- org.apache.tuscany.sca.runtime;version="2.0.0",
- org.springframework.beans;version="3.0.2.RELEASE",
- org.springframework.beans.factory;version="3.0.2.RELEASE",
- org.springframework.beans.factory.annotation;version="3.0.2.RELEASE",
- org.springframework.beans.factory.config;version="3.0.2.RELEASE",
- org.springframework.beans.factory.support;version="3.0.2.RELEASE",
- org.springframework.beans.factory.xml;version="3.0.2.RELEASE",
- org.springframework.context;version="3.0.2.RELEASE",
- org.springframework.context.support;version="3.0.2.RELEASE",
- org.springframework.core;version="3.0.2.RELEASE",
- org.springframework.core.io;version="3.0.2.RELEASE",
- org.springframework.util;version="3.0.2.RELEASE"
-Export-Package: org.apache.tuscany.sca.implementation.spring.context;version="2.0.0";
- uses:="org.springframework.beans.factory.support,
- org.springframework.context.support,
- org.springframework.core.io,
- org.apache.tuscany.sca.implementation.spring,
- org.springframework.context,
- org.apache.tuscany.sca.implementation.spring.provider,
- org.springframework.beans.factory.config,
- org.springframework.beans.factory"
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/NOTICE b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/NOTICE
deleted file mode 100644
index 1325efd8bf..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2008 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/pom.xml b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/pom.xml
deleted file mode 100644
index b08e1c8930..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/pom.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-implementation-spring-runtime</artifactId>
- <name>Apache Tuscany SCA Spring Implementation Runtime Model</name>
-
- <dependencies>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-implementation-spring</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-core</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-implementation-java-runtime</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-core-spi</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>compile</scope>
- </dependency>
-
- <!-- Spring dependencies... -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>3.0.2.RELEASE</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>3.0.2.RELEASE</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>3.0.2.RELEASE</version>
- </dependency>
-
- </dependencies>
-</project>
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SCAGenericApplicationContext.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SCAGenericApplicationContext.java
deleted file mode 100644
index 44a3ee2b88..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SCAGenericApplicationContext.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.implementation.spring.context;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.sca.implementation.spring.SpringBeanElement;
-import org.apache.tuscany.sca.implementation.spring.SpringConstructorArgElement;
-import org.apache.tuscany.sca.implementation.spring.SpringPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAReferenceElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAServiceElement;
-import org.springframework.beans.MutablePropertyValues;
-import org.springframework.beans.PropertyValue;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.config.BeanReference;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.beans.factory.config.ConstructorArgumentValues;
-import org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder;
-import org.springframework.beans.factory.config.TypedStringValue;
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.GenericApplicationContext;
-
-public class SCAGenericApplicationContext extends GenericApplicationContext {
-
- private ClassLoader classloader = null;
- private List<SpringSCAPropertyElement> propertyElements = new ArrayList<SpringSCAPropertyElement>();
- private List<SpringSCAServiceElement> serviceElements = new ArrayList<SpringSCAServiceElement>();
- private List<SpringSCAReferenceElement> referenceElements = new ArrayList<SpringSCAReferenceElement>();
- private List<SpringBeanElement> beanElements;
-
- public SCAGenericApplicationContext(DefaultListableBeanFactory beanFactory,
- ApplicationContext parent,
- ClassLoader classloader) {
- super(beanFactory, parent);
- this.classloader = classloader;
- }
-
- public SCAGenericApplicationContext(ApplicationContext parent, ClassLoader classloader) {
- super(parent);
- this.classloader = classloader;
- }
-
- @Override
- protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {
- beanFactory.setBeanClassLoader(classloader);
- }
-
- public void addSCAPropertyElement(SpringSCAPropertyElement propertyElement) {
- propertyElements.add(propertyElement);
- }
-
- public void addSCAServiceElement(SpringSCAServiceElement serviceElement) {
- serviceElements.add(serviceElement);
- }
-
- public void addSCAReferenceElement(SpringSCAReferenceElement referenceElement) {
- referenceElements.add(referenceElement);
- }
-
- public synchronized List<SpringBeanElement> getBeanElements() {
- if (beanElements == null) {
- beanElements = new ArrayList<SpringBeanElement>();
- for (String name : getBeanDefinitionNames()) {
- BeanDefinition def = getBeanDefinition(name);
- SpringBeanElement beanElement = new SpringBeanElement(name, def.getBeanClassName());
- beanElements.add(beanElement);
- beanElement.setAbstractBean(def.isAbstract());
- beanElement.setFactoryBeanAttribute(def.getFactoryBeanName() != null);
- beanElement.setFactoryMethodAttribute(def.getFactoryMethodName() != null);
- beanElement.setParentAttribute(def.getParentName() != null);
- beanElement.setInnerBean(beanElement.getId() == null);
-
- ConstructorArgumentValues args = def.getConstructorArgumentValues();
- for (Map.Entry<Integer, ValueHolder> e: args.getIndexedArgumentValues().entrySet()) {
- ValueHolder holder = e.getValue();
- SpringConstructorArgElement arg = new SpringConstructorArgElement(holder.getType());
- arg.setIndex(e.getKey());
- beanElement.addCustructorArgs(arg);
- }
-
- MutablePropertyValues values = def.getPropertyValues();
- for (PropertyValue p : values.getPropertyValueList()) {
- SpringPropertyElement propertyElement = new SpringPropertyElement(p.getName());
- Object value = p.getValue();
- configurePropertyElement(propertyElement, value);
- beanElement.getProperties().add(propertyElement);
- }
- }
- }
- return beanElements;
- }
-
- public void configurePropertyElement(SpringPropertyElement propertyElement, Object value) {
- if (value instanceof BeanReference) {
- BeanReference beanRef = (BeanReference)value;
- propertyElement.addRef(beanRef.getBeanName());
- } else if (value instanceof Collection) {
- Collection collection = (Collection)value;
- for (Object item : collection) {
- configurePropertyElement(propertyElement, item);
- }
- } else if (value instanceof TypedStringValue) {
- TypedStringValue stringValue = (TypedStringValue)value;
- propertyElement.addValue(stringValue.getValue());
- } else {
- if (value != null) {
- propertyElement.addValue(value.toString());
- }
- }
- }
-
- public List<SpringSCAPropertyElement> getPropertyElements() {
- return propertyElements;
- }
-
- public List<SpringSCAServiceElement> getServiceElements() {
- return serviceElements;
- }
-
- public List<SpringSCAReferenceElement> getReferenceElements() {
- return referenceElements;
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SCAParentApplicationContext.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SCAParentApplicationContext.java
deleted file mode 100644
index cd81facc3d..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SCAParentApplicationContext.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.implementation.spring.context;
-
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.tuscany.sca.implementation.spring.provider.SpringImplementationWrapper;
-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 <sca:property/>
- * and <sca:reference/> elements in the application context or they may be implicit through
- * unresolved Spring bean <property.../> 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$ $Date$
- */
-public class SCAParentApplicationContext implements ApplicationContext {
-
- // The Spring implementation for which this is the parent application context
- private SpringImplementationWrapper implementation;
-
- private static final String[] EMPTY_ARRAY = new String[0];
-
- public SCAParentApplicationContext(SpringImplementationWrapper implementation) {
- this.implementation = implementation;
- } // 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 {
- Object bean = implementation.getBean(name, requiredType);
- if (bean == null && getParent() != null) {
- bean = getParent().getBean(name, requiredType);
- }
- if (bean == null) {
- throw new NoSuchBeanDefinitionException("Unable to find Bean with name " + name);
- } else {
- return bean;
- }
- } // end method getBean( String, Class )
-
- public Object getBean(String name, Object[] args) throws BeansException {
- return getBean(name, ((Class)null));
- }
-
- public <T> T getBean(Class<T> clazz) throws BeansException {
- return clazz.cast(getBean(clazz.getName(), clazz));
- }
-
- public Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> clazz) throws BeansException {
- return null;
- }
-
- public <A extends Annotation> A findAnnotationOnBean(String arg0, Class<A> clazz) {
- return null;
- }
-
- public boolean containsBean(String name) {
- // TODO
- 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 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();
- }
-
- @Override
- public ApplicationContext getParent() {
- return implementation.getParentApplicationContext();
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SpringApplicationContextAccessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SpringApplicationContextAccessor.java
deleted file mode 100644
index 2d18b5aa6c..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SpringApplicationContextAccessor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.implementation.spring.context;
-
-import org.springframework.context.ApplicationContext;
-
-/**
- * A utility to receive the parent Spring application context
- */
-public interface SpringApplicationContextAccessor {
- /**
- * Get the parent Spring application context for the hosting environment. This will be used as the parent
- * application context for implementation.spring components
- * @return The parent application context
- */
- ApplicationContext getParentApplicationContext();
-
- /**
- * Set the root Spring application context. This is particually useful for Spring web integration where Spring
- * creates WebApplicationContext and keeps it in the ServletContext
- * @param parentApplicationContext The parent application context
- */
- void setParentApplicationContext(ApplicationContext parentApplicationContext);
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SpringContextWrapper.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SpringContextWrapper.java
deleted file mode 100644
index 4b0ad72972..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/context/SpringContextWrapper.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.implementation.spring.context;
-
-import java.net.URL;
-import java.util.List;
-
-import org.apache.tuscany.sca.implementation.spring.processor.ComponentNameAnnotationProcessor;
-import org.apache.tuscany.sca.implementation.spring.processor.ConstructorAnnotationProcessor;
-import org.apache.tuscany.sca.implementation.spring.processor.InitDestroyAnnotationProcessor;
-import org.apache.tuscany.sca.implementation.spring.processor.PropertyAnnotationProcessor;
-import org.apache.tuscany.sca.implementation.spring.processor.ReferenceAnnotationProcessor;
-import org.apache.tuscany.sca.implementation.spring.provider.ComponentWrapper;
-import org.apache.tuscany.sca.implementation.spring.provider.PropertyValueWrapper;
-import org.apache.tuscany.sca.implementation.spring.provider.SpringImplementationWrapper;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.io.UrlResource;
-
-/**
- * This is the runtime side tie for the corresponding tuscany side stub class.
- * It enables the Tuscany code to invoke methods on a Spring context without
- * needing to know about any Spring classes. See the SpringContextStub class
- * in the implementation-spring module for what the stub does.
- */
-public class SpringContextWrapper {
-
- private GenericApplicationContext springContext;
- private SpringImplementationWrapper implementation;
-
- public SpringContextWrapper(SpringImplementationWrapper implementation, List<URL> resource) {
- this.implementation = implementation;
- SCAParentApplicationContext scaParentContext = new SCAParentApplicationContext(implementation);
- springContext = createApplicationContext(scaParentContext, resource);
- }
-
- public ApplicationContext getApplicationContext() {
- return springContext;
- }
-
- public void start() {
- // Do refresh here to ensure that Spring Beans are not touched before the SCA config process is complete...
- springContext.refresh();
- springContext.start();
- }
-
- public void close() {
- springContext.close();
- if (springContext instanceof GenericApplicationContext) {
- springContext.stop();
- }
- }
-
- /**
- * Include BeanPostProcessor to deal with SCA Annotations in Spring Bean
- */
- private GenericApplicationContext createApplicationContext(SCAParentApplicationContext scaParentContext,
- List<URL> resources) {
-
- GenericApplicationContext appCtx =
- new SCAGenericApplicationContext(scaParentContext, implementation.getClassLoader());
- XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(appCtx);
-
- // REVIEW: [rfeng] How do we control the schema validation
- xmlReader.setValidating(false);
-
- for (URL resource : resources) {
- xmlReader.loadBeanDefinitions(new UrlResource(resource));
- }
- xmlReader.setBeanClassLoader(implementation.getClassLoader());
- includeAnnotationProcessors(appCtx.getBeanFactory());
- return appCtx;
-
- }
-
- public Object getBean(String id) throws BeansException {
- return springContext.getBean(id);
- }
-
- /**
- * Include BeanPostProcessor to deal with SCA Annotations in Spring Bean
- */
- private void includeAnnotationProcessors(ConfigurableListableBeanFactory beanFactory) {
-
- // Processor to deal with @Init and @Destroy SCA Annotations
- BeanPostProcessor initDestroyProcessor = new InitDestroyAnnotationProcessor();
- beanFactory.addBeanPostProcessor(initDestroyProcessor);
-
- // Processor to deal with @Reference SCA Annotations
- ComponentWrapper component = implementation.getComponentWrapper();
- BeanPostProcessor referenceProcessor = new ReferenceAnnotationProcessor(component);
- beanFactory.addBeanPostProcessor(referenceProcessor);
-
- // Processor to deal with @Property SCA Annotations
- PropertyValueWrapper pvs = implementation.getPropertyValueWrapper();
- BeanPostProcessor propertyProcessor = new PropertyAnnotationProcessor(pvs);
- beanFactory.addBeanPostProcessor(propertyProcessor);
-
- // Processor to deal with @ComponentName SCA Annotations
- BeanPostProcessor componentNameProcessor =
- new ComponentNameAnnotationProcessor(implementation.getComponentName());
- beanFactory.addBeanPostProcessor(componentNameProcessor);
-
- // Processor to deal with @Constructor SCA Annotations
- BeanPostProcessor constructorProcessor = new ConstructorAnnotationProcessor();
- beanFactory.addBeanPostProcessor(constructorProcessor);
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/SCANamespaceHandlerResolver.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/SCANamespaceHandlerResolver.java
deleted file mode 100644
index 75e00007f6..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/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.namespace;
-
-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$ $Date$
- */
-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/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaNamespaceHandler.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaNamespaceHandler.java
deleted file mode 100644
index 89c87ad1d1..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/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.namespace;
-
-import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
-
-/**
- * Handler for the &lt;sca:&gt; namespace in an application context
- *
- * @version $Rev$ $Date$
- */
-public class ScaNamespaceHandler extends NamespaceHandlerSupport {
-
- public ScaNamespaceHandler() {
- }
-
- @Override
- public void init() {
- registerBeanDefinitionParser("reference", new ScaReferenceBeanDefinitionParser());
- registerBeanDefinitionParser("service", new ScaServiceBeanDefinitionParser());
- registerBeanDefinitionParser("property", new ScaPropertyBeanDefinitionParser());
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaPropertyBeanDefinitionParser.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaPropertyBeanDefinitionParser.java
deleted file mode 100644
index bff0aa84e0..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaPropertyBeanDefinitionParser.java
+++ /dev/null
@@ -1,44 +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.namespace;
-
-import org.apache.tuscany.sca.implementation.spring.SpringSCAPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.context.SCAGenericApplicationContext;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.beans.factory.xml.BeanDefinitionParser;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for the &lt;sca:reference&gt; element
- * @version $Rev$ $Date$
- */
-public class ScaPropertyBeanDefinitionParser implements BeanDefinitionParser {
-
- public BeanDefinition parse(Element element, ParserContext parserContext) {
- BeanDefinitionRegistry registry = parserContext.getRegistry();
- if (registry instanceof SCAGenericApplicationContext) {
- SCAGenericApplicationContext context = (SCAGenericApplicationContext)registry;
- SpringSCAPropertyElement propertyElement =
- new SpringSCAPropertyElement(element.getAttributeNS(null, "name"), element.getAttributeNS(null, "type"));
- context.addSCAPropertyElement(propertyElement);
- }
- // do nothing, this is handled by Tuscany
- return null;
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaReferenceBeanDefinitionParser.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaReferenceBeanDefinitionParser.java
deleted file mode 100644
index 6cb4978a47..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaReferenceBeanDefinitionParser.java
+++ /dev/null
@@ -1,49 +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.namespace;
-
-import org.apache.tuscany.sca.implementation.spring.SpringSCAReferenceElement;
-import org.apache.tuscany.sca.implementation.spring.context.SCAGenericApplicationContext;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.beans.factory.xml.BeanDefinitionParser;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for the &lt;sca:reference&gt; element
- *
- * @version $Rev$ $Date$
- */
-public class ScaReferenceBeanDefinitionParser implements BeanDefinitionParser {
-
- public BeanDefinition parse(Element element, ParserContext parserContext) {
- BeanDefinitionRegistry registry = parserContext.getRegistry();
- if (registry instanceof SCAGenericApplicationContext) {
- SCAGenericApplicationContext context = (SCAGenericApplicationContext)registry;
- SpringSCAReferenceElement referenceElement =
- new SpringSCAReferenceElement(element.getAttributeNS(null, "name"),
- element.getAttributeNS(null, "type"));
- referenceElement.setDefaultBean(element.getAttributeNS(null, "default"));
- context.addSCAReferenceElement(referenceElement);
- }
-
- // do nothing, this is handled by Tuscany
- return null;
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaServiceBeanDefinitionParser.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaServiceBeanDefinitionParser.java
deleted file mode 100644
index e5eabd2a4b..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaServiceBeanDefinitionParser.java
+++ /dev/null
@@ -1,48 +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.namespace;
-
-import org.apache.tuscany.sca.implementation.spring.SpringSCAServiceElement;
-import org.apache.tuscany.sca.implementation.spring.context.SCAGenericApplicationContext;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.beans.factory.xml.BeanDefinitionParser;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for the &lt;sca:service/&gt; element
- *
- * @version $Rev$ $Date$
- */
-public class ScaServiceBeanDefinitionParser implements BeanDefinitionParser {
-
- public BeanDefinition parse(Element element, ParserContext parserContext) {
- BeanDefinitionRegistry registry = parserContext.getRegistry();
- if (registry instanceof SCAGenericApplicationContext) {
- SCAGenericApplicationContext context = (SCAGenericApplicationContext)registry;
- SpringSCAServiceElement serviceElement =
- new SpringSCAServiceElement(element.getAttributeNS(null, "name"),
- element.getAttributeNS(null, "target"));
- serviceElement.setType(element.getAttributeNS(null, "type"));
- context.addSCAServiceElement(serviceElement);
- }
- // do nothing, handled by Tuscany
- return null;
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ComponentNameAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ComponentNameAnnotationProcessor.java
deleted file mode 100644
index 68d49bbc24..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ComponentNameAnnotationProcessor.java
+++ /dev/null
@@ -1,151 +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.processor;
-
-import java.beans.PropertyDescriptor;
-import java.lang.annotation.Annotation;
-import java.lang.ref.Reference;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-import org.oasisopen.sca.annotation.ComponentName;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.FatalBeanException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.util.Assert;
-import org.springframework.util.ReflectionUtils;
-
-public class ComponentNameAnnotationProcessor implements BeanPostProcessor {
-
- private Class<? extends Annotation> componentNameAnnotationType = ComponentName.class;
-
- private String componentName;
-
- public ComponentNameAnnotationProcessor(String componentName) {
- this.componentName = componentName;
- }
-
- /**
- * Gets componentName annotation type.
- */
- protected Class<? extends Annotation> getComponentNameAnnotationType() {
- return this.componentNameAnnotationType;
- }
-
- /**
- * Sets componentName annotation type.
- */
- public void setComponentNameAnnotationType(Class<? extends Annotation> componentNameAnnotationType) {
- Assert.notNull(componentNameAnnotationType, "'componentNameAnnotationType' type must not be null.");
- this.componentNameAnnotationType = componentNameAnnotationType;
- }
-
- /**
- * This method is used to execute before a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- processAnnotation(bean);
- return bean;
- }
-
- /**
- * This method is used to execute after a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- /**
- * <p>Processes a beans fields for injection if it has a {@link Reference} annotation.</p>
- */
- protected void processAnnotation(final Object bean) {
-
- final Class<?> clazz = bean.getClass();
-
- ReflectionUtils.doWithFields(clazz, new ReflectionUtils.FieldCallback() {
- public void doWith(Field field) {
- Annotation annotation = field.getAnnotation(getComponentNameAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(field.getModifiers())) {
- throw new IllegalStateException("ComponentName annotation is not supported on static fields");
- }
-
- if (Modifier.isPrivate(field.getModifiers())) {
- throw new IllegalStateException("ComponentName annotation is not supported on private fields");
- }
-
- ReflectionUtils.makeAccessible(field);
-
- if (field.getType().getName().equals("java.lang.String")) {
- Object nameObj = componentName;
- if (nameObj != null)
- ReflectionUtils.setField(field, bean, nameObj);
- } else {
- throw new IllegalStateException(
- "ComponentName annotation is supported only on java.lang.String field type.");
- }
- }
- }
- });
-
- ReflectionUtils.doWithMethods(clazz, new ReflectionUtils.MethodCallback() {
- public void doWith(Method method) {
- Annotation annotation = method.getAnnotation(getComponentNameAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(method.getModifiers())) {
- throw new IllegalStateException("ComponentName annotation is not supported on static methods");
- }
-
- if (Modifier.isPrivate(method.getModifiers())) {
- throw new IllegalStateException("ComponentName annotation is not supported on private methods");
- }
-
- if (method.getParameterTypes().length == 0) {
- throw new IllegalStateException(
- "ComponentName annotation requires at least one argument: " + method);
- }
-
- PropertyDescriptor pd = BeanUtils.findPropertyForMethod(method);
-
- if (pd.getPropertyType().getName().equals("java.lang.String")) {
- Object nameObj = componentName;
- if (nameObj != null) {
- try {
- pd.getWriteMethod().invoke(bean, new Object[] {nameObj});
- } catch (Throwable e) {
- throw new FatalBeanException("Problem injecting reference: " + e.getMessage(), e);
- }
- }
- } else {
- throw new IllegalStateException(
- "ComponentName annotation is supported only on java.lang.String field type.");
- }
- }
- }
- });
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ConstructorAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ConstructorAnnotationProcessor.java
deleted file mode 100644
index a52a85ff3a..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ConstructorAnnotationProcessor.java
+++ /dev/null
@@ -1,112 +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.processor;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter;
-import org.springframework.util.Assert;
-
-public class ConstructorAnnotationProcessor extends InstantiationAwareBeanPostProcessorAdapter {
-
- private Class<? extends Annotation> constructorAnnotationType = org.oasisopen.sca.annotation.Constructor.class;
-
- private Class<? extends Annotation> autowiredAnnotationType = Autowired.class;
-
- public ConstructorAnnotationProcessor() {
- // Default constructor.
- }
-
- /**
- * Set the 'autowired' annotation type, to be used on constructors, fields,
- * setter methods and arbitrary config methods.
- */
- public void setAutowiredAnnotationType(Class<? extends Annotation> autowiredAnnotationType) {
- Assert.notNull(autowiredAnnotationType, "'autowiredAnnotationType' must not be null");
- this.autowiredAnnotationType = autowiredAnnotationType;
- }
-
- /**
- * Return the 'autowired' annotation type.
- */
- protected Class<? extends Annotation> getAutowiredAnnotationType() {
- return this.autowiredAnnotationType;
- }
-
- /**
- * Return the 'constructor' annotation type.
- */
- protected Class<? extends Annotation> getConstructorAnnotationType() {
- return this.constructorAnnotationType;
- }
-
- /**
- * Sets the 'constructor' annotation type.
- */
- public void setConstructorAnnotationType(Class<? extends Annotation> constructorAnnotationType) {
- Assert.notNull(constructorAnnotationType, "'constructorAnnotationType' type must not be null.");
- this.constructorAnnotationType = constructorAnnotationType;
- }
-
- /**
- * This method is used to execute before a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- /**
- * This method is used to execute after a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- public Constructor[] determineCandidateConstructors(Class beanClass, String beanName) throws BeansException {
- /*Constructor[] declaredConstructors = beanClass.getDeclaredConstructors();
- Method[] declaredMethods = beanClass.getDeclaredMethods();
- List candidates = new ArrayList(declaredConstructors.length);
-
- for (int i = 0; i < declaredMethods.length; i++) {
- Method method = declaredMethods[i];
- Annotation annotation = method.getAnnotation(getConstructorAnnotationType());
- if (annotation != null) {
- if (Modifier.isStatic(method.getModifiers())) {
- throw new IllegalStateException("Constructor annotation is not supported on static methods");
- }
-
- if (candidates.size() == 1) {
- throw new IllegalStateException("Only one method is allowed to have constructor annotation in a bean: " + method);
- }
-
- candidates.add(method);
- }
- }
-
- return (Constructor[]) candidates.toArray(new Constructor[candidates.size()]);*/
- return null;
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/InitDestroyAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/InitDestroyAnnotationProcessor.java
deleted file mode 100644
index 477582b1d3..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/InitDestroyAnnotationProcessor.java
+++ /dev/null
@@ -1,75 +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.processor;
-
-import java.lang.annotation.Annotation;
-
-import org.oasisopen.sca.annotation.Destroy;
-import org.oasisopen.sca.annotation.Init;
-import org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor;
-
-public class InitDestroyAnnotationProcessor extends InitDestroyAnnotationBeanPostProcessor {
-
- private static final long serialVersionUID = 0;
-
- private Class<? extends Annotation> initAnnotationType = Init.class;
- private Class<? extends Annotation> destroyAnnotationType = Destroy.class;
-
- /**
- * Gets init annotation type.
- */
- protected Class<? extends Annotation> getInitAnnotationType() {
- return this.initAnnotationType;
- }
-
- /**
- * Sets init annotation type.
- */
- /*
- * public void setInitAnnotationType(Class<? extends Annotation>
- * initAnnotationType) { Assert.notNull(initAnnotationType,
- * "Init annotation type must not be null."); this.initAnnotationType =
- * initAnnotationType; }
- */
-
- /**
- * Gets destroy annotation type.
- */
- protected Class<? extends Annotation> getDestroyAnnotationType() {
- return this.destroyAnnotationType;
- }
-
- /**
- * Sets destroy annotation type.
- */
- /*
- * public void setDestroyAnnotationType(Class<? extends Annotation>
- * destroyAnnotationType) { Assert.notNull(destroyAnnotationType,
- * "Destroy annotation type must not be null."); this.destroyAnnotationType
- * = destroyAnnotationType; }
- */
-
- public InitDestroyAnnotationProcessor() {
- // Set the @Init annotation type
- setInitAnnotationType(initAnnotationType);
-
- // Set the @Destroy annotation type
- setDestroyAnnotationType(destroyAnnotationType);
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/PropertyAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/PropertyAnnotationProcessor.java
deleted file mode 100644
index 4763714a38..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/PropertyAnnotationProcessor.java
+++ /dev/null
@@ -1,164 +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.processor;
-
-import java.beans.PropertyDescriptor;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-import org.apache.tuscany.sca.implementation.spring.provider.PropertyValueWrapper;
-import org.oasisopen.sca.annotation.Property;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.FatalBeanException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.util.Assert;
-import org.springframework.util.ReflectionUtils;
-
-public class PropertyAnnotationProcessor implements BeanPostProcessor {
-
- private Class<? extends Annotation> propertyAnnotationType = Property.class;
-
- private PropertyValueWrapper propertyValue;
-
- public PropertyAnnotationProcessor(PropertyValueWrapper propertyValue) {
- this.propertyValue = propertyValue;
- }
-
- /**
- * Gets property annotation type.
- */
- protected Class<? extends Annotation> getPropertyAnnotationType() {
- return this.propertyAnnotationType;
- }
-
- /**
- * Sets property annotation type.
- */
- public void setPropertyAnnotationType(Class<? extends Annotation> propertyAnnotationType) {
- Assert.notNull(propertyAnnotationType, "'propertyAnnotationType' type must not be null.");
- this.propertyAnnotationType = propertyAnnotationType;
- }
-
- /**
- * This method is used to execute before a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- processAnnotation(bean);
- return bean;
- }
-
- /**
- * This method is used to execute after a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- /**
- * <p>Processes a beans fields for injection if it has a {@link Property} annotation.</p>
- */
- protected void processAnnotation(final Object bean) {
-
- final Class<?> clazz = bean.getClass();
-
- ReflectionUtils.doWithMethods(clazz, new ReflectionUtils.MethodCallback() {
- public void doWith(Method method) {
-
- Property annotation = (Property)method.getAnnotation(getPropertyAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(method.getModifiers())) {
- throw new IllegalStateException("Property annotation is not supported on static methods");
- }
-
- /*
- if (Modifier.isPrivate(method.getModifiers())) {
- throw new IllegalStateException("Property annotation is not supported on private methods");
- }
- */
-
- if (method.getParameterTypes().length == 0) {
- throw new IllegalStateException("Property annotation requires at least one argument: " + method);
- }
-
- PropertyDescriptor pd = BeanUtils.findPropertyForMethod(method);
- if (pd != null) {
- String propName = annotation.name();
- if ("".equals(propName)) {
- injectProperty(bean, pd, propertyValue.getPropertyObj(pd.getPropertyType(), pd.getName()));
- } else {
- injectProperty(bean, pd, propertyValue.getPropertyObj(pd.getPropertyType(), propName));
- }
- }
- }
- }
- });
-
- ReflectionUtils.doWithFields(clazz, new ReflectionUtils.FieldCallback() {
- public void doWith(Field field) {
-
- Property annotation = (Property)field.getAnnotation(getPropertyAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(field.getModifiers())) {
- throw new IllegalStateException("Property annotation is not supported on static fields");
- }
-
- /*
- if (Modifier.isPrivate(field.getModifiers())) {
- throw new IllegalStateException("Property annotation is not supported on private fields");
- }
- */
-
- ReflectionUtils.makeAccessible(field);
-
- Object propertyObj = null;
- String propName = annotation.name();
- if ("".equals(propName)) {
- propertyObj = propertyValue.getPropertyObj(field.getType(), field.getName());
- } else {
- propertyObj = propertyValue.getPropertyObj(field.getType(), propName);
- }
-
- if (propertyObj != null)
- ReflectionUtils.setField(field, bean, propertyObj);
- }
- }
- });
- }
-
- public void injectProperty(Object bean, PropertyDescriptor pd, Object propertyObj) {
-
- if (propertyObj != null) {
- try {
- pd.getWriteMethod().invoke(bean, new Object[] {propertyObj});
- } catch (Throwable e) {
- throw new FatalBeanException("Problem injecting property: " + e.getMessage(), e);
- }
- }
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ReferenceAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ReferenceAnnotationProcessor.java
deleted file mode 100644
index ad79db840e..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ReferenceAnnotationProcessor.java
+++ /dev/null
@@ -1,168 +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.processor;
-
-import java.beans.PropertyDescriptor;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-import org.apache.tuscany.sca.implementation.spring.provider.ComponentWrapper;
-import org.oasisopen.sca.annotation.Reference;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.FatalBeanException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.util.Assert;
-import org.springframework.util.ReflectionUtils;
-
-public class ReferenceAnnotationProcessor implements BeanPostProcessor {
-
- private Class<? extends Annotation> referenceAnnotationType = Reference.class;
- private ComponentWrapper component;
-
- public ReferenceAnnotationProcessor(ComponentWrapper component) {
- this.component = component;
- }
-
- /**
- * Gets referece annotation type.
- */
- protected Class<? extends Annotation> getReferenceAnnotationType() {
- return this.referenceAnnotationType;
- }
-
- /**
- * Sets referece annotation type.
- */
- public void setReferenceAnnotationType(Class<? extends Annotation> referenceAnnotationType) {
- Assert.notNull(referenceAnnotationType, "'referenceAnnotationType' type must not be null.");
- this.referenceAnnotationType = referenceAnnotationType;
- }
-
- /**
- * This method is used to execute before a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- processAnnotation(bean);
- return bean;
- }
-
- /**
- * This method is used to execute after a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- /**
- * <p>Processes a beans fields for injection if it has a {@link Reference} annotation.</p>
- */
- protected void processAnnotation(final Object bean) {
-
- final Class<?> clazz = bean.getClass();
-
- ReflectionUtils.doWithMethods(clazz, new ReflectionUtils.MethodCallback() {
- public void doWith(Method method) {
-
- Reference annotation = (Reference)method.getAnnotation(getReferenceAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(method.getModifiers())) {
- throw new IllegalStateException("Reference annotation is not supported on static methods");
- }
-
- /*
- if (Modifier.isPrivate(method.getModifiers())) {
- throw new IllegalStateException("Reference annotation is not supported on private methods");
- }
- */
-
- if (method.getParameterTypes().length == 0) {
- throw new IllegalStateException(
- "Reference annotation requires at least one argument: " + method);
- }
-
- PropertyDescriptor pd = BeanUtils.findPropertyForMethod(method);
- if (pd != null) {
- String refName = annotation.name();
- if ("".equals(refName)) {
- injectReference(bean, pd, pd.getName());
- } else {
- injectReference(bean, pd, refName);
- }
- }
- }
- }
- });
-
- ReflectionUtils.doWithFields(clazz, new ReflectionUtils.FieldCallback() {
- public void doWith(Field field) {
-
- Reference annotation = (Reference)field.getAnnotation(getReferenceAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(field.getModifiers())) {
- throw new IllegalStateException("Reference annotation is not supported on static fields");
- }
-
- /*
- if (Modifier.isPrivate(field.getModifiers())) {
- throw new IllegalStateException("Reference annotation is not supported on private fields");
- }
- */
-
- ReflectionUtils.makeAccessible(field);
-
- Object referenceObj = null;
- String refName = annotation.name();
- if ("".equals(refName)) {
- referenceObj = component.getService(field.getType(), field.getName());
- } else {
- referenceObj = component.getService(field.getType(), refName);
- }
-
- if (referenceObj != null)
- ReflectionUtils.setField(field, bean, referenceObj);
- }
- }
- });
- }
-
- /**
- * Processes a property descriptor to inject a service.
- */
- public void injectReference(Object bean, PropertyDescriptor pd, String name) {
-
- Object referenceObj = component.getService(pd.getPropertyType(), name);
-
- if (referenceObj != null) {
- try {
- pd.getWriteMethod().invoke(bean, new Object[] {referenceObj});
- } catch (Throwable e) {
- throw new FatalBeanException("Problem injecting reference: " + e.getMessage(), e);
- }
- }
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/SpringXMLBeanDefinitionLoaderImpl.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/SpringXMLBeanDefinitionLoaderImpl.java
deleted file mode 100644
index 71feddb9f5..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/SpringXMLBeanDefinitionLoaderImpl.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.processor;
-
-import java.net.URL;
-import java.util.List;
-
-import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
-import org.apache.tuscany.sca.implementation.spring.SpringBeanElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAReferenceElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAServiceElement;
-import org.apache.tuscany.sca.implementation.spring.context.SCAGenericApplicationContext;
-import org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.ApplicationContext;
-import org.springframework.core.io.UrlResource;
-
-/**
- * A tie that allows Tuscany to call Spring library to load the application context for the purpose of introspection
- */
-public class SpringXMLBeanDefinitionLoaderImpl implements SpringXMLBeanDefinitionLoader {
-
- private static SCAGenericApplicationContext createApplicationContext(Object scaParentContext,
- ClassLoader classLoader,
- List<URL> resources) {
- if (classLoader == null) {
- classLoader = Thread.currentThread().getContextClassLoader();
- }
-
- SCAGenericApplicationContext appCtx =
- new SCAGenericApplicationContext((ApplicationContext)scaParentContext, classLoader);
- XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(appCtx);
-
- // REVIEW: [rfeng] How do we control the schema validation
- xmlReader.setValidating(false);
-
- for (URL resource : resources) {
- xmlReader.loadBeanDefinitions(new UrlResource(resource));
- }
-
- return appCtx;
-
- }
-
- @Override
- public Object load(List<URL> resources,
- List<SpringSCAServiceElement> serviceElements,
- List<SpringSCAReferenceElement> referenceElements,
- List<SpringSCAPropertyElement> propertyElements,
- List<SpringBeanElement> beanElements,
- ProcessorContext context) {
- SCAGenericApplicationContext applicationContext = createApplicationContext(null, null, resources);
- serviceElements.addAll(applicationContext.getServiceElements());
- referenceElements.addAll(applicationContext.getReferenceElements());
- propertyElements.addAll(applicationContext.getPropertyElements());
- beanElements.addAll(applicationContext.getBeanElements());
- return applicationContext;
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/ComponentWrapper.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/ComponentWrapper.java
deleted file mode 100644
index 5bddd8a006..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/ComponentWrapper.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.provider;
-
-/**
- * Wrapper for the Component
- */
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-public class ComponentWrapper {
-
- private RuntimeComponent component;
-
- public ComponentWrapper(RuntimeComponent component) {
- this.component = component;
- }
-
- public Object getService(Class<?> type, String name) {
- return component.getComponentContext().getService(type, name);
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/PropertyValueWrapper.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/PropertyValueWrapper.java
deleted file mode 100644
index eca1492081..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/PropertyValueWrapper.java
+++ /dev/null
@@ -1,50 +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.provider;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.ComponentProperty;
-import org.apache.tuscany.sca.context.PropertyValueFactory;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-/**
- * Wrapper for PropertyValue
- */
-public class PropertyValueWrapper {
-
- private RuntimeComponent component;
- private PropertyValueFactory propertyFactory;
-
- public PropertyValueWrapper(RuntimeComponent component, PropertyValueFactory propertyFactory) {
- this.component = component;
- this.propertyFactory = propertyFactory;
- }
-
- public Object getPropertyObj(Class<?> type, String name) {
- List<ComponentProperty> props = component.getProperties();
- for (ComponentProperty prop : props) {
- if (prop.getName().equals(name)) {
- return propertyFactory.createPropertyValue(prop, type);
- }
- }
- return null; // property name not found
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java
deleted file mode 100644
index db7831322a..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java
+++ /dev/null
@@ -1,81 +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.provider;
-
-import org.apache.tuscany.sca.context.PropertyValueFactory;
-import org.apache.tuscany.sca.core.invocation.ProxyFactory;
-import org.apache.tuscany.sca.implementation.spring.context.SpringContextWrapper;
-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.ApplicationContext;
-
-/**
- * A provider class for runtime Spring implementation instances
- * @version $Rev$ $Date$
- */
-public class SpringImplementationProvider implements ImplementationProvider {
- private RuntimeComponent component;
-
- // A Spring application context object
- private SpringContextWrapper 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,
- SpringImplementationWrapper implementation,
- ApplicationContext parentApplicationContext,
- ProxyFactory proxyService,
- PropertyValueFactory propertyValueObjectFactory) {
- super();
- this.component = component;
-
- springContext = new SpringContextWrapper(implementation, 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() {
- springContext.start();
- }
-
- /**
- * Stop this implementation instance
- */
- public void stop() {
- springContext.close();
- }
-
-} // end class SpringImplementationProvider
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java
deleted file mode 100644
index be16fb3251..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/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.provider;
-
-import org.apache.tuscany.sca.context.PropertyValueFactory;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory;
-import org.apache.tuscany.sca.core.invocation.ProxyFactory;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-import org.apache.tuscany.sca.implementation.spring.context.SpringApplicationContextAccessor;
-import org.apache.tuscany.sca.provider.ImplementationProvider;
-import org.apache.tuscany.sca.provider.ImplementationProviderFactory;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.springframework.context.ApplicationContext;
-
-/**
- * ImplementationProviderFactory for Spring implementation type
- * @version $Rev$ $Date$
- *
- */
-public class SpringImplementationProviderFactory implements ImplementationProviderFactory<SpringImplementation> {
- private ProxyFactory proxyFactory;
- private PropertyValueFactory propertyFactory;
- private SpringApplicationContextAccessor contextAccessor;
-
- /**
- * Simple constructor
- *
- */
- public SpringImplementationProviderFactory(ExtensionPointRegistry registry) {
- super();
- UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
- contextAccessor = utilities.getUtility(SpringApplicationContextAccessor.class);
- proxyFactory = ExtensibleProxyFactory.getInstance(registry);
- propertyFactory = utilities.getUtility(PropertyValueFactory.class);
- }
-
- /**
- * 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) {
- ApplicationContext parentApplicationContext =
- (contextAccessor != null) ? contextAccessor.getParentApplicationContext() : null;
- SpringImplementationWrapper tie =
- new SpringImplementationWrapper(implementation, parentApplicationContext, component, propertyFactory);
- return new SpringImplementationProvider(component, tie, parentApplicationContext, proxyFactory, propertyFactory);
- }
-
- /**
- * Returns the class of the Spring implementation
- */
- public Class<SpringImplementation> getModelType() {
- return SpringImplementation.class;
- }
-
-} // end class SpringImplementationProviderFactory
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationWrapper.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationWrapper.java
deleted file mode 100644
index e5593f5eaa..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationWrapper.java
+++ /dev/null
@@ -1,158 +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.provider;
-
-import java.net.URL;
-import java.util.List;
-
-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.context.PropertyValueFactory;
-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.context.ApplicationContext;
-
-/**
- * Wrapper for SpringImplementation
- */
-public class SpringImplementationWrapper {
-
- private SpringImplementation implementation;
- private ApplicationContext parentApplicationContext;
- private RuntimeComponent component;
- private PropertyValueFactory propertyFactory;
-
- public SpringImplementationWrapper(SpringImplementation implementation,
- ApplicationContext parentApplicationContext,
- RuntimeComponent component,
- PropertyValueFactory propertyFactory) {
- this.implementation = implementation;
- this.component = component;
- this.propertyFactory = propertyFactory;
- this.parentApplicationContext = parentApplicationContext;
- }
-
- public String getURI() {
- return implementation.getURI();
- }
-
- public List<URL> getResource() {
- return implementation.getResource();
- }
-
- public String getComponentName() {
- return component.getName();
- }
-
- /**
- * Method to create a Java Bean for a Property value
- * @param <B> 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> B getPropertyBean(Class<?> requiredType, String name) {
- B propertyObject = null;
- // Get the component's list of properties
- List<ComponentProperty> 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
- propertyObject = (B)propertyFactory.createPropertyValue(prop, requiredType);
- } // end if
- } // end for
-
- return propertyObject;
- }
-
- /**
- * Creates a proxy Bean for a reference
- * @param <B> 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 <B>
- */
- private <B> B getService(Class<B> businessInterface, String referenceName) {
- return component.getComponentContext().getService(businessInterface, referenceName);
- }
-
- /**
- * 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) {
- // 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
- // TODO: NoSuchBeanException
- // throw new RuntimeException("Unable to find Bean with name " + name);
- return null;
-
- } // end method getBean( String, Class )
-
- public ComponentWrapper getComponentWrapper() {
- return new ComponentWrapper(component);
- }
-
- public PropertyValueWrapper getPropertyValueWrapper() {
- return new PropertyValueWrapper(component, propertyFactory);
- }
-
- public ClassLoader getClassLoader() {
- return implementation.getClassLoader();
- }
-
- public ApplicationContext getParentApplicationContext() {
- return parentApplicationContext;
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvocationException.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvocationException.java
deleted file mode 100644
index 0e1d3f5b5a..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/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.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/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvoker.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvoker.java
deleted file mode 100644
index ea1d6e6755..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringInvoker.java
+++ /dev/null
@@ -1,126 +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.provider;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.sca.implementation.spring.SpringBeanElement;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-import org.apache.tuscany.sca.implementation.spring.context.SpringContextWrapper;
-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;
-
-/**
- * Initial implementation of a Spring bean invoker
- * @version $Rev$ $Date$
- */
-public class SpringInvoker implements Invoker {
-
- private Method theMethod = null;
- private Object bean;
- private SpringBeanElement beanElement;
- private boolean badInvoker = false;
-
- private SpringContextWrapper 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,
- SpringContextWrapper 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 (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.getCause());
- } 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/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader
deleted file mode 100644
index 4c8fa09951..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader
+++ /dev/null
@@ -1,17 +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.
-org.apache.tuscany.sca.implementation.spring.processor.SpringXMLBeanDefinitionLoaderImpl;ranking=100 \ No newline at end of file
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory
deleted file mode 100644
index e6c8d70fe1..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory
+++ /dev/null
@@ -1,20 +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.provider.SpringImplementationProviderFactory;model=org.apache.tuscany.sca.implementation.spring.SpringImplementation;ranking=100
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.handlers b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.handlers
deleted file mode 100644
index 6d29e21024..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.handlers
+++ /dev/null
@@ -1 +0,0 @@
-http\://www.springframework.org/schema/sca=org.apache.tuscany.sca.implementation.spring.namespace.ScaNamespaceHandler
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.schemas b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.schemas
deleted file mode 100644
index 249cc21c13..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.schemas
+++ /dev/null
@@ -1 +0,0 @@
-http\://www.osoa.org/xmlns/sca/1.0/spring-sca.xsd=org/springframework/sca/xml/spring-sca.xsd
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/org/springframework/sca/xml/spring-sca.xsd b/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/org/springframework/sca/xml/spring-sca.xsd
deleted file mode 100644
index dfa0b931f6..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-runtime/src/main/resources/org/springframework/sca/xml/spring-sca.xsd
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<xsd:schema xmlns="http://www.springframework.org/schema/sca" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- attributeFormDefault="unqualified" elementFormDefault="qualified"
- targetNamespace="http://www.springframework.org/schema/sca">
-
- <xsd:element name="reference">
- <xsd:complexType>
- <xsd:attribute name="name" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="type" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="default" use="optional">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="property">
- <xsd:complexType>
- <xsd:attribute name="id" use="optional">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="name" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="type" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="service">
- <xsd:complexType>
- <xsd:attribute name="name" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="type" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="target" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
-
-</xsd:schema>
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/LICENSE b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/LICENSE
deleted file mode 100644
index 6e529a25c4..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
-
-
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/META-INF/MANIFEST.MF b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/META-INF/MANIFEST.MF
deleted file mode 100644
index a41644caa8..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-SCA-Version: 1.1
-Bundle-Name: Apache Tuscany SCA Spring Implementation Model
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0.0
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Spring Implementation Model
-Import-Package: org.apache.tuscany.sca.assembly;version="2.0.0",
- org.apache.tuscany.sca.assembly.impl;version="2.0.0",
- org.apache.tuscany.sca.context;version="2.0.0",
- org.apache.tuscany.sca.contribution.processor;version="2.0.0",
- org.apache.tuscany.sca.core;version="2.0.0",
- org.apache.tuscany.sca.core.invocation;version="2.0.0",
- org.apache.tuscany.sca.implementation.spring;version="2.0.0",
- org.apache.tuscany.sca.interfacedef;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.java;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.java.impl;version="2.0.0",
- org.apache.tuscany.sca.invocation;version="2.0.0",
- org.apache.tuscany.sca.provider;version="2.0.0",
- org.apache.tuscany.sca.runtime;version="2.0.0",
- org.oasisopen.sca;version="2.0.0"
-Bundle-SymbolicName: org.apache.tuscany.sca.implementation.spring.stub
-Bundle-DocURL: http://www.apache.org/
-Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/NOTICE b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/NOTICE
deleted file mode 100644
index 1325efd8bf..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2008 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/README b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/README
deleted file mode 100644
index e1b1f98fe0..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/README
+++ /dev/null
@@ -1,9 +0,0 @@
-Note that the implementation spring modules have a different structure from other extensions.
-
-The aim is to have the Tuscany runtime embedded in a container with the Tuscany classes hidden
-from user applications and the Spring jar's packaged with the application. That means that the
-Tuscany code has no visibilty of the Spring classes and visa-versa. To implement that the
-implementation-spring module has no dependencies on Spring and the implementation-spring-runtime
-module has no dependencies on Tuscany (other than the sca-api), and reflection is used to call
-methods between the modules.
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/pom.xml b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/pom.xml
deleted file mode 100644
index f459f1755c..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-implementation-spring-stub</artifactId>
- <name>Apache Tuscany SCA Spring Implementation Runtime Stub</name>
-
- <dependencies>
-
- <!-- **************************************** -->
- <!-- * * -->
- <!-- * DONT ADD ANY SPRING DEPENDENCIES!!! * -->
- <!-- * * -->
- <!-- * See the README for details why not * -->
- <!-- * * -->
- <!-- * * -->
- <!-- **************************************** -->
-
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-implementation-spring</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- </dependencies>
-</project>
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/stub/SpringXMLBeanDefinitionLoaderStub.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/stub/SpringXMLBeanDefinitionLoaderStub.java
deleted file mode 100644
index f34dfb8ceb..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/stub/SpringXMLBeanDefinitionLoaderStub.java
+++ /dev/null
@@ -1,92 +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.processor.stub;
-
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
-import org.apache.tuscany.sca.implementation.spring.SpringBeanElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAReferenceElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAServiceElement;
-import org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader;
-import org.oasisopen.sca.ServiceRuntimeException;
-
-/**
- * This is the Tuscany side stub for the corresponding runtime tie class.
- * It enables the Tuscany code to invoke methods on a Spring context without
- * needing to know about any Spring classes. See the SpringContextTie class
- * in the implementation-spring-runtime module for what the tie does.
- */
-public class SpringXMLBeanDefinitionLoaderStub implements SpringXMLBeanDefinitionLoader {
- private final static String TIE = "org.apache.tuscany.sca.implementation.spring.processor.tie.SpringXMLLoaderTie";
-
- private static Method createApplicationContext;
-
- public SpringXMLBeanDefinitionLoaderStub() throws Exception {
- synchronized (SpringXMLBeanDefinitionLoaderStub.class) {
- if (createApplicationContext == null) {
- Class<?> tieClass = Class.forName(TIE, false, Thread.currentThread().getContextClassLoader());
- createApplicationContext =
- tieClass.getMethod("createApplicationContext", Object.class, ClassLoader.class, List.class);
- }
- }
- }
-
- public Object createApplicationContext(Object scaParentContext, ClassLoader classLoader, List<URL> resources)
- throws Exception {
- return createApplicationContext.invoke(null, scaParentContext, classLoader, resources);
- }
-
- public Object load(List<URL> resources,
- List<SpringSCAServiceElement> serviceElements,
- List<SpringSCAReferenceElement> referenceElements,
- List<SpringSCAPropertyElement> propertyElements,
- List<SpringBeanElement> beanElements,
- ProcessorContext context) {
- try {
- Object appContext =
- createApplicationContext(null, Thread.currentThread().getContextClassLoader(), resources);
- Class<?> cls = appContext.getClass();
- Method method = cls.getMethod("getElements", Class.class);
- SpringSCAServiceElement[] serviceArray =
- (SpringSCAServiceElement[])method.invoke(appContext, SpringSCAServiceElement.class);
- serviceElements.addAll(Arrays.asList(serviceArray));
-
- SpringSCAReferenceElement[] referenceArray =
- (SpringSCAReferenceElement[])method.invoke(appContext, SpringSCAReferenceElement.class);
- referenceElements.addAll(Arrays.asList(referenceArray));
-
- SpringSCAPropertyElement[] propertyArray =
- (SpringSCAPropertyElement[])method.invoke(appContext, SpringSCAPropertyElement.class);
- propertyElements.addAll(Arrays.asList(propertyArray));
-
- SpringBeanElement[] beanArray = (SpringBeanElement[])method.invoke(appContext, SpringBeanElement.class);
- beanElements.addAll(Arrays.asList(beanArray));
-
- return appContext;
- } catch (Throwable e) {
- throw new ServiceRuntimeException(e);
- }
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/ComponentTie.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/ComponentTie.java
deleted file mode 100644
index 882aa587e5..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/ComponentTie.java
+++ /dev/null
@@ -1,41 +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.provider.stub;
-
-/**
- * This is the Tuscany side tie for the corresponding Spring runtime side stub class.
- * It enables the Tuscany code to invoke methods on a Spring context without
- * needing to know about any Spring classes. See the ComponentStub class
- * in the implementation-spring-runtime module for what the stub does.
- */
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-public class ComponentTie {
-
- private RuntimeComponent component;
-
- public ComponentTie(RuntimeComponent component) {
- this.component = component;
- }
-
- public Object getService(Class<?> type, String name) {
- return component.getComponentContext().getService(type, name);
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/PropertyValueTie.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/PropertyValueTie.java
deleted file mode 100644
index 5e0c5263c2..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/PropertyValueTie.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.provider.stub;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.ComponentProperty;
-import org.apache.tuscany.sca.context.PropertyValueFactory;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-/**
- * This is the Tuscany side tie for the corresponding Spring runtime side stub class.
- * It enables the Tuscany code to invoke methods on a Spring context without
- * needing to know about any Spring classes. See the PropertyValueStub class
- * in the implementation-spring-runtime module for what the stub does.
- */
-public class PropertyValueTie {
-
- private RuntimeComponent component;
- private PropertyValueFactory propertyFactory;
-
- public PropertyValueTie(RuntimeComponent component, PropertyValueFactory propertyFactory) {
- this.component = component;
- this.propertyFactory = propertyFactory;
- }
-
- public Object getPropertyObj(Class<?> type, String name) {
- List<ComponentProperty> props = component.getProperties();
- for (ComponentProperty prop : props) {
- if (prop.getName().equals(name)) {
- return propertyFactory.createPropertyValue(prop, type);
- }
- }
- return null; // property name not found
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringApplicationContextAccessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringApplicationContextAccessor.java
deleted file mode 100644
index 84a65bcf17..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringApplicationContextAccessor.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.provider.stub;
-
-/**
- * A utility to receive the parent Spring application context
- */
-public interface SpringApplicationContextAccessor {
- /**
- * Get the parent Spring application context for the hosting environment. This will be used as the parent
- * application context for implementation.spring components
- * @return The parent application context
- */
- Object getParentApplicationContext();
-
- /**
- * Set the root Spring application context. This is particually useful for Spring web integration where Spring
- * creates WebApplicationContext and keeps it in the ServletContext
- * @param parentApplicationContext The parent application context
- */
- void setParentApplicationContext(Object parentApplicationContext);
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringContextStub.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringContextStub.java
deleted file mode 100644
index 062da4b2d2..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringContextStub.java
+++ /dev/null
@@ -1,142 +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.provider.stub;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.List;
-
-import org.apache.tuscany.sca.context.PropertyValueFactory;
-import org.apache.tuscany.sca.core.invocation.ProxyFactory;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-/**
- * This is the Tuscany side stub for the corresponding runtime tie class.
- * It enables the Tuscany code to invoke methods on a Spring context without
- * needing to know about any Spring classes. See the SpringContextTie class
- * in the implementation-spring-runtime module for what the tie does.
- */
-public class SpringContextStub {
-
- private static final String SPRING_IMPLEMENTATION_STUB =
- "org.apache.tuscany.sca.implementation.spring.context.tie.SpringImplementationStub";
- private static final String SPRING_CONTEXT_TIE =
- "org.apache.tuscany.sca.implementation.spring.context.tie.SpringContextTie";
- private Object tie;
- private Method startMethod;
- private Method closeMethod;
- private Method getBeanMethod;
-
- public SpringContextStub(RuntimeComponent component,
- SpringImplementation implementation,
- Object parentApplicationContext,
- ProxyFactory proxyService,
- PropertyValueFactory propertyValueObjectFactory) {
-
- initTie(component, implementation, parentApplicationContext, propertyValueObjectFactory);
-
- }
-
- private void initTie(RuntimeComponent component,
- SpringImplementation implementation,
- Object parentApplicationContext,
- PropertyValueFactory propertyValueObjectFactory) {
-
- // TODO: what class loader to use?
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
-
- try {
-
- Class<?> stubClass = Class.forName(SPRING_IMPLEMENTATION_STUB, true, cl);
- Constructor<?> stubConstructor = stubClass.getConstructor(new Class<?>[] {Object.class});
- Object stub =
- stubConstructor.newInstance(new SpringImplementationTie(implementation, parentApplicationContext,
- component, propertyValueObjectFactory));
-
- Class<?> tieClass = Class.forName(SPRING_CONTEXT_TIE, true, cl);
- Constructor<?> tieConstructor = tieClass.getConstructor(new Class<?>[] {stubClass, List.class});
- this.tie = tieConstructor.newInstance(stub, implementation.getResource());
-
- this.startMethod = tieClass.getMethod("start");
- this.closeMethod = tieClass.getMethod("close");
- this.getBeanMethod = tieClass.getMethod("getBean", String.class);
-
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
- } catch (SecurityException e) {
- throw new RuntimeException(e);
- } catch (NoSuchMethodException e) {
- throw new RuntimeException(e);
- } catch (IllegalArgumentException e) {
- throw new RuntimeException(e);
- } catch (InstantiationException e) {
- throw new RuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
-
- public void start() {
- try {
- startMethod.invoke(tie);
- } catch (IllegalArgumentException e) {
- throw new RuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
-
- public void close() {
- try {
- closeMethod.invoke(tie);
- } catch (IllegalArgumentException e) {
- throw new RuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
-
- public Object getBean(String id) throws SpringInvocationException {
- try {
-
- return getBeanMethod.invoke(tie, id);
-
- } catch (IllegalArgumentException e) {
- throw new RuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationProvider.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationProvider.java
deleted file mode 100644
index e0207b9f12..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationProvider.java
+++ /dev/null
@@ -1,80 +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.provider.stub;
-
-import org.apache.tuscany.sca.context.PropertyValueFactory;
-import org.apache.tuscany.sca.core.invocation.ProxyFactory;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-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;
-
-/**
- * A provider class for runtime Spring implementation instances
- * @version $Rev$ $Date$
- */
-public class SpringImplementationProvider implements ImplementationProvider {
- private RuntimeComponent component;
-
- // A Spring application context object
- private SpringContextStub 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,
- Object parentApplicationContext,
- ProxyFactory proxyService,
- PropertyValueFactory propertyValueObjectFactory) {
- super();
- this.component = component;
-
- springContext = new SpringContextStub(component, implementation, parentApplicationContext, proxyService, propertyValueObjectFactory);
-
- } // 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() {
- springContext.start();
- }
-
- /**
- * Stop this implementation instance
- */
- public void stop() {
- springContext.close();
- }
-
-} // end class SpringImplementationProvider
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationProviderFactory.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationProviderFactory.java
deleted file mode 100644
index d402ff2eb6..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationProviderFactory.java
+++ /dev/null
@@ -1,75 +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.provider.stub;
-
-import org.apache.tuscany.sca.context.PropertyValueFactory;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory;
-import org.apache.tuscany.sca.core.invocation.ProxyFactory;
-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$ $Date$
- *
- */
-public class SpringImplementationProviderFactory implements ImplementationProviderFactory<SpringImplementation> {
- private ProxyFactory proxyFactory;
- private PropertyValueFactory propertyFactory;
- private SpringApplicationContextAccessor contextAccessor;
-
- /**
- * Simple constructor
- *
- */
- public SpringImplementationProviderFactory(ExtensionPointRegistry registry) {
- super();
- UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
- contextAccessor = utilities.getUtility(SpringApplicationContextAccessor.class);
- proxyFactory = ExtensibleProxyFactory.getInstance(registry);
- propertyFactory = utilities.getUtility(PropertyValueFactory.class);
- }
-
- /**
- * 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) {
- Object parentApplicationContext =
- (contextAccessor != null) ? contextAccessor.getParentApplicationContext() : null;
- return new SpringImplementationProvider(component, implementation, parentApplicationContext, proxyFactory,
- propertyFactory);
- }
-
- /**
- * Returns the class of the Spring implementation
- */
- public Class<SpringImplementation> getModelType() {
- return SpringImplementation.class;
- }
-
-} // end class SpringImplementationProviderFactory
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationTie.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationTie.java
deleted file mode 100644
index fc75faed21..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringImplementationTie.java
+++ /dev/null
@@ -1,156 +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.provider.stub;
-
-import java.util.List;
-
-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.context.PropertyValueFactory;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-/**
- * This is the Tuscany side tie for the corresponding runtime stub class.
- * It enables the Sping code in the runtime module to invoke methods on a
- * Tuscany SpringImplementation without the Spring runtime module
- * needing to know about any Tuscany classes. See the SpringImplementationStub class
- * in the implementation-spring-runtime module for what the stub does.
- */
-public class SpringImplementationTie {
-
- private SpringImplementation implementation;
- private Object parentApplicationContext;
- private RuntimeComponent component;
- private PropertyValueFactory propertyFactory;
-
- public SpringImplementationTie(SpringImplementation implementation,
- Object parentApplicationContext,
- RuntimeComponent component,
- PropertyValueFactory propertyFactory) {
- this.implementation = implementation;
- this.component = component;
- this.propertyFactory = propertyFactory;
- this.parentApplicationContext = parentApplicationContext;
- }
-
- public String getURI() {
- return implementation.getURI();
- }
-
- public String getComponentName() {
- return component.getName();
- }
-
- /**
- * Method to create a Java Bean for a Property value
- * @param <B> 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> B getPropertyBean(Class<?> requiredType, String name) {
- B propertyObject = null;
- // Get the component's list of properties
- List<ComponentProperty> 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
- propertyObject = (B) propertyFactory.createPropertyValue(prop, requiredType);
- } // end if
- } // end for
-
- return propertyObject;
- }
-
- /**
- * Creates a proxy Bean for a reference
- * @param <B> 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 <B>
- */
- private <B> B getService(Class<B> businessInterface, String referenceName) {
- return component.getComponentContext().getService(businessInterface, referenceName);
- }
-
- /**
- * 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) {
- // 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
- // TODO: NoSuchBeanException
- // throw new RuntimeException("Unable to find Bean with name " + name);
- return null;
-
- } // end method getBean( String, Class )
-
- public Object getComponentTie() {
- return new ComponentTie(component);
- }
-
- public Object getPropertyValueTie() {
- return new PropertyValueTie(component, propertyFactory);
- }
-
- public ClassLoader getClassLoader() {
- return implementation.getClassLoader();
- }
-
- public Object getParentApplicationContext() {
- return parentApplicationContext;
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringInvocationException.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringInvocationException.java
deleted file mode 100644
index 909a640563..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/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.provider.stub;
-
-/**
- * @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/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringInvoker.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringInvoker.java
deleted file mode 100644
index 7d73eb5e6a..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/stub/SpringInvoker.java
+++ /dev/null
@@ -1,125 +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.provider.stub;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.sca.implementation.spring.SpringBeanElement;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-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;
-
-/**
- * Initial implementation of a Spring bean invoker
- * @version $Rev$ $Date$
- */
-public class SpringInvoker implements Invoker {
-
- private Method theMethod = null;
- private Object bean;
- private SpringBeanElement beanElement;
- private boolean badInvoker = false;
-
- private SpringContextStub 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,
- SpringContextStub 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 (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.getCause());
- } 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/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader
deleted file mode 100644
index 0a46baa13b..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader
+++ /dev/null
@@ -1,17 +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.
-org.apache.tuscany.sca.implementation.spring.processor.stub.SpringXMLBeanDefinitionLoaderStub;ranking=50 \ No newline at end of file
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory b/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory
deleted file mode 100644
index e037ea60f5..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-stub/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory
+++ /dev/null
@@ -1,20 +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.provider.stub.SpringImplementationProviderFactory;model=org.apache.tuscany.sca.implementation.spring.SpringImplementation;ranking=50
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/LICENSE b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/LICENSE
deleted file mode 100644
index 6e529a25c4..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
-
-
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/META-INF/MANIFEST.MF b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/META-INF/MANIFEST.MF
deleted file mode 100644
index 5d452244d2..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-SCA-Version: 1.1
-Bundle-Name: Apache Tuscany SCA Spring Implementation Runtime Model
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0.0
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Spring Implementation Runtime Model
-Bundle-SymbolicName: org.apache.tuscany.sca.implementation.spring.tie
-Bundle-DocURL: http://www.apache.org/
-Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6
-Import-Package: org.oasisopen.sca;version="2.0.0",
- org.oasisopen.sca.annotation;version="2.0.0",
- org.springframework.beans;version="3.0.2.RELEASE",
- org.springframework.beans.factory;version="3.0.2.RELEASE",
- org.springframework.beans.factory.annotation;version="3.0.2.RELEASE",
- org.springframework.beans.factory.config;version="3.0.2.RELEASE",
- org.springframework.beans.factory.support;version="3.0.2.RELEASE",
- org.springframework.beans.factory.xml;version="3.0.2.RELEASE",
- org.springframework.context;version="3.0.2.RELEASE",
- org.springframework.context.support;version="3.0.2.RELEASE",
- org.springframework.core;version="3.0.2.RELEASE",
- org.springframework.core.io;version="3.0.2.RELEASE",
- org.springframework.util;version="3.0.2.RELEASE"
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/NOTICE b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/NOTICE
deleted file mode 100644
index 1325efd8bf..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2008 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/README b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/README
deleted file mode 100644
index e1b1f98fe0..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/README
+++ /dev/null
@@ -1,9 +0,0 @@
-Note that the implementation spring modules have a different structure from other extensions.
-
-The aim is to have the Tuscany runtime embedded in a container with the Tuscany classes hidden
-from user applications and the Spring jar's packaged with the application. That means that the
-Tuscany code has no visibilty of the Spring classes and visa-versa. To implement that the
-implementation-spring module has no dependencies on Spring and the implementation-spring-runtime
-module has no dependencies on Tuscany (other than the sca-api), and reflection is used to call
-methods between the modules.
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/pom.xml b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/pom.xml
deleted file mode 100644
index a30109d442..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/pom.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-implementation-spring-tie</artifactId>
- <name>Apache Tuscany SCA Spring Implementation Runtime Tie</name>
-
- <dependencies>
-
- <!-- **************************************** -->
- <!-- * * -->
- <!-- * DONT ADD ANY TUSCANY DEPENDENCIES!!! * -->
- <!-- * * -->
- <!-- * See the README for details why not * -->
- <!-- * * -->
- <!-- * * -->
- <!-- **************************************** -->
-
- <!-- SCA API dependency -->
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-sca-api</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- Spring dependencies... -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>3.0.2.RELEASE</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>3.0.2.RELEASE</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>3.0.2.RELEASE</version>
- </dependency>
-
- </dependencies>
-</project>
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SCAGenericApplicationContext.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SCAGenericApplicationContext.java
deleted file mode 100644
index 69e2ee2865..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SCAGenericApplicationContext.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.implementation.spring.context.tie;
-
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringBeanElement;
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringConstructorArgElement;
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringElementTie;
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringSCAPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringSCAReferenceElement;
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringSCAServiceElement;
-import org.springframework.beans.MutablePropertyValues;
-import org.springframework.beans.PropertyValue;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.config.BeanReference;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.beans.factory.config.ConstructorArgumentValues;
-import org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder;
-import org.springframework.beans.factory.config.TypedStringValue;
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.GenericApplicationContext;
-
-public class SCAGenericApplicationContext extends GenericApplicationContext {
-
- private ClassLoader classloader = null;
- private List<SpringSCAPropertyElement> propertyElements = new ArrayList<SpringSCAPropertyElement>();
- private List<SpringSCAServiceElement> serviceElements = new ArrayList<SpringSCAServiceElement>();
- private List<SpringSCAReferenceElement> referenceElements = new ArrayList<SpringSCAReferenceElement>();
- private List<SpringBeanElement> beanElements;
-
- public SCAGenericApplicationContext(DefaultListableBeanFactory beanFactory,
- ApplicationContext parent,
- ClassLoader classloader) {
- super(beanFactory, parent);
- this.classloader = classloader;
- }
-
- public SCAGenericApplicationContext(ApplicationContext parent, ClassLoader classloader) {
- super(parent);
- this.classloader = classloader;
- }
-
- @Override
- protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {
- beanFactory.setBeanClassLoader(classloader);
- }
-
- public void addSCAPropertyElement(SpringSCAPropertyElement propertyElement) {
- propertyElements.add(propertyElement);
- }
-
- public void addSCAServiceElement(SpringSCAServiceElement serviceElement) {
- serviceElements.add(serviceElement);
- }
-
- public void addSCAReferenceElement(SpringSCAReferenceElement referenceElement) {
- referenceElements.add(referenceElement);
- }
-
- public synchronized List<SpringBeanElement> getBeanElements() {
- if (beanElements == null) {
- beanElements = new ArrayList<SpringBeanElement>();
- for (String name : getBeanDefinitionNames()) {
- BeanDefinition def = getBeanDefinition(name);
- SpringBeanElement beanElement = new SpringBeanElement(name, def.getBeanClassName());
- beanElements.add(beanElement);
- beanElement.setAbstractBean(def.isAbstract());
- beanElement.setFactoryBeanAttribute(def.getFactoryBeanName() != null);
- beanElement.setFactoryMethodAttribute(def.getFactoryMethodName() != null);
- beanElement.setParentAttribute(def.getParentName() != null);
- beanElement.setInnerBean(beanElement.getId() == null);
-
- ConstructorArgumentValues args = def.getConstructorArgumentValues();
- for (Map.Entry<Integer, ValueHolder> e: args.getIndexedArgumentValues().entrySet()) {
- ValueHolder holder = e.getValue();
- SpringConstructorArgElement arg = new SpringConstructorArgElement(holder.getType());
- arg.setIndex(e.getKey());
- beanElement.addCustructorArgs(arg);
- }
-
- MutablePropertyValues values = def.getPropertyValues();
- for (PropertyValue p : values.getPropertyValueList()) {
- SpringPropertyElement propertyElement = new SpringPropertyElement(p.getName());
- Object value = p.getValue();
- configurePropertyElement(propertyElement, value);
- beanElement.getProperties().add(propertyElement);
- }
- }
- }
- return beanElements;
- }
-
- public void configurePropertyElement(SpringPropertyElement propertyElement, Object value) {
- if (value instanceof BeanReference) {
- BeanReference beanRef = (BeanReference)value;
- propertyElement.addRef(beanRef.getBeanName());
- } else if (value instanceof Collection) {
- Collection collection = (Collection)value;
- for (Object item : collection) {
- configurePropertyElement(propertyElement, item);
- }
- } else if (value instanceof TypedStringValue) {
- TypedStringValue stringValue = (TypedStringValue)value;
- propertyElement.addValue(stringValue.getValue());
- } else {
- if (value != null) {
- propertyElement.addValue(value.toString());
- }
- }
- }
-
- public List<SpringSCAPropertyElement> getPropertyElements() {
- return propertyElements;
- }
-
- public List<SpringSCAServiceElement> getServiceElements() {
- return serviceElements;
- }
-
- public List<SpringSCAReferenceElement> getReferenceElements() {
- return referenceElements;
- }
-
- public <T> T[] getElements(Class<T> type) {
- if (type.getSimpleName().equals(SpringSCAPropertyElement.class.getSimpleName())) {
- T[] elements = (T[])Array.newInstance(type, getPropertyElements().size());
- for (int i = 0; i < elements.length; i++) {
- elements[i] = SpringElementTie.copy(getPropertyElements().get(i), type, type);
- }
- return elements;
- } else if (type.getSimpleName().equals(SpringSCAReferenceElement.class.getSimpleName())) {
- T[] elements = (T[])Array.newInstance(type, getReferenceElements().size());
- for (int i = 0; i < elements.length; i++) {
- elements[i] = SpringElementTie.copy(getReferenceElements().get(i), type, type);
- }
- return elements;
- } else if (type.getSimpleName().equals(SpringSCAServiceElement.class.getSimpleName())) {
- T[] elements = (T[])Array.newInstance(type, getServiceElements().size());
- for (int i = 0; i < elements.length; i++) {
- elements[i] = SpringElementTie.copy(getServiceElements().get(i), type, type);
- }
- return elements;
- } else if (type.getSimpleName().equals(SpringBeanElement.class.getSimpleName())) {
- T[] elements = (T[])Array.newInstance(type, getBeanElements().size());
- for (int i = 0; i < elements.length; i++) {
- elements[i] = SpringElementTie.copy(getBeanElements().get(i), type, type);
- }
- return elements;
- } else {
- throw new IllegalArgumentException(type + " is not supported");
- }
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SCAParentApplicationContext.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SCAParentApplicationContext.java
deleted file mode 100644
index d2b35ce74e..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SCAParentApplicationContext.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.implementation.spring.context.tie;
-
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.util.Locale;
-import java.util.Map;
-
-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 <sca:property/>
- * and <sca:reference/> elements in the application context or they may be implicit through
- * unresolved Spring bean <property.../> 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$ $Date$
- */
-public class SCAParentApplicationContext implements ApplicationContext {
-
- // The Spring implementation for which this is the parent application context
- private SpringImplementationStub implementation;
-
- private static final String[] EMPTY_ARRAY = new String[0];
-
- public SCAParentApplicationContext(SpringImplementationStub implementation) {
- this.implementation = implementation;
- } // 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 {
- Object bean = implementation.getBean(name, requiredType);
- if (bean == null && getParent() != null) {
- bean = getParent().getBean(name, requiredType);
- }
- if (bean == null) {
- throw new NoSuchBeanDefinitionException("Unable to find Bean with name " + name);
- } else {
- return bean;
- }
- } // end method getBean( String, Class )
-
- public Object getBean(String name, Object[] args) throws BeansException {
- return getBean(name, ((Class)null));
- }
-
- public <T> T getBean(Class<T> clazz) throws BeansException {
- return clazz.cast(getBean(clazz.getName(), clazz));
- }
-
- public Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> clazz) throws BeansException {
- return null;
- }
-
- public <A extends Annotation> A findAnnotationOnBean(String arg0, Class<A> clazz) {
- return null;
- }
-
- public boolean containsBean(String name) {
- // TODO
- 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 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();
- }
-
- @Override
- public ApplicationContext getParent() {
- return implementation.getParentApplicationContext();
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java
deleted file mode 100644
index 8bcdc8108d..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringContextTie.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.implementation.spring.context.tie;
-
-import java.net.URL;
-import java.util.List;
-
-import org.apache.tuscany.sca.implementation.spring.processor.tie.ComponentNameAnnotationProcessor;
-import org.apache.tuscany.sca.implementation.spring.processor.tie.ComponentStub;
-import org.apache.tuscany.sca.implementation.spring.processor.tie.ConstructorAnnotationProcessor;
-import org.apache.tuscany.sca.implementation.spring.processor.tie.InitDestroyAnnotationProcessor;
-import org.apache.tuscany.sca.implementation.spring.processor.tie.PropertyAnnotationProcessor;
-import org.apache.tuscany.sca.implementation.spring.processor.tie.PropertyValueStub;
-import org.apache.tuscany.sca.implementation.spring.processor.tie.ReferenceAnnotationProcessor;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.AbstractApplicationContext;
-import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.io.UrlResource;
-
-/**
- * This is the runtime side tie for the corresponding tuscany side stub class.
- * It enables the Tuscany code to invoke methods on a Spring context without
- * needing to know about any Spring classes. See the SpringContextStub class
- * in the implementation-spring module for what the stub does.
- */
-public class SpringContextTie {
-
- private AbstractApplicationContext springContext;
- private SpringImplementationStub implementation;
-
- public SpringContextTie(SpringImplementationStub implementation, List<URL> resource) {
- this.implementation = implementation;
- SCAParentApplicationContext scaParentContext = new SCAParentApplicationContext(implementation);
- springContext = createApplicationContext(scaParentContext, resource);
- }
-
- public ApplicationContext getApplicationContext() {
- return springContext;
- }
-
- public void start() {
- // Do refresh here to ensure that Spring Beans are not touched before the SCA config process is complete...
- springContext.refresh();
- springContext.start();
- }
-
- public void close() {
- springContext.close();
- if (springContext instanceof GenericApplicationContext) {
- springContext.stop();
- }
- }
-
- /**
- * Include BeanPostProcessor to deal with SCA Annotations in Spring Bean
- */
- private AbstractApplicationContext createApplicationContext(SCAParentApplicationContext scaParentContext,
- List<URL> resources) {
-
- GenericApplicationContext appCtx =
- new SCAGenericApplicationContext(scaParentContext, implementation.getClassLoader());
- XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(appCtx);
-
- // REVIEW: [rfeng] How do we control the schema validation
- xmlReader.setValidating(false);
-
- for (URL resource : resources) {
- xmlReader.loadBeanDefinitions(new UrlResource(resource));
- }
- xmlReader.setBeanClassLoader(implementation.getClassLoader());
- includeAnnotationProcessors(appCtx.getBeanFactory());
- return appCtx;
-
- }
-
- public Object getBean(String id) throws BeansException {
- return springContext.getBean(id);
- }
-
- /**
- * Include BeanPostProcessor to deal with SCA Annotations in Spring Bean
- */
- private void includeAnnotationProcessors(ConfigurableListableBeanFactory beanFactory) {
-
- // Processor to deal with @Init and @Destroy SCA Annotations
- BeanPostProcessor initDestroyProcessor = new InitDestroyAnnotationProcessor();
- beanFactory.addBeanPostProcessor(initDestroyProcessor);
-
- // Processor to deal with @Reference SCA Annotations
- ComponentStub component = new ComponentStub(implementation.getComponentTie());
- BeanPostProcessor referenceProcessor = new ReferenceAnnotationProcessor(component);
- beanFactory.addBeanPostProcessor(referenceProcessor);
-
- // Processor to deal with @Property SCA Annotations
- PropertyValueStub pvs = new PropertyValueStub(implementation.getPropertyValueTie());
- BeanPostProcessor propertyProcessor = new PropertyAnnotationProcessor(pvs);
- beanFactory.addBeanPostProcessor(propertyProcessor);
-
- // Processor to deal with @ComponentName SCA Annotations
- BeanPostProcessor componentNameProcessor =
- new ComponentNameAnnotationProcessor(implementation.getComponentName());
- beanFactory.addBeanPostProcessor(componentNameProcessor);
-
- // Processor to deal with @Constructor SCA Annotations
- BeanPostProcessor constructorProcessor = new ConstructorAnnotationProcessor();
- beanFactory.addBeanPostProcessor(constructorProcessor);
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringImplementationStub.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringImplementationStub.java
deleted file mode 100644
index 5ce52e668c..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/context/tie/SpringImplementationStub.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.implementation.spring.context.tie;
-
-import java.lang.reflect.Method;
-
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-
-/**
- * This is the runtime side stub for the corresponding Tuscany-side stub class.
- * It enables the Spring code in the runtime module to invoke methods on a
- * Tuscany SpringImplementation without the Spring runtime module
- * needing to know about any Tuscany classes. See the SpringImplementationTie class
- * in the implementation-spring module for what the tie does.
- */
-public class SpringImplementationStub {
-
- Object tie;
- Method getURI;
- Method getBean;
- Method getComponentName;
- Method getComponentTie;
- Method getPropertyValueTie;
- Method getClassLoader;
- Method getParentApplicationContext;
-
- public SpringImplementationStub(Object tie) {
- this.tie = tie;
- Class<?> tieClass = tie.getClass();
- try {
- getURI = tieClass.getMethod("getURI", new Class<?>[] {});
- getBean = tieClass.getMethod("getBean", new Class<?>[] {String.class, Class.class});
- getComponentName = tieClass.getMethod("getComponentName");
- getComponentTie = tieClass.getMethod("getComponentTie");
- getPropertyValueTie = tieClass.getMethod("getPropertyValueTie");
- getClassLoader = tieClass.getMethod("getClassLoader");
- getParentApplicationContext = tieClass.getMethod("getParentApplicationContext");
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- public String getURI() {
- try {
-
- return (String)getURI.invoke(tie);
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * 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 {
- try {
-
- Object bean = getBean.invoke(tie, new Object[] {name, requiredType});
-// if (bean == null) {
-// throw new NoSuchBeanDefinitionException("Unable to find Bean with name " + name);
-// }
- return bean;
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- public String getComponentName() {
- try {
-
- return (String)getComponentName.invoke(tie);
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- public Object getComponentTie() {
- try {
-
- return getComponentTie.invoke(tie);
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- public Object getPropertyValueTie() {
- try {
-
- return getPropertyValueTie.invoke(tie);
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- public ClassLoader getClassLoader() {
- try {
-
- return (ClassLoader)getClassLoader.invoke(tie);
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * Get the parent Spring application context set by the Tuscany runtime
- * @return
- */
- public ApplicationContext getParentApplicationContext() {
- try {
-
- return (ApplicationContext)getParentApplicationContext.invoke(tie);
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
-
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringBeanElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringBeanElement.java
deleted file mode 100644
index 020e001a59..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringBeanElement.java
+++ /dev/null
@@ -1,129 +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.elements.tie;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a <bean> element in a Spring application-context
- * - this has id and className attributes
- * - plus zero or more property elements as children
- *
- * @version $Rev$ $Date$
- */
-public class SpringBeanElement {
-
- private String id;
- private String className = null;
- private boolean innerBean = false;
- private boolean abstractBean = false;
- private boolean parentAttribute = false;
- private boolean factoryBeanAttribute = false;
- private boolean factoryMethodAttribute = false;
-
- private List<SpringPropertyElement> properties = new ArrayList<SpringPropertyElement>();
- private List<SpringConstructorArgElement> constructorargs = new ArrayList<SpringConstructorArgElement>();
-
- public SpringBeanElement(String id, String className) {
- this.id = id;
- this.className = className;
- }
-
- public String getClassName() {
- return className;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public List<SpringPropertyElement> getProperties() {
- return properties;
- }
-
- public void addProperty(SpringPropertyElement property) {
- properties.add(property);
- }
-
- public List<SpringConstructorArgElement> getCustructorArgs() {
- return constructorargs;
- }
-
- public void addCustructorArgs(SpringConstructorArgElement args) {
- constructorargs.add(args);
- }
-
- public boolean isInnerBean() {
- return innerBean;
- }
-
- public void setInnerBean(boolean innerBean) {
- this.innerBean = innerBean;
- }
-
- public boolean isAbstractBean() {
- return abstractBean;
- }
-
- public void setAbstractBean(boolean abstractBean) {
- this.abstractBean = abstractBean;
- }
-
- public boolean hasParentAttribute() {
- return parentAttribute;
- }
-
- public void setParentAttribute(boolean parentAttribute) {
- this.parentAttribute = parentAttribute;
- }
-
- public boolean hasFactoryBeanAttribute() {
- return factoryBeanAttribute;
- }
-
- public void setFactoryBeanAttribute(boolean factoryBeanAttribute) {
- this.factoryBeanAttribute = factoryBeanAttribute;
- }
-
- public boolean hasFactoryMethodAttribute() {
- return factoryMethodAttribute;
- }
-
- public void setFactoryMethodAttribute(boolean factoryMethodAttribute) {
- this.factoryMethodAttribute = factoryMethodAttribute;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringBeanElement [id=").append(id).append(", className=").append(className)
- .append(", innerBean=").append(innerBean).append(", abstractBean=").append(abstractBean)
- .append(", parentAttribute=").append(parentAttribute).append(", factoryBeanAttribute=")
- .append(factoryBeanAttribute).append(", factoryMethodAttribute=").append(factoryMethodAttribute)
- .append(", properties=").append(properties).append(", constructorargs=").append(constructorargs)
- .append("]");
- return builder.toString();
- }
-
-} // end class SpringBeanElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringConstructorArgElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringConstructorArgElement.java
deleted file mode 100644
index 53a972b7d8..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringConstructorArgElement.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.elements.tie;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a <constructor-arg> element in a Spring application-context
- * - this has ref attribute
- *
- * @version $Rev$ $Date$
- */
-public class SpringConstructorArgElement {
-
- private String type;
- private int autoIndex = -1;
- private int index = -1;
- private List<String> refs = new ArrayList<String>();
- private List<String> values = new ArrayList<String>();
-
- public SpringConstructorArgElement(String type) {
- this.type = type;
- }
-
- public String getType() {
- return this.type;
- }
-
- public List<String> getRefs() {
- return this.refs;
- }
-
- public void addRef(String ref) {
- this.refs.add(ref);
- }
-
- public int getIndex() {
- return this.index;
- }
-
- public void setIndex(int index) {
- this.index = index;
- }
-
- public int getAutoIndex() {
- return this.autoIndex;
- }
-
- public void setAutoIndex(int index) {
- this.autoIndex = index;
- }
-
- public List<String> getValues() {
- return this.values;
- }
-
- public void addValue(String value) {
- this.values.add(value);
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringElementTie.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringElementTie.java
deleted file mode 100644
index c088e5d0f2..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringElementTie.java
+++ /dev/null
@@ -1,70 +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.elements.tie;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * A hacking utility to copy beans field by field between two class loaders
- */
-public class SpringElementTie {
- public static <T> T copy(Object source, Class<T> cls, Type genericType) {
- if (source == null) {
- return null;
- }
- if (cls.isPrimitive()) {
- return (T)source;
- }
- if (Collection.class.isAssignableFrom(cls)) {
- ParameterizedType pType = (ParameterizedType)genericType;
- Type itemType = pType.getActualTypeArguments()[0];
- Collection col = (Collection)source;
- List target = new ArrayList();
- for (Object item : col) {
- target.add(copy(item, (Class<?>)itemType, itemType));
- }
- return (T)target;
- }
- if (cls.isInstance(source)) {
- return cls.cast(source);
- }
- try {
- Class<?> sourceClass = source.getClass();
- T target = cls.newInstance();
- for (Field sourceField : sourceClass.getDeclaredFields()) {
- sourceField.setAccessible(true);
- Field targetField = cls.getDeclaredField(sourceField.getName());
- targetField.setAccessible(true);
- Object sourceFieldValue = sourceField.get(source);
- Object targetFieldValue = copy(sourceFieldValue, targetField.getType(), targetField.getGenericType());
- targetField.set(target, targetFieldValue);
- }
- return target;
- } catch (Throwable e) {
- throw new IllegalArgumentException(e);
- }
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringPropertyElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringPropertyElement.java
deleted file mode 100644
index c0a1f2129b..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringPropertyElement.java
+++ /dev/null
@@ -1,68 +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.elements.tie;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a <property> element in a Spring application-context
- * - this has name and ref attributes
- *
- * @version $Rev$ $Date$
- */
-public class SpringPropertyElement {
-
- private String name;
- private List<String> refs = new ArrayList<String>();
- private List<String> values = new ArrayList<String>();
-
- public SpringPropertyElement(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public List<String> getRefs() {
- return this.refs;
- }
-
- public void addRef(String ref) {
- this.refs.add(ref);
- }
-
- public List<String> getValues() {
- return this.values;
- }
-
- public void addValue(String value) {
- this.values.add(value);
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringPropertyElement [name=").append(name).append(", refs=").append(refs).append(", values=")
- .append(values).append("]");
- return builder.toString();
- }
-
-} // end class SpringPropertyElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAPropertyElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAPropertyElement.java
deleted file mode 100644
index 3f9901abea..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAPropertyElement.java
+++ /dev/null
@@ -1,59 +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.elements.tie;
-
-/**
- * Represents an <sca:property> element in a Spring application-context
- * - this has name and type attributes
- * @version $Rev$ $Date$
- */
-public class SpringSCAPropertyElement {
-
- private String name;
- private String type;
-
- public SpringSCAPropertyElement(String name, String type) {
- this.name = name;
- this.type = type;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getType() {
- return type;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringSCAPropertyElement [name=").append(name).append(", type=").append(type).append("]");
- return builder.toString();
- }
-
-} // end class SpringPropertyElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAReferenceElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAReferenceElement.java
deleted file mode 100644
index 7569d2996f..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAReferenceElement.java
+++ /dev/null
@@ -1,73 +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.elements.tie;
-
-
-/**
- * Represents a <sca:reference> element in a Spring application-context
- * - this has id and className attributes
- * - plus zero or more property elements as children
- *
- * @version $Rev$ $Date$
- */
-public class SpringSCAReferenceElement {
-
- private String name;
- private String type;
- private String defaultBean;
-
- public SpringSCAReferenceElement(String name, String type) {
- this.name = name;
- this.type = type;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getType() {
- return type;
- }
-
- public void setDefaultBean(String defaultBean) {
- this.defaultBean = defaultBean;
- }
-
- public String getDefaultBean() {
- return defaultBean;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringSCAReferenceElement [name=").append(name).append(", type=").append(type)
- .append(", defaultBean=").append(defaultBean).append("]");
- return builder.toString();
- }
-
-
-} // end class SpringSCAReferenceElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAServiceElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAServiceElement.java
deleted file mode 100644
index 737abe7c04..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/elements/tie/SpringSCAServiceElement.java
+++ /dev/null
@@ -1,73 +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.elements.tie;
-
-
-/**
- * Represents a <sca:service> element in a Spring application-context
- * - this has id and className attributes
- * - plus zero or more property elements as children
- *
- * @version $Rev$ $Date$
- */
-public class SpringSCAServiceElement {
-
- private String name;
- private String type;
- private String target;
-
-
- public SpringSCAServiceElement(String name, String target) {
- this.name = name;
- this.target = target;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getType() {
- return type;
- }
-
- public void setTarget(String target) {
- this.target = target;
- }
-
- public String getTarget() {
- return target;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringSCAServiceElement [name=").append(name).append(", type=").append(type)
- .append(", target=").append(target).append("]");
- return builder.toString();
- }
-
-} // end class SpringSCAServiceElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/SCANamespaceHandlerResolver.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/SCANamespaceHandlerResolver.java
deleted file mode 100644
index 07c7c6a454..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/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.namespace.tie;
-
-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$ $Date$
- */
-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/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaNamespaceHandler.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaNamespaceHandler.java
deleted file mode 100644
index 6ed49abb6f..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/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.namespace.tie;
-
-import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
-
-/**
- * Handler for the &lt;sca:&gt; namespace in an application context
- *
- * @version $Rev$ $Date$
- */
-public class ScaNamespaceHandler extends NamespaceHandlerSupport {
-
- public ScaNamespaceHandler() {
- }
-
- @Override
- public void init() {
- registerBeanDefinitionParser("reference", new ScaReferenceBeanDefinitionParser());
- registerBeanDefinitionParser("service", new ScaServiceBeanDefinitionParser());
- registerBeanDefinitionParser("property", new ScaPropertyBeanDefinitionParser());
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaPropertyBeanDefinitionParser.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaPropertyBeanDefinitionParser.java
deleted file mode 100644
index ad11a300ae..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaPropertyBeanDefinitionParser.java
+++ /dev/null
@@ -1,44 +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.namespace.tie;
-
-import org.apache.tuscany.sca.implementation.spring.context.tie.SCAGenericApplicationContext;
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringSCAPropertyElement;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.beans.factory.xml.BeanDefinitionParser;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for the &lt;sca:reference&gt; element
- * @version $Rev$ $Date$
- */
-public class ScaPropertyBeanDefinitionParser implements BeanDefinitionParser {
-
- public BeanDefinition parse(Element element, ParserContext parserContext) {
- BeanDefinitionRegistry registry = parserContext.getRegistry();
- if (registry instanceof SCAGenericApplicationContext) {
- SCAGenericApplicationContext context = (SCAGenericApplicationContext)registry;
- SpringSCAPropertyElement propertyElement =
- new SpringSCAPropertyElement(element.getAttributeNS(null, "name"), element.getAttributeNS(null, "type"));
- context.addSCAPropertyElement(propertyElement);
- }
- // do nothing, this is handled by Tuscany
- return null;
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaReferenceBeanDefinitionParser.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaReferenceBeanDefinitionParser.java
deleted file mode 100644
index a4fefa70f1..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaReferenceBeanDefinitionParser.java
+++ /dev/null
@@ -1,49 +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.namespace.tie;
-
-import org.apache.tuscany.sca.implementation.spring.context.tie.SCAGenericApplicationContext;
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringSCAReferenceElement;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.beans.factory.xml.BeanDefinitionParser;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for the &lt;sca:reference&gt; element
- *
- * @version $Rev$ $Date$
- */
-public class ScaReferenceBeanDefinitionParser implements BeanDefinitionParser {
-
- public BeanDefinition parse(Element element, ParserContext parserContext) {
- BeanDefinitionRegistry registry = parserContext.getRegistry();
- if (registry instanceof SCAGenericApplicationContext) {
- SCAGenericApplicationContext context = (SCAGenericApplicationContext)registry;
- SpringSCAReferenceElement referenceElement =
- new SpringSCAReferenceElement(element.getAttributeNS(null, "name"),
- element.getAttributeNS(null, "type"));
- referenceElement.setDefaultBean(element.getAttributeNS(null, "default"));
- context.addSCAReferenceElement(referenceElement);
- }
-
- // do nothing, this is handled by Tuscany
- return null;
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaServiceBeanDefinitionParser.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaServiceBeanDefinitionParser.java
deleted file mode 100644
index 64f4ce20dc..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/tie/ScaServiceBeanDefinitionParser.java
+++ /dev/null
@@ -1,48 +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.namespace.tie;
-
-import org.apache.tuscany.sca.implementation.spring.context.tie.SCAGenericApplicationContext;
-import org.apache.tuscany.sca.implementation.spring.elements.tie.SpringSCAServiceElement;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.beans.factory.xml.BeanDefinitionParser;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for the &lt;sca:service/&gt; element
- *
- * @version $Rev$ $Date$
- */
-public class ScaServiceBeanDefinitionParser implements BeanDefinitionParser {
-
- public BeanDefinition parse(Element element, ParserContext parserContext) {
- BeanDefinitionRegistry registry = parserContext.getRegistry();
- if (registry instanceof SCAGenericApplicationContext) {
- SCAGenericApplicationContext context = (SCAGenericApplicationContext)registry;
- SpringSCAServiceElement serviceElement =
- new SpringSCAServiceElement(element.getAttributeNS(null, "name"),
- element.getAttributeNS(null, "target"));
- serviceElement.setType(element.getAttributeNS(null, "type"));
- context.addSCAServiceElement(serviceElement);
- }
- // do nothing, handled by Tuscany
- return null;
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ComponentNameAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ComponentNameAnnotationProcessor.java
deleted file mode 100644
index 77f9f30bfd..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ComponentNameAnnotationProcessor.java
+++ /dev/null
@@ -1,151 +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.processor.tie;
-
-import java.beans.PropertyDescriptor;
-import java.lang.annotation.Annotation;
-import java.lang.ref.Reference;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-import org.oasisopen.sca.annotation.ComponentName;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.FatalBeanException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.util.Assert;
-import org.springframework.util.ReflectionUtils;
-
-public class ComponentNameAnnotationProcessor implements BeanPostProcessor {
-
- private Class<? extends Annotation> componentNameAnnotationType = ComponentName.class;
-
- private String componentName;
-
- public ComponentNameAnnotationProcessor(String componentName) {
- this.componentName = componentName;
- }
-
- /**
- * Gets componentName annotation type.
- */
- protected Class<? extends Annotation> getComponentNameAnnotationType() {
- return this.componentNameAnnotationType;
- }
-
- /**
- * Sets componentName annotation type.
- */
- public void setComponentNameAnnotationType(Class<? extends Annotation> componentNameAnnotationType) {
- Assert.notNull(componentNameAnnotationType, "'componentNameAnnotationType' type must not be null.");
- this.componentNameAnnotationType = componentNameAnnotationType;
- }
-
- /**
- * This method is used to execute before a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- processAnnotation(bean);
- return bean;
- }
-
- /**
- * This method is used to execute after a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- /**
- * <p>Processes a beans fields for injection if it has a {@link Reference} annotation.</p>
- */
- protected void processAnnotation(final Object bean) {
-
- final Class<?> clazz = bean.getClass();
-
- ReflectionUtils.doWithFields(clazz, new ReflectionUtils.FieldCallback() {
- public void doWith(Field field) {
- Annotation annotation = field.getAnnotation(getComponentNameAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(field.getModifiers())) {
- throw new IllegalStateException("ComponentName annotation is not supported on static fields");
- }
-
- if (Modifier.isPrivate(field.getModifiers())) {
- throw new IllegalStateException("ComponentName annotation is not supported on private fields");
- }
-
- ReflectionUtils.makeAccessible(field);
-
- if (field.getType().getName().equals("java.lang.String")) {
- Object nameObj = componentName;
- if (nameObj != null)
- ReflectionUtils.setField(field, bean, nameObj);
- } else {
- throw new IllegalStateException(
- "ComponentName annotation is supported only on java.lang.String field type.");
- }
- }
- }
- });
-
- ReflectionUtils.doWithMethods(clazz, new ReflectionUtils.MethodCallback() {
- public void doWith(Method method) {
- Annotation annotation = method.getAnnotation(getComponentNameAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(method.getModifiers())) {
- throw new IllegalStateException("ComponentName annotation is not supported on static methods");
- }
-
- if (Modifier.isPrivate(method.getModifiers())) {
- throw new IllegalStateException("ComponentName annotation is not supported on private methods");
- }
-
- if (method.getParameterTypes().length == 0) {
- throw new IllegalStateException(
- "ComponentName annotation requires at least one argument: " + method);
- }
-
- PropertyDescriptor pd = BeanUtils.findPropertyForMethod(method);
-
- if (pd.getPropertyType().getName().equals("java.lang.String")) {
- Object nameObj = componentName;
- if (nameObj != null) {
- try {
- pd.getWriteMethod().invoke(bean, new Object[] {nameObj});
- } catch (Throwable e) {
- throw new FatalBeanException("Problem injecting reference: " + e.getMessage(), e);
- }
- }
- } else {
- throw new IllegalStateException(
- "ComponentName annotation is supported only on java.lang.String field type.");
- }
- }
- }
- });
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ComponentStub.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ComponentStub.java
deleted file mode 100644
index 7511ac4bd5..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ComponentStub.java
+++ /dev/null
@@ -1,54 +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.processor.tie;
-
-import java.lang.reflect.Method;
-
-/**
- * This is the Spring runtime side stub for the corresponding Tuscany tie class.
- * It enables the Tuscany code to invoke methods on a Spring context without
- * needing to know about any Spring classes. See the ComponentTie class
- * in the implementation-spring module for what the tie does.
- */
-public class ComponentStub {
-
- private Object tie;
- private Method getService;
-
- public ComponentStub(Object tie) {
- this.tie = tie;
- Class<?> tieClass = tie.getClass();
- try {
- getService = tieClass.getMethod("getService", new Class<?>[] {Class.class, String.class});
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- public Object getService(Class<?> type, String name) {
- try {
-
- return getService.invoke(tie, type, name);
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ConstructorAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ConstructorAnnotationProcessor.java
deleted file mode 100644
index 503307cfd9..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ConstructorAnnotationProcessor.java
+++ /dev/null
@@ -1,112 +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.processor.tie;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter;
-import org.springframework.util.Assert;
-
-public class ConstructorAnnotationProcessor extends InstantiationAwareBeanPostProcessorAdapter {
-
- private Class<? extends Annotation> constructorAnnotationType = org.oasisopen.sca.annotation.Constructor.class;
-
- private Class<? extends Annotation> autowiredAnnotationType = Autowired.class;
-
- public ConstructorAnnotationProcessor() {
- // Default constructor.
- }
-
- /**
- * Set the 'autowired' annotation type, to be used on constructors, fields,
- * setter methods and arbitrary config methods.
- */
- public void setAutowiredAnnotationType(Class<? extends Annotation> autowiredAnnotationType) {
- Assert.notNull(autowiredAnnotationType, "'autowiredAnnotationType' must not be null");
- this.autowiredAnnotationType = autowiredAnnotationType;
- }
-
- /**
- * Return the 'autowired' annotation type.
- */
- protected Class<? extends Annotation> getAutowiredAnnotationType() {
- return this.autowiredAnnotationType;
- }
-
- /**
- * Return the 'constructor' annotation type.
- */
- protected Class<? extends Annotation> getConstructorAnnotationType() {
- return this.constructorAnnotationType;
- }
-
- /**
- * Sets the 'constructor' annotation type.
- */
- public void setConstructorAnnotationType(Class<? extends Annotation> constructorAnnotationType) {
- Assert.notNull(constructorAnnotationType, "'constructorAnnotationType' type must not be null.");
- this.constructorAnnotationType = constructorAnnotationType;
- }
-
- /**
- * This method is used to execute before a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- /**
- * This method is used to execute after a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- public Constructor[] determineCandidateConstructors(Class beanClass, String beanName) throws BeansException {
- /*Constructor[] declaredConstructors = beanClass.getDeclaredConstructors();
- Method[] declaredMethods = beanClass.getDeclaredMethods();
- List candidates = new ArrayList(declaredConstructors.length);
-
- for (int i = 0; i < declaredMethods.length; i++) {
- Method method = declaredMethods[i];
- Annotation annotation = method.getAnnotation(getConstructorAnnotationType());
- if (annotation != null) {
- if (Modifier.isStatic(method.getModifiers())) {
- throw new IllegalStateException("Constructor annotation is not supported on static methods");
- }
-
- if (candidates.size() == 1) {
- throw new IllegalStateException("Only one method is allowed to have constructor annotation in a bean: " + method);
- }
-
- candidates.add(method);
- }
- }
-
- return (Constructor[]) candidates.toArray(new Constructor[candidates.size()]);*/
- return null;
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/InitDestroyAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/InitDestroyAnnotationProcessor.java
deleted file mode 100644
index 390ee040f2..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/InitDestroyAnnotationProcessor.java
+++ /dev/null
@@ -1,75 +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.processor.tie;
-
-import java.lang.annotation.Annotation;
-
-import org.oasisopen.sca.annotation.Destroy;
-import org.oasisopen.sca.annotation.Init;
-import org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor;
-
-public class InitDestroyAnnotationProcessor extends InitDestroyAnnotationBeanPostProcessor {
-
- private static final long serialVersionUID = 0;
-
- private Class<? extends Annotation> initAnnotationType = Init.class;
- private Class<? extends Annotation> destroyAnnotationType = Destroy.class;
-
- /**
- * Gets init annotation type.
- */
- protected Class<? extends Annotation> getInitAnnotationType() {
- return this.initAnnotationType;
- }
-
- /**
- * Sets init annotation type.
- */
- /*
- * public void setInitAnnotationType(Class<? extends Annotation>
- * initAnnotationType) { Assert.notNull(initAnnotationType,
- * "Init annotation type must not be null."); this.initAnnotationType =
- * initAnnotationType; }
- */
-
- /**
- * Gets destroy annotation type.
- */
- protected Class<? extends Annotation> getDestroyAnnotationType() {
- return this.destroyAnnotationType;
- }
-
- /**
- * Sets destroy annotation type.
- */
- /*
- * public void setDestroyAnnotationType(Class<? extends Annotation>
- * destroyAnnotationType) { Assert.notNull(destroyAnnotationType,
- * "Destroy annotation type must not be null."); this.destroyAnnotationType
- * = destroyAnnotationType; }
- */
-
- public InitDestroyAnnotationProcessor() {
- // Set the @Init annotation type
- setInitAnnotationType(initAnnotationType);
-
- // Set the @Destroy annotation type
- setDestroyAnnotationType(destroyAnnotationType);
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/PropertyAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/PropertyAnnotationProcessor.java
deleted file mode 100644
index ce3aafd3ef..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/PropertyAnnotationProcessor.java
+++ /dev/null
@@ -1,163 +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.processor.tie;
-
-import java.beans.PropertyDescriptor;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-import org.oasisopen.sca.annotation.Property;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.FatalBeanException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.util.Assert;
-import org.springframework.util.ReflectionUtils;
-
-public class PropertyAnnotationProcessor implements BeanPostProcessor {
-
- private Class<? extends Annotation> propertyAnnotationType = Property.class;
-
- private PropertyValueStub propertyValue;
-
- public PropertyAnnotationProcessor(PropertyValueStub propertyValue) {
- this.propertyValue = propertyValue;
- }
-
- /**
- * Gets property annotation type.
- */
- protected Class<? extends Annotation> getPropertyAnnotationType() {
- return this.propertyAnnotationType;
- }
-
- /**
- * Sets property annotation type.
- */
- public void setPropertyAnnotationType(Class<? extends Annotation> propertyAnnotationType) {
- Assert.notNull(propertyAnnotationType, "'propertyAnnotationType' type must not be null.");
- this.propertyAnnotationType = propertyAnnotationType;
- }
-
- /**
- * This method is used to execute before a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- processAnnotation(bean);
- return bean;
- }
-
- /**
- * This method is used to execute after a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- /**
- * <p>Processes a beans fields for injection if it has a {@link Property} annotation.</p>
- */
- protected void processAnnotation(final Object bean) {
-
- final Class<?> clazz = bean.getClass();
-
- ReflectionUtils.doWithMethods(clazz, new ReflectionUtils.MethodCallback() {
- public void doWith(Method method) {
-
- Property annotation = (Property)method.getAnnotation(getPropertyAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(method.getModifiers())) {
- throw new IllegalStateException("Property annotation is not supported on static methods");
- }
-
- /*
- if (Modifier.isPrivate(method.getModifiers())) {
- throw new IllegalStateException("Property annotation is not supported on private methods");
- }
- */
-
- if (method.getParameterTypes().length == 0) {
- throw new IllegalStateException("Property annotation requires at least one argument: " + method);
- }
-
- PropertyDescriptor pd = BeanUtils.findPropertyForMethod(method);
- if (pd != null) {
- String propName = annotation.name();
- if ("".equals(propName)) {
- injectProperty(bean, pd, propertyValue.getPropertyObj(pd.getPropertyType(), pd.getName()));
- } else {
- injectProperty(bean, pd, propertyValue.getPropertyObj(pd.getPropertyType(), propName));
- }
- }
- }
- }
- });
-
- ReflectionUtils.doWithFields(clazz, new ReflectionUtils.FieldCallback() {
- public void doWith(Field field) {
-
- Property annotation = (Property)field.getAnnotation(getPropertyAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(field.getModifiers())) {
- throw new IllegalStateException("Property annotation is not supported on static fields");
- }
-
- /*
- if (Modifier.isPrivate(field.getModifiers())) {
- throw new IllegalStateException("Property annotation is not supported on private fields");
- }
- */
-
- ReflectionUtils.makeAccessible(field);
-
- Object propertyObj = null;
- String propName = annotation.name();
- if ("".equals(propName)) {
- propertyObj = propertyValue.getPropertyObj(field.getType(), field.getName());
- } else {
- propertyObj = propertyValue.getPropertyObj(field.getType(), propName);
- }
-
- if (propertyObj != null)
- ReflectionUtils.setField(field, bean, propertyObj);
- }
- }
- });
- }
-
- public void injectProperty(Object bean, PropertyDescriptor pd, Object propertyObj) {
-
- if (propertyObj != null) {
- try {
- pd.getWriteMethod().invoke(bean, new Object[] {propertyObj});
- } catch (Throwable e) {
- throw new FatalBeanException("Problem injecting property: " + e.getMessage(), e);
- }
- }
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/PropertyValueStub.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/PropertyValueStub.java
deleted file mode 100644
index 5a4b57ce81..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/PropertyValueStub.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.processor.tie;
-
-import java.lang.reflect.Method;
-
-/**
- * This is the Spring runtime side stub for the corresponding Tuscany tie class.
- * It enables the Tuscany code to invoke methods on a Spring context without
- * needing to know about any Spring classes. See the PropertyValueTie class
- * in the implementation-spring module for what the tie does.
- */
-public class PropertyValueStub {
-
- private Object tie;
- private Method getPropertyObj;
-
- public PropertyValueStub(Object tie) {
- this.tie = tie;
- Class<?> tieClass = tie.getClass();
- try {
- getPropertyObj = tieClass.getMethod("getPropertyObj", new Class<?>[] {Class.class, String.class});
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- public Object getPropertyObj(Class<?> propertyType, String name) {
- try {
-
- return getPropertyObj.invoke(tie, propertyType, name);
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ReferenceAnnotationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ReferenceAnnotationProcessor.java
deleted file mode 100644
index 24761d2cfa..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/ReferenceAnnotationProcessor.java
+++ /dev/null
@@ -1,167 +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.processor.tie;
-
-import java.beans.PropertyDescriptor;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-import org.oasisopen.sca.annotation.Reference;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.FatalBeanException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.util.Assert;
-import org.springframework.util.ReflectionUtils;
-
-public class ReferenceAnnotationProcessor implements BeanPostProcessor {
-
- private Class<? extends Annotation> referenceAnnotationType = Reference.class;
- private ComponentStub component;
-
- public ReferenceAnnotationProcessor(ComponentStub component) {
- this.component = component;
- }
-
- /**
- * Gets referece annotation type.
- */
- protected Class<? extends Annotation> getReferenceAnnotationType() {
- return this.referenceAnnotationType;
- }
-
- /**
- * Sets referece annotation type.
- */
- public void setReferenceAnnotationType(Class<? extends Annotation> referenceAnnotationType) {
- Assert.notNull(referenceAnnotationType, "'referenceAnnotationType' type must not be null.");
- this.referenceAnnotationType = referenceAnnotationType;
- }
-
- /**
- * This method is used to execute before a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- processAnnotation(bean);
- return bean;
- }
-
- /**
- * This method is used to execute after a bean's initialization callback.
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object, java.lang.String)
- */
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- return bean;
- }
-
- /**
- * <p>Processes a beans fields for injection if it has a {@link Reference} annotation.</p>
- */
- protected void processAnnotation(final Object bean) {
-
- final Class<?> clazz = bean.getClass();
-
- ReflectionUtils.doWithMethods(clazz, new ReflectionUtils.MethodCallback() {
- public void doWith(Method method) {
-
- Reference annotation = (Reference)method.getAnnotation(getReferenceAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(method.getModifiers())) {
- throw new IllegalStateException("Reference annotation is not supported on static methods");
- }
-
- /*
- if (Modifier.isPrivate(method.getModifiers())) {
- throw new IllegalStateException("Reference annotation is not supported on private methods");
- }
- */
-
- if (method.getParameterTypes().length == 0) {
- throw new IllegalStateException(
- "Reference annotation requires at least one argument: " + method);
- }
-
- PropertyDescriptor pd = BeanUtils.findPropertyForMethod(method);
- if (pd != null) {
- String refName = annotation.name();
- if ("".equals(refName)) {
- injectReference(bean, pd, pd.getName());
- } else {
- injectReference(bean, pd, refName);
- }
- }
- }
- }
- });
-
- ReflectionUtils.doWithFields(clazz, new ReflectionUtils.FieldCallback() {
- public void doWith(Field field) {
-
- Reference annotation = (Reference)field.getAnnotation(getReferenceAnnotationType());
-
- if (annotation != null) {
- if (Modifier.isStatic(field.getModifiers())) {
- throw new IllegalStateException("Reference annotation is not supported on static fields");
- }
-
- /*
- if (Modifier.isPrivate(field.getModifiers())) {
- throw new IllegalStateException("Reference annotation is not supported on private fields");
- }
- */
-
- ReflectionUtils.makeAccessible(field);
-
- Object referenceObj = null;
- String refName = annotation.name();
- if ("".equals(refName)) {
- referenceObj = component.getService(field.getType(), field.getName());
- } else {
- referenceObj = component.getService(field.getType(), refName);
- }
-
- if (referenceObj != null)
- ReflectionUtils.setField(field, bean, referenceObj);
- }
- }
- });
- }
-
- /**
- * Processes a property descriptor to inject a service.
- */
- public void injectReference(Object bean, PropertyDescriptor pd, String name) {
-
- Object referenceObj = component.getService(pd.getPropertyType(), name);
-
- if (referenceObj != null) {
- try {
- pd.getWriteMethod().invoke(bean, new Object[] {referenceObj});
- } catch (Throwable e) {
- throw new FatalBeanException("Problem injecting reference: " + e.getMessage(), e);
- }
- }
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/SpringXMLLoaderTie.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/SpringXMLLoaderTie.java
deleted file mode 100644
index 82aa176219..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/tie/SpringXMLLoaderTie.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.processor.tie;
-
-import java.net.URL;
-import java.util.List;
-
-import org.apache.tuscany.sca.implementation.spring.context.tie.SCAGenericApplicationContext;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.ApplicationContext;
-import org.springframework.core.io.UrlResource;
-
-/**
- * A tie that allows Tuscany to call Spring library to load the application context for the purpose of introspection
- */
-public class SpringXMLLoaderTie {
-
- public static ApplicationContext createApplicationContext(Object scaParentContext,
- ClassLoader classLoader,
- List<URL> resources) {
- if (classLoader == null) {
- classLoader = Thread.currentThread().getContextClassLoader();
- }
-
- SCAGenericApplicationContext appCtx =
- new SCAGenericApplicationContext((ApplicationContext)scaParentContext, classLoader);
- XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(appCtx);
-
- // REVIEW: [rfeng] How do we control the schema validation
- xmlReader.setValidating(false);
-
- for (URL resource : resources) {
- xmlReader.loadBeanDefinitions(new UrlResource(resource));
- }
-
- return appCtx;
-
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/META-INF/spring.handlers b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/META-INF/spring.handlers
deleted file mode 100644
index e7b61bfe48..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/META-INF/spring.handlers
+++ /dev/null
@@ -1 +0,0 @@
-http\://www.springframework.org/schema/sca=org.apache.tuscany.sca.implementation.spring.namespace.tie.ScaNamespaceHandler
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/META-INF/spring.schemas b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/META-INF/spring.schemas
deleted file mode 100644
index 249cc21c13..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/META-INF/spring.schemas
+++ /dev/null
@@ -1 +0,0 @@
-http\://www.osoa.org/xmlns/sca/1.0/spring-sca.xsd=org/springframework/sca/xml/spring-sca.xsd
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/org/springframework/sca/xml/spring-sca.xsd b/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/org/springframework/sca/xml/spring-sca.xsd
deleted file mode 100644
index dfa0b931f6..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring-tie/src/main/resources/org/springframework/sca/xml/spring-sca.xsd
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<xsd:schema xmlns="http://www.springframework.org/schema/sca" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- attributeFormDefault="unqualified" elementFormDefault="qualified"
- targetNamespace="http://www.springframework.org/schema/sca">
-
- <xsd:element name="reference">
- <xsd:complexType>
- <xsd:attribute name="name" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="type" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="default" use="optional">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="property">
- <xsd:complexType>
- <xsd:attribute name="id" use="optional">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="name" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="type" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="service">
- <xsd:complexType>
- <xsd:attribute name="name" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="type" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name="target" use="required">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string" />
- </xsd:simpleType>
- </xsd:attribute>
- </xsd:complexType>
- </xsd:element>
-
-</xsd:schema>
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/LICENSE b/sca-java-2.x/trunk/contrib/modules/implementation-spring/LICENSE
deleted file mode 100644
index 6e529a25c4..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
-
-
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/META-INF/MANIFEST.MF b/sca-java-2.x/trunk/contrib/modules/implementation-spring/META-INF/MANIFEST.MF
deleted file mode 100644
index 9226b047d7..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,50 +0,0 @@
-Manifest-Version: 1.0
-SCA-Version: 1.1
-Bundle-Name: Apache Tuscany SCA Spring Implementation Model
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0.0
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Spring Implementation Model
-Import-Package: javax.jws,
- javax.xml.namespace,
- javax.xml.stream,
- org.apache.tuscany.sca.assembly;version="2.0.0",
- org.apache.tuscany.sca.assembly.builder;version="2.0.0",
- org.apache.tuscany.sca.assembly.impl;version="2.0.0",
- org.apache.tuscany.sca.assembly.xml;version="2.0.0",
- org.apache.tuscany.sca.context;version="2.0.0",
- org.apache.tuscany.sca.contribution;version="2.0.0",
- org.apache.tuscany.sca.contribution.processor;version="2.0.0",
- org.apache.tuscany.sca.contribution.resolver;version="2.0.0",
- org.apache.tuscany.sca.core;version="2.0.0",
- org.apache.tuscany.sca.core.factory;version="2.0.0",
- org.apache.tuscany.sca.core.invocation;version="2.0.0",
- org.apache.tuscany.sca.databinding;version="2.0.0",
- org.apache.tuscany.sca.databinding.impl;version="2.0.0",
- org.apache.tuscany.sca.implementation.java;version="2.0.0",
- org.apache.tuscany.sca.implementation.java.injection;version="2.0.0",
- org.apache.tuscany.sca.implementation.java.introspect;version="2.0.0",
- org.apache.tuscany.sca.implementation.java.introspect.impl;version="2.0.0",
- org.apache.tuscany.sca.interfacedef;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.java;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.java.impl;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.util;version="2.0.0",
- org.apache.tuscany.sca.invocation;version="2.0.0",
- org.apache.tuscany.sca.monitor;version="2.0.0",
- org.apache.tuscany.sca.policy;version="2.0.0",
- org.apache.tuscany.sca.provider;version="2.0.0",
- org.apache.tuscany.sca.runtime;version="2.0.0",
- org.oasisopen.sca;version="2.0.0",
- org.oasisopen.sca.annotation;version="2.0.0"
-Bundle-SymbolicName: org.apache.tuscany.sca.implementation.spring
-Bundle-DocURL: http://www.apache.org/
-Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6
-Export-Package: org.apache.tuscany.sca.implementation.spring;version="2.0.0",
- org.apache.tuscany.sca.implementation.spring.xml;version="2.0.0";
- uses:="javax.xml.stream,
- org.apache.tuscany.sca.contribution.resolver,
- org.apache.tuscany.sca.implementation.spring,
- org.apache.tuscany.sca.contribution.processor,
- org.apache.tuscany.sca.core,
- javax.xml.namespace"
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/NOTICE b/sca-java-2.x/trunk/contrib/modules/implementation-spring/NOTICE
deleted file mode 100644
index 1325efd8bf..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2008 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/pom.xml b/sca-java-2.x/trunk/contrib/modules/implementation-spring/pom.xml
deleted file mode 100644
index 371bde71b9..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/pom.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-implementation-spring</artifactId>
- <name>Apache Tuscany SCA Spring Implementation Model</name>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-assembly</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-assembly-xml</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-sca-api</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-implementation-java</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- </dependencies>
-</project>
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringBeanElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringBeanElement.java
deleted file mode 100644
index 64b36a0a44..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringBeanElement.java
+++ /dev/null
@@ -1,132 +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.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a <bean> element in a Spring application-context
- * - this has id and className attributes
- * - plus zero or more property elements as children
- *
- * @version $Rev$ $Date$
- */
-public class SpringBeanElement {
-
- private String id;
- private String className = null;
- private boolean innerBean = false;
- private boolean abstractBean = false;
- private boolean parentAttribute = false;
- private boolean factoryBeanAttribute = false;
- private boolean factoryMethodAttribute = false;
-
- private List<SpringPropertyElement> properties = new ArrayList<SpringPropertyElement>();
- private List<SpringConstructorArgElement> constructorargs = new ArrayList<SpringConstructorArgElement>();
-
- public SpringBeanElement() {
- }
-
- public SpringBeanElement(String id, String className) {
- this.id = id;
- this.className = className;
- }
-
- public String getClassName() {
- return className;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public List<SpringPropertyElement> getProperties() {
- return properties;
- }
-
- public void addProperty(SpringPropertyElement property) {
- properties.add(property);
- }
-
- public List<SpringConstructorArgElement> getCustructorArgs() {
- return constructorargs;
- }
-
- public void addCustructorArgs(SpringConstructorArgElement args) {
- constructorargs.add(args);
- }
-
- public boolean isInnerBean() {
- return innerBean;
- }
-
- public void setInnerBean(boolean innerBean) {
- this.innerBean = innerBean;
- }
-
- public boolean isAbstractBean() {
- return abstractBean;
- }
-
- public void setAbstractBean(boolean abstractBean) {
- this.abstractBean = abstractBean;
- }
-
- public boolean hasParentAttribute() {
- return parentAttribute;
- }
-
- public void setParentAttribute(boolean parentAttribute) {
- this.parentAttribute = parentAttribute;
- }
-
- public boolean hasFactoryBeanAttribute() {
- return factoryBeanAttribute;
- }
-
- public void setFactoryBeanAttribute(boolean factoryBeanAttribute) {
- this.factoryBeanAttribute = factoryBeanAttribute;
- }
-
- public boolean hasFactoryMethodAttribute() {
- return factoryMethodAttribute;
- }
-
- public void setFactoryMethodAttribute(boolean factoryMethodAttribute) {
- this.factoryMethodAttribute = factoryMethodAttribute;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringBeanElement [id=").append(id).append(", className=").append(className)
- .append(", innerBean=").append(innerBean).append(", abstractBean=").append(abstractBean)
- .append(", parentAttribute=").append(parentAttribute).append(", factoryBeanAttribute=")
- .append(factoryBeanAttribute).append(", factoryMethodAttribute=").append(factoryMethodAttribute)
- .append(", properties=").append(properties).append(", constructorargs=").append(constructorargs)
- .append("]");
- return builder.toString();
- }
-
-} // end class SpringBeanElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringConstructorArgElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringConstructorArgElement.java
deleted file mode 100644
index 1de0595d60..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringConstructorArgElement.java
+++ /dev/null
@@ -1,90 +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.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a <constructor-arg> element in a Spring application-context
- * - this has ref attribute
- *
- * @version $Rev$ $Date$
- */
-public class SpringConstructorArgElement {
-
- private String type;
- private int autoIndex = -1;
- private int index = -1;
- private List<String> refs = new ArrayList<String>();
- private List<String> values = new ArrayList<String>();
-
- public SpringConstructorArgElement() {
-
- }
-
- public SpringConstructorArgElement(String type) {
- this.type = type;
- }
-
- public String getType() {
- return this.type;
- }
-
- public List<String> getRefs() {
- return this.refs;
- }
-
- public void addRef(String ref) {
- this.refs.add(ref);
- }
-
- public int getIndex() {
- return this.index;
- }
-
- public void setIndex(int index) {
- this.index = index;
- }
-
- public int getAutoIndex() {
- return this.autoIndex;
- }
-
- public void setAutoIndex(int index) {
- this.autoIndex = index;
- }
-
- public List<String> getValues() {
- return this.values;
- }
-
- public void addValue(String value) {
- this.values.add(value);
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringConstructorArgElement [type=").append(type).append(", autoIndex=").append(autoIndex)
- .append(", index=").append(index).append(", refs=").append(refs).append(", values=").append(values)
- .append("]");
- return builder.toString();
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
deleted file mode 100644
index a5d4adb1bb..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
+++ /dev/null
@@ -1,259 +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.net.URL;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.Component;
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.Extensible;
-import org.apache.tuscany.sca.assembly.Implementation;
-import org.apache.tuscany.sca.assembly.Property;
-import org.apache.tuscany.sca.assembly.Reference;
-import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.impl.ImplementationImpl;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-
-/**
- * Represents a Spring implementation.
- *
- * @version $Rev$ $Date$
- */
-public class SpringImplementation extends ImplementationImpl implements Implementation, Extensible {
- public final static QName TYPE = new QName(SCA11_NS, "implementation.spring");
- // The location attribute which points to the Spring application-context XML file
- private String location;
- // The application-context file as a Spring Resource
- private List<URL> resource;
- private ComponentType componentType;
- // Mapping of Services to Beans
- private Map<String, SpringBeanElement> serviceMap;
- // Mapping of property names to Java class
- private Map<String, Class<?>> propertyMap;
- // List of unresolved bean property references
- private Map<String, Reference> unresolvedBeanRef;
- private ClassLoader classLoader;
-
- public SpringImplementation() {
- super(TYPE);
- this.location = null;
- this.resource = null;
- setUnresolved(true);
- serviceMap = new HashMap<String, SpringBeanElement>();
- propertyMap = new HashMap<String, Class<?>>();
- unresolvedBeanRef = new HashMap<String, Reference>();
- } // end method SpringImplementation
-
- /* Returns the location attribute for this Spring implementation */
- public String getLocation() {
- return location;
- }
-
- /**
- * Sets the location attribute for this Spring implementation
- * location - a URI to the Spring application-context file
- */
- public void setLocation(String location) {
- this.location = location;
- return;
- }
-
- public void setResource(List<URL> resource) {
- this.resource = resource;
- }
-
- public List<URL> getResource() {
- return resource;
- }
-
- /*
- * Returns the componentType for this Spring implementation
- */
- public ComponentType getComponentType() {
- return componentType;
- }
-
- /*
- * Sets the componentType for this Spring implementation
- */
- public void setComponentType(ComponentType componentType) {
- this.componentType = componentType;
- }
-
- @Override
- public List<Service> getServices() {
- return componentType.getServices();
- }
-
- @Override
- public List<Reference> getReferences() {
- return componentType.getReferences();
- }
-
- @Override
- public List<Property> getProperties() {
- return componentType.getProperties();
- }
-
- /**
- * Returns the Spring Bean which implements a particular service
- * @param service the service
- * @return the bean which implements the service, as a SpringBeanElement
- */
- public SpringBeanElement getBeanFromService(Service service) {
- SpringBeanElement theBean = serviceMap.get(service.getName());
- return theBean;
- }
-
- /**
- * Sets the mapping from a service to the Spring Bean that implements the service
- * @param service the service
- * @param theBean a SpringBeanElement for the Bean implementing the service
- */
- public void setBeanForService(Service service, SpringBeanElement theBean) {
- serviceMap.put(service.getName(), theBean);
- }
-
- /**
- * Add a mapping from a SCA property name to a Java class for the property
- * @param propertyName
- * @param propertyClass
- */
- public void setPropertyClass(String propertyName, Class<?> propertyClass) {
- if (propertyName == null || propertyClass == null)
- return;
- propertyMap.put(propertyName, propertyClass);
- return;
- } // end method setPropertyClass
-
- /**
- * Gets the Java Class for an SCA property
- * @param propertyName - the property name
- * @return - a Class object for the type of the property
- */
- public Class<?> getPropertyClass(String propertyName) {
- return propertyMap.get(propertyName);
- } // end method getPropertyClass
-
- public void setUnresolvedBeanRef(String refName, Reference reference) {
- if (refName == null || reference == null)
- return;
- unresolvedBeanRef.put(refName, reference);
- return;
- } // end method setUnresolvedBeanRef
-
- public Reference getUnresolvedBeanRef(String refName) {
- return unresolvedBeanRef.get(refName);
- } // end method getUnresolvedBeanRef
-
- /**
- * Use preProcess to validate and map the references and properties dynamically
- */
- public void build(Component component) {
-
- for (Reference reference : component.getReferences()) {
- if (unresolvedBeanRef.containsKey(reference.getName())) {
- Reference ref = unresolvedBeanRef.get(reference.getName());
- componentType.getReferences().add(createReference(reference, ref.getInterfaceContract()));
- unresolvedBeanRef.remove(reference.getName());
- }
- }
-
- for (Property property : component.getProperties()) {
- if (unresolvedBeanRef.containsKey(property.getName())) {
- componentType.getProperties().add(createProperty(property));
- this.setPropertyClass(property.getName(), property.getClass());
- unresolvedBeanRef.remove(property.getName());
- }
- }
- }
-
- protected Reference createReference(Reference reference, InterfaceContract interfaze) {
- Reference newReference;
- try {
- newReference = (Reference)reference.clone();
- if (newReference.getInterfaceContract() == null)
- newReference.setInterfaceContract(interfaze);
- } catch (CloneNotSupportedException e) {
- throw new AssertionError(e); // should not ever happen
- }
- return newReference;
- }
-
- protected Property createProperty(Property property) {
- Property newProperty;
- try {
- newProperty = (Property)property.clone();
- } catch (CloneNotSupportedException e) {
- throw new AssertionError(e); // should not ever happen
- }
- return newProperty;
- }
-
- public ClassLoader getClassLoader() {
- return classLoader;
- }
-
- public void setClassLoader(ClassLoader classLoader) {
- this.classLoader = classLoader;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = super.hashCode();
- result = prime * result + ((location == null) ? 0 : location.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (!super.equals(obj)) {
- return false;
- }
- if (!(obj instanceof SpringImplementation)) {
- return false;
- }
- SpringImplementation other = (SpringImplementation)obj;
- if (location == null) {
- if (other.location != null) {
- return false;
- }
- } else if (!location.equals(other.location)) {
- return false;
- }
- return true;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringImplementation [location=").append(location).append(", resource=").append(resource)
- .append("]");
- return builder.toString();
- }
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java
deleted file mode 100644
index 1a246fa03a..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java
+++ /dev/null
@@ -1,41 +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 javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.Component;
-import org.apache.tuscany.sca.assembly.builder.BuilderContext;
-import org.apache.tuscany.sca.assembly.builder.ImplementationBuilder;
-
-/**
- *
- */
-public class SpringImplementationBuilder implements ImplementationBuilder<SpringImplementation> {
-
- public void build(Component component, SpringImplementation implmentation, BuilderContext context) {
- implmentation.build(component);
- }
-
- public QName getImplementationType() {
- return SpringImplementation.TYPE;
- }
-
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationConstants.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationConstants.java
deleted file mode 100644
index 27c09c1f18..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationConstants.java
+++ /dev/null
@@ -1,73 +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 javax.xml.namespace.QName;
-
-/**
- * Constants used in Spring Application Context XML files.
- */
-public interface SpringImplementationConstants {
-
- String SCA_NS = "http://www.springframework.org/schema/sca";
- String SPRING_NS = "http://www.springframework.org/schema/beans";
-
- String PROPERTY = "property";
- QName SCA_PROPERTY_ELEMENT = new QName(SCA_NS, PROPERTY);
- QName PROPERTY_ELEMENT = new QName(SPRING_NS, PROPERTY);
-
- String SCASERVICE = "service";
- QName SCA_SERVICE_ELEMENT = new QName(SCA_NS, SCASERVICE);
-
- String SCAREFERENCE = "reference";
- QName SCA_REFERENCE_ELEMENT = new QName(SCA_NS, SCAREFERENCE);
-
- String BEANS = "beans";
- QName BEANS_ELEMENT = new QName(SPRING_NS, BEANS);
-
- String IMPORT = "import";
- QName IMPORT_ELEMENT = new QName(SPRING_NS, IMPORT);
-
- String BEAN = "bean";
- QName BEAN_ELEMENT = new QName(SPRING_NS, BEAN);
-
- String CONSTRUCTORARG = "constructor-arg";
- QName CONSTRUCTORARG_ELEMENT = new QName(SPRING_NS, CONSTRUCTORARG);
-
- String LIST = "list";
- QName LIST_ELEMENT = new QName(SPRING_NS, LIST);
-
- String SET = "set";
- QName SET_ELEMENT = new QName(SPRING_NS, SET);
-
- String MAP = "map";
- QName MAP_ELEMENT = new QName(SPRING_NS, MAP);
-
- String VALUE = "value";
- QName VALUE_ELEMENT = new QName(SPRING_NS, VALUE);
-
- String REF = "ref";
- QName REF_ELEMENT = new QName(SPRING_NS, REF);
-
- String ENTRY = "entry";
- QName ENTRY_ELEMENT = new QName(SPRING_NS, ENTRY);
-
- String APPLICATION_CONTEXT = "application-context.xml";
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringPropertyElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringPropertyElement.java
deleted file mode 100644
index 8de3a4cbe1..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringPropertyElement.java
+++ /dev/null
@@ -1,71 +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.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a <property> element in a Spring application-context
- * - this has name and ref attributes
- *
- * @version $Rev$ $Date$
- */
-public class SpringPropertyElement {
-
- private String name;
- private List<String> refs = new ArrayList<String>();
- private List<String> values = new ArrayList<String>();
-
- public SpringPropertyElement() {
- }
-
- public SpringPropertyElement(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public List<String> getRefs() {
- return this.refs;
- }
-
- public void addRef(String ref) {
- this.refs.add(ref);
- }
-
- public List<String> getValues() {
- return this.values;
- }
-
- public void addValue(String value) {
- this.values.add(value);
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringPropertyElement [name=").append(name).append(", refs=").append(refs).append(", values=")
- .append(values).append("]");
- return builder.toString();
- }
-
-} // end class SpringPropertyElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAPropertyElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAPropertyElement.java
deleted file mode 100644
index f27506f28b..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAPropertyElement.java
+++ /dev/null
@@ -1,63 +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;
-
-/**
- * Represents an <sca:property> element in a Spring application-context
- * - this has name and type attributes
- * @version $Rev$ $Date$
- */
-public class SpringSCAPropertyElement {
-
- private String name;
- private String type;
-
- public SpringSCAPropertyElement() {
- super();
- }
-
- public SpringSCAPropertyElement(String name, String type) {
- this.name = name;
- this.type = type;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getType() {
- return type;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringSCAPropertyElement [name=").append(name).append(", type=").append(type).append("]");
- return builder.toString();
- }
-
-} // end class SpringPropertyElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAReferenceElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAReferenceElement.java
deleted file mode 100644
index 74cd3f4290..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAReferenceElement.java
+++ /dev/null
@@ -1,92 +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.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicySet;
-
-/**
- * Represents a <sca:reference> element in a Spring application-context
- * - this has id and className attributes
- * - plus zero or more property elements as children
- *
- * @version $Rev$ $Date$
- */
-public class SpringSCAReferenceElement {
-
- private String name;
- private String type;
- private String defaultBean;
- private List<Intent> intents = new ArrayList<Intent>();
- private List<PolicySet> policySets = new ArrayList<PolicySet>();
-
- public SpringSCAReferenceElement() {
-
- }
-
- public SpringSCAReferenceElement(String name, String type) {
- this.name = name;
- this.type = type;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getType() {
- return type;
- }
-
- public void setDefaultBean(String defaultBean) {
- this.defaultBean = defaultBean;
- }
-
- public String getDefaultBean() {
- return defaultBean;
- }
-
- public List<Intent> getRequiredIntents() {
- return intents;
- }
-
- public List<PolicySet> getPolicySets() {
- return policySets;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringSCAReferenceElement [name=").append(name).append(", type=").append(type)
- .append(", defaultBean=").append(defaultBean).append(", intents=").append(intents).append(", policySets=")
- .append(policySets).append("]");
- return builder.toString();
- }
-
-} // end class SpringSCAReferenceElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAServiceElement.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAServiceElement.java
deleted file mode 100644
index 181bd7a787..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAServiceElement.java
+++ /dev/null
@@ -1,92 +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.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicySet;
-
-/**
- * Represents a <sca:service> element in a Spring application-context
- * - this has id and className attributes
- * - plus zero or more property elements as children
- *
- * @version $Rev$ $Date$
- */
-public class SpringSCAServiceElement {
-
- private String name;
- private String type;
- private String target;
- private List<Intent> intents = new ArrayList<Intent>();
- private List<PolicySet> policySets = new ArrayList<PolicySet>();
-
- public SpringSCAServiceElement() {
-
- }
-
- public SpringSCAServiceElement(String name, String target) {
- this.name = name;
- this.target = target;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getType() {
- return type;
- }
-
- public void setTarget(String target) {
- this.target = target;
- }
-
- public String getTarget() {
- return target;
- }
-
- public List<Intent> getRequiredIntents() {
- return intents;
- }
-
- public List<PolicySet> getPolicySets() {
- return policySets;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("SpringSCAServiceElement [name=").append(name).append(", type=").append(type)
- .append(", target=").append(target).append(", intents=").append(intents).append(", policySets=")
- .append(policySets).append("]");
- return builder.toString();
- }
-
-} // end class SpringSCAServiceElement
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringBeanIntrospector.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringBeanIntrospector.java
deleted file mode 100644
index 5eaf27ab81..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringBeanIntrospector.java
+++ /dev/null
@@ -1,95 +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.introspect;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.implementation.java.IntrospectionException;
-import org.apache.tuscany.sca.implementation.java.JavaImplementation;
-import org.apache.tuscany.sca.implementation.java.JavaImplementationFactory;
-import org.apache.tuscany.sca.implementation.spring.SpringConstructorArgElement;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-
-/**
- * Provides introspection functions for Spring beans
- * This version leans heavily on the implementation-java classes
- *
- * @version $Rev$ $Date$
- */
-public class SpringBeanIntrospector {
-
- private JavaImplementationFactory javaImplementationFactory;
-
- /**
- * The constructor sets up the various visitor elements that will be used to introspect
- * the Spring bean and extract SCA information.
- *
- * @param assemblyFactory The Assembly Factory to use
- * @param javaFactory The Java Interface Factory to use
- * @param policyFactory The Policy Factory to use.
- */
- public SpringBeanIntrospector(ExtensionPointRegistry registry, List<SpringConstructorArgElement> conArgs) {
-
- FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class);
- javaImplementationFactory = factories.getFactory(JavaImplementationFactory.class);
- } // end constructor
-
- /**
- * Introspect a Spring Bean and extract the features important to SCA
- * @param beanClass the Spring Bean class to introspect
- * @param componentType the componentType that is filled in through the introspection
- * process (assumed empty on invocation, filled on return
- * @return a Map of property names to JavaElementImpl
- * @throws ContributionResolveException - if there was a problem resolving the
- * Spring Bean or its componentType
- *
- */
- public JavaImplementation introspectBean(Class<?> beanClass, ComponentType componentType)
- throws ContributionResolveException {
- if (componentType == null)
- throw new ContributionResolveException("Introspect Spring bean: supplied componentType is null");
-
- // Create a Java implementation ready for the introspection
- JavaImplementation javaImplementation = javaImplementationFactory.createJavaImplementation();
- // Set the type to be implementation.spring to avoid heuristic introspection
- javaImplementation.setType(SpringImplementation.TYPE);
-
- try {
- // Introspect the bean...the results of the introspection are placed into the Java implementation
- javaImplementationFactory.createJavaImplementation(javaImplementation, beanClass);
-
- // Extract the services, references & properties found through introspection
- // put the services, references and properties into the component type
- componentType.getServices().addAll(javaImplementation.getServices());
- componentType.getReferences().addAll(javaImplementation.getReferences());
- componentType.getProperties().addAll(javaImplementation.getProperties());
-
- } catch (IntrospectionException e) {
- throw new ContributionResolveException(e);
- } // end try
-
- return javaImplementation;
-
- } // end method introspectBean
-
-} // end class SpringBeanIntrospector
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java
deleted file mode 100644
index 2730ee3146..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java
+++ /dev/null
@@ -1,917 +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.introspect;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.jar.Attributes;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.Multiplicity;
-import org.apache.tuscany.sca.assembly.Property;
-import org.apache.tuscany.sca.assembly.Reference;
-import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.contribution.Artifact;
-import org.apache.tuscany.sca.contribution.ContributionFactory;
-import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
-import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
-import org.apache.tuscany.sca.contribution.resolver.ClassReference;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.implementation.java.JavaConstructorImpl;
-import org.apache.tuscany.sca.implementation.java.JavaElementImpl;
-import org.apache.tuscany.sca.implementation.java.JavaImplementation;
-import org.apache.tuscany.sca.implementation.java.JavaParameterImpl;
-import org.apache.tuscany.sca.implementation.spring.SpringBeanElement;
-import org.apache.tuscany.sca.implementation.spring.SpringConstructorArgElement;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-import org.apache.tuscany.sca.implementation.spring.SpringPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAReferenceElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAServiceElement;
-import org.apache.tuscany.sca.implementation.spring.xml.SpringXMLBeanDefinitionLoader;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.util.JavaXMLMapper;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-
-/**
- * Introspects a Spring XML application-context configuration file to create <implementation-spring../>
- * component type information.
- *
- * @version $Rev$ $Date$
- */
-public class SpringXMLComponentTypeLoader {
- private final static Logger log = Logger.getLogger(SpringXMLComponentTypeLoader.class.getName());
-
- private ExtensionPointRegistry registry;
- private ContributionFactory contributionFactory;
- private AssemblyFactory assemblyFactory;
- private JavaInterfaceFactory javaFactory;
- private SpringBeanIntrospector beanIntrospector;
-
- private SpringXMLBeanDefinitionLoader xmlBeanDefinitionLoader;
-
- public SpringXMLComponentTypeLoader(ExtensionPointRegistry registry) {
- super();
- this.registry = registry;
- FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class);
- this.assemblyFactory = factories.getFactory(AssemblyFactory.class);
- this.javaFactory = factories.getFactory(JavaInterfaceFactory.class);
- this.contributionFactory = factories.getFactory(ContributionFactory.class);
- this.xmlBeanDefinitionLoader =
- registry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(SpringXMLBeanDefinitionLoader.class);
- }
-
- /**
- * Report a error.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(Monitor monitor, String message, Object model, Object... messageParameters) {
- if (monitor != null) {
- Problem problem =
- monitor.createProblem(this.getClass().getName(),
- "impl-spring-validation-messages",
- Severity.ERROR,
- model,
- message,
- (Object[])messageParameters);
- monitor.problem(problem);
- }
- }
-
- protected Class<SpringImplementation> getImplementationClass() {
- return SpringImplementation.class;
- }
-
- /**
- * Base method which loads the component type from the application-context attached to the
- * Spring implementation
- *
- */
- public void load(SpringImplementation implementation, ModelResolver resolver, ProcessorContext context)
- throws ContributionReadException {
- //System.out.println("Spring TypeLoader - load method start");
- ComponentType componentType = implementation.getComponentType();
- /* Check that there is a component type object already set */
- if (componentType == null) {
- throw new ContributionReadException("SpringXMLLoader load: implementation has no ComponentType object");
- }
- if (componentType.isUnresolved()) {
- /* Fetch the location of the application-context file from the implementation */
- loadFromXML(implementation, resolver, context);
- if (!componentType.isUnresolved())
- implementation.setUnresolved(false);
- } // end if
- //System.out.println("Spring TypeLoader - load method complete");
- } // end method load
-
- private Class<?> resolveClass(ModelResolver resolver, String className, ProcessorContext context)
- throws ClassNotFoundException {
- ClassReference classReference = new ClassReference(className);
- classReference = resolver.resolveModel(ClassReference.class, classReference, context);
- if (classReference.isUnresolved()) {
- throw new ClassNotFoundException(className);
- }
- Class<?> javaClass = classReference.getJavaClass();
- return javaClass;
- }
-
- /**
- * Method which fills out the component type for a Spring implementation by reading the
- * Spring application-context.xml file.
- *
- * @param implementation SpringImplementation into which to load the component type information
- * @throws ContributionReadException Failed to read the contribution
- */
- private void loadFromXML(SpringImplementation implementation, ModelResolver resolver, ProcessorContext context)
- throws ContributionReadException {
- List<SpringBeanElement> beans = new ArrayList<SpringBeanElement>();
- List<SpringSCAServiceElement> services = new ArrayList<SpringSCAServiceElement>();
- List<SpringSCAReferenceElement> references = new ArrayList<SpringSCAReferenceElement>();
- List<SpringSCAPropertyElement> scaproperties = new ArrayList<SpringSCAPropertyElement>();
-
- URL resource;
- List<URL> contextResources = new ArrayList<URL>();
- String contextPath = implementation.getLocation();
-
- try {
- resource = resolveLocation(resolver, contextPath, context);
- contextResources = getApplicationContextResource(resource);
-
- implementation.setClassLoader(new ContextClassLoader(resolver, context));
- implementation.setResource(contextResources);
- // The URI is used to uniquely identify the Implementation
- implementation.setURI(resource.toString());
-
- List<SpringBeanElement> appCxtBeans = new ArrayList<SpringBeanElement>();
- List<SpringSCAServiceElement> appCxtServices = new ArrayList<SpringSCAServiceElement>();
- List<SpringSCAReferenceElement> appCxtReferences = new ArrayList<SpringSCAReferenceElement>();
- List<SpringSCAPropertyElement> appCxtProperties = new ArrayList<SpringSCAPropertyElement>();
-
- if (xmlBeanDefinitionLoader != null) {
- xmlBeanDefinitionLoader.load(contextResources,
- appCxtServices,
- appCxtReferences,
- appCxtProperties,
- appCxtBeans,
- context);
- }
- // Validate the beans from individual application context for uniqueness
- validateBeans(appCxtBeans, appCxtServices, appCxtReferences, appCxtProperties, context.getMonitor());
- // Add all the validated beans to the generic list
- beans.addAll(appCxtBeans);
- services.addAll(appCxtServices);
- references.addAll(appCxtReferences);
- scaproperties.addAll(appCxtProperties);
- } catch (Throwable e) {
- throw new ContributionReadException(e);
- }
-
- /* At this point, the complete application-context.xml file has been read and its contents */
- /* stored in the lists of beans, services, references. These are now used to generate */
- /* the implied componentType for the application context */
- generateComponentType(implementation, resolver, beans, services, references, scaproperties, context);
-
- return;
- } // end method loadFromXML
-
- private URL resolveLocation(ModelResolver resolver, String contextPath, ProcessorContext context)
- throws MalformedURLException, ContributionReadException {
- URL resource = null;
- URI uri = URI.create(contextPath);
- if (!uri.isAbsolute()) {
- Artifact parent = context.getArtifact();
- if (parent != null && parent.getURI() != null) {
- URI base = URI.create("/" + parent.getURI());
- uri = base.resolve(uri);
- // Remove the leading / to make artifact resolver happy
- if (uri.toString().startsWith("/")) {
- uri = URI.create(uri.toString().substring(1));
- }
- }
- Artifact artifact = contributionFactory.createArtifact();
- artifact.setUnresolved(true);
- artifact.setURI(uri.toString());
- artifact = resolver.resolveModel(Artifact.class, artifact, context);
- if (!artifact.isUnresolved()) {
- resource = new URL(artifact.getLocation());
- } else {
- throw new ContributionReadException("Location cannot be resloved: " + contextPath);
- }
- } else {
- resource = new URL(contextPath);
- }
- return resource;
- }
-
- /**
- * Generates the Spring implementation component type from the configuration contained in the
- * lists of beans, services, references and scaproperties derived from the application context
- */
- private void generateComponentType(SpringImplementation implementation,
- ModelResolver resolver,
- List<SpringBeanElement> beans,
- List<SpringSCAServiceElement> services,
- List<SpringSCAReferenceElement> references,
- List<SpringSCAPropertyElement> scaproperties,
- ProcessorContext context) throws ContributionReadException {
- /*
- * 1. Each sca:service becomes a service in the component type
- * 2. Each sca:reference becomes a reference in the component type
- * 3. Each sca:property becomes a property in the component type
- * 4. IF there are no explicit service elements, each bean becomes a service
- * 5. Each bean property which is a reference not pointing at another bean in the
- * application context becomes a reference unless it is pointing at one of the references
- * 6. Each bean property which is not a reference and which is not pointing
- * at another bean in the application context becomes a property in the component type
- */
-
- JavaImplementation javaImplementation = null;
- ComponentType componentType = implementation.getComponentType();
-
- try {
- // Deal with the services first....
- Iterator<SpringSCAServiceElement> its = services.iterator();
- while (its.hasNext()) {
- SpringSCAServiceElement serviceElement = its.next();
- Class<?> interfaze = resolveClass(resolver, serviceElement.getType(), context);
- Service theService = createService(interfaze, serviceElement.getName());
- // Spring allows duplication of bean definitions in multiple context scenario,
- // in such cases, the latest bean definition overrides the older ones, hence
- // we will remove any older definition and use the latest.
- Service duplicate = null;
- for (Service service : componentType.getServices()) {
- if (service.getName().equals(theService.getName()))
- duplicate = service;
- }
- if (duplicate != null)
- componentType.getServices().remove(duplicate);
-
- componentType.getServices().add(theService);
- // Add this service to the Service / Bean map
- String beanName = serviceElement.getTarget();
- for (SpringBeanElement beanElement : beans) {
- if (beanName.equals(beanElement.getId())) {
- if (isValidBeanForService(beanElement)) {
- // add the required intents and policySets for the service
- theService.getRequiredIntents().addAll(serviceElement.getRequiredIntents());
- theService.getPolicySets().addAll(serviceElement.getPolicySets());
- implementation.setBeanForService(theService, beanElement);
- }
- }
- } // end for
- } // end while
-
- // Next handle the references
- Iterator<SpringSCAReferenceElement> itr = references.iterator();
- while (itr.hasNext()) {
- SpringSCAReferenceElement referenceElement = itr.next();
- Class<?> interfaze = resolveClass(resolver, referenceElement.getType(), context);
- Reference theReference = createReference(interfaze, referenceElement.getName());
- // Override the older bean definition with the latest ones
- // for the duplicate definitions found.
- Reference duplicate = null;
- for (Reference reference : componentType.getReferences()) {
- if (reference.getName().equals(theReference.getName()))
- duplicate = reference;
- }
- if (duplicate != null)
- componentType.getReferences().remove(duplicate);
-
- // add the required intents and policySets for this reference
- theReference.getRequiredIntents().addAll(referenceElement.getRequiredIntents());
- theReference.getPolicySets().addAll(referenceElement.getPolicySets());
- componentType.getReferences().add(theReference);
- } // end while
-
- // Next handle the properties
- Iterator<SpringSCAPropertyElement> itsp = scaproperties.iterator();
- while (itsp.hasNext()) {
- SpringSCAPropertyElement scaproperty = itsp.next();
- // Create a component type property if the SCA property element has a name
- // and a type declared...
- if (scaproperty.getType() != null && scaproperty.getName() != null) {
- Property theProperty = assemblyFactory.createProperty();
- theProperty.setName(scaproperty.getName());
- // Get the Java class and then an XSD element type for the property
- Class<?> propType = Class.forName(scaproperty.getType());
- theProperty.setXSDType(JavaXMLMapper.getXMLType(propType));
- // Override the older bean definition with the latest ones
- // for the duplicate definitions found.
- Property duplicate = null;
- for (Property property : componentType.getProperties()) {
- if (property.getName().equals(theProperty.getName()))
- duplicate = property;
- }
- if (duplicate != null)
- componentType.getProperties().remove(duplicate);
-
- componentType.getProperties().add(theProperty);
- // Remember the Java Class (ie the type) for this property
- implementation.setPropertyClass(theProperty.getName(), propType);
- } // end if
- } // end while
-
- // Finally deal with the beans
- Iterator<SpringBeanElement> itb;
- // If there are no explicit service elements, then expose all the beans
- if (services.isEmpty()) {
- itb = beans.iterator();
- // Loop through all the beans found
- while (itb.hasNext()) {
- SpringBeanElement beanElement = itb.next();
-
- // If its not a valid bean for service, ignore it
- if (!isValidBeanForService(beanElement)) {
- continue;
- }
- try {
- // Load the Spring bean class
- Class<?> beanClass = resolveClass(resolver, beanElement.getClassName(), context);
- // Introspect the bean
- beanIntrospector = new SpringBeanIntrospector(registry, beanElement.getCustructorArgs());
- ComponentType beanComponentType = assemblyFactory.createComponentType();
- javaImplementation = beanIntrospector.introspectBean(beanClass, beanComponentType);
- // Set the service name as bean name
- for (Service componentService : beanComponentType.getServices()) {
- componentService.setName(beanElement.getId());
- }
- // Get the service interface defined by this Spring Bean and add to
- // the component type of the Spring Assembly
- List<Service> beanServices = beanComponentType.getServices();
- componentType.getServices().addAll(beanServices);
- // Add these services to the Service / Bean map
- for (Service beanService : beanServices) {
- implementation.setBeanForService(beanService, beanElement);
- }
- } catch (Throwable e) {
- // [rfeng] FIXME: Some Spring beans have constructors that take pararemters injected by Spring and
- // Tuscany is not happy with that during the introspection
- log.log(Level.SEVERE, e.getMessage(), e);
- }
- } // end while
- } // end if
-
- itb = beans.iterator();
- while (itb.hasNext()) {
- SpringBeanElement beanElement = itb.next();
-
- // If its not a valid bean for service, ignore it
- if (!isValidBeanForService(beanElement)) {
- continue;
- }
- // Ignore if the bean has no properties and constructor arguments
- if (beanElement.getProperties().isEmpty() && beanElement.getCustructorArgs().isEmpty())
- continue;
-
- ComponentType beanComponentType = assemblyFactory.createComponentType();
-
- try {
- Class<?> beanClass = resolveClass(resolver, beanElement.getClassName(), context);
- // Introspect the bean
- beanIntrospector = new SpringBeanIntrospector(registry, beanElement.getCustructorArgs());
- javaImplementation = beanIntrospector.introspectBean(beanClass, beanComponentType);
- } catch (Exception e) {
- // [rfeng] FIXME: Some Spring beans have constructors that take pararemters injected by Spring and
- // Tuscany is not happy with that during the introspection
- log.log(Level.SEVERE, e.getMessage(), e);
- continue;
- }
- Map<String, JavaElementImpl> propertyMap = javaImplementation.getPropertyMembers();
- JavaConstructorImpl constructor = javaImplementation.getConstructor();
- // Get the references by this Spring Bean and add the unresolved ones to
- // the component type of the Spring Assembly
- List<Reference> beanReferences = beanComponentType.getReferences();
- List<Property> beanProperties = beanComponentType.getProperties();
-
- Set<String> excludedNames = new HashSet<String>();
- Iterator<SpringPropertyElement> itp = beanElement.getProperties().iterator();
- while (itp.hasNext()) {
- SpringPropertyElement propertyElement = itp.next();
- // Exclude the reference that is also known as a spring property
- excludedNames.add(propertyElement.getName());
- for (String propertyRef : propertyElement.getRefs()) {
- if (propertyRefUnresolved(propertyRef, beans, references, scaproperties)) {
- // This means an unresolved reference from the spring bean...
- for (Reference reference : beanReferences) {
- if (propertyElement.getName().equals(reference.getName())) {
- // The name of the reference in this case is the string in
- // the @ref attribute of the Spring property element, NOT the
- // name of the field in the Spring bean....
- reference.setName(propertyRef);
- componentType.getReferences().add(reference);
- break;
- } // end if
- } // end for
-
- // Store the unresolved references as unresolvedBeanRef in the Spring Implementation type
- for (Property scaproperty : beanProperties) {
- if (propertyElement.getName().equals(scaproperty.getName())) {
- // The name of the reference in this case is the string in
- // the @ref attribute of the Spring property element, NOT the
- // name of the field in the Spring bean....
- Class<?> interfaze =
- resolveClass(resolver,
- (propertyMap.get(propertyElement.getName()).getType()).getName(),
- context);
- Reference theReference = createReference(interfaze, propertyRef);
- implementation.setUnresolvedBeanRef(propertyRef, theReference);
- break;
- } // end if
- } // end for
- } // end if
- } // end for
- } // end while
-
- Iterator<SpringConstructorArgElement> itcr = beanElement.getCustructorArgs().iterator();
- while (itcr.hasNext()) {
- SpringConstructorArgElement conArgElement = itcr.next();
- for (String constructorArgRef : conArgElement.getRefs()) {
- if (propertyRefUnresolved(constructorArgRef, beans, references, scaproperties)) {
- for (JavaParameterImpl parameter : constructor.getParameters()) {
- String paramType = parameter.getType().getName();
- Class<?> interfaze = resolveClass(resolver, paramType, context);
- // Create a component type reference/property if the constructor-arg element has a
- // type attribute OR index attribute declared...
- if ((conArgElement.getType() != null && paramType.equals(conArgElement.getType())) || (conArgElement
- .getIndex() != -1 && (conArgElement.getIndex() == parameter.getIndex()))) {
- // [rfeng] Commenting out the following code as the constructor parameter based SCA
- // references are added already
- /*
- if (parameter.getClassifer() == org.oasisopen.sca.annotation.Reference.class) {
- Reference theReference = createReference(interfaze, constructorArgRef);
- componentType.getReferences().add(theReference);
- }
- */
- if (parameter.getClassifer() == org.oasisopen.sca.annotation.Property.class) {
- // Store the unresolved references as unresolvedBeanRef in the Spring Implementation type
- // we might need to verify with the component definition later.
- Reference theReference = createReference(interfaze, constructorArgRef);
- implementation.setUnresolvedBeanRef(constructorArgRef, theReference);
- }
- }
- } // end for
- } // end if
- } // end for
- } // end while
-
- // [rfeng] Add the remaining introspected references (w/ @Reference but without Spring property ref)
- for (Reference ref : beanReferences) {
- if (!excludedNames.contains(ref.getName()) && componentType.getReference(ref.getName()) == null) {
- // Only add the ones that not listed by sca:reference
- componentType.getReferences().add(ref);
- }
- }
-
- } // end while
-
- } catch (ClassNotFoundException e) {
- // Means that either an interface class, property class or a bean was not found
- throw new ContributionReadException(e);
- } catch (InvalidInterfaceException e) {
- throw new ContributionReadException(e);
- } // end try
-
- // If we get here, the Spring assembly component type is resolved
- componentType.setUnresolved(false);
- implementation.setComponentType(componentType);
- return;
- } // end method generateComponentType
-
- /*
- * Determines whether a reference attribute of a Spring property element is resolved either
- * by a bean in the application context or by an SCA reference element or by an SCA property
- * element
- * @param ref - a String containing the name of the reference - may be null
- * @param beans - a List of SpringBean elements
- * @param references - a List of SCA reference elements
- * @return true if the property is not resolved, false if it is resolved
- */
- private boolean propertyRefUnresolved(String ref,
- List<SpringBeanElement> beans,
- List<SpringSCAReferenceElement> references,
- List<SpringSCAPropertyElement> scaproperties) {
- boolean unresolved = true;
-
- if (ref != null) {
- // Scan over the beans looking for a match
- Iterator<SpringBeanElement> itb = beans.iterator();
- while (itb.hasNext()) {
- SpringBeanElement beanElement = itb.next();
- // Does the bean name match the ref?
- if (ref.equals(beanElement.getId())) {
- unresolved = false;
- break;
- } // end if
- } // end while
- // Scan over the SCA reference elements looking for a match
- if (unresolved) {
- Iterator<SpringSCAReferenceElement> itr = references.iterator();
- while (itr.hasNext()) {
- SpringSCAReferenceElement referenceElement = itr.next();
- if (ref.equals(referenceElement.getName())) {
- unresolved = false;
- break;
- } // end if
- } // end while
- } // end if
- // Scan over the SCA property elements looking for a match
- if (unresolved) {
- Iterator<SpringSCAPropertyElement> itsp = scaproperties.iterator();
- while (itsp.hasNext()) {
- SpringSCAPropertyElement propertyElement = itsp.next();
- if (ref.equals(propertyElement.getName())) {
- unresolved = false;
- break;
- } // end if
- } // end while
- } // end if
- } else {
- // In the case where ref = null, the property is not going to be a reference of any
- // kind and can be ignored
- unresolved = false;
- } // end if
-
- return unresolved;
-
- } // end method propertyRefUnresolved
-
- /**
- * Validates whether the <sca:service>, <sca:reference> and <sca:property> elements
- * has unique names within the application context.
- */
- private void validateBeans(List<SpringBeanElement> beans,
- List<SpringSCAServiceElement> services,
- List<SpringSCAReferenceElement> references,
- List<SpringSCAPropertyElement> scaproperties,
- Monitor monitor) throws ContributionReadException {
-
- // The @target attribute of a <service/> subelement of a <beans/> element
- // MUST have the value of the @name attribute of one of the <bean/>
- // subelements of the <beans/> element.
- Iterator<SpringSCAServiceElement> its = services.iterator();
- while (its.hasNext()) {
- SpringSCAServiceElement serviceElement = its.next();
- boolean targetBeanExists = false;
- Iterator<SpringBeanElement> itb = beans.iterator();
- while (itb.hasNext()) {
- SpringBeanElement beanElement = itb.next();
- if (serviceElement.getTarget().equals(beanElement.getId()))
- targetBeanExists = true;
- }
- if (!targetBeanExists)
- error(monitor, "TargetBeanDoesNotExist", beans);
- } // end while
-
- // The value of the @name attribute of an <sca:reference/> subelement of a <beans/>
- // element MUST be unique amongst the @name attributes of the <sca:property/>
- // subelements and the <bean/> subelements of the <beans/> element.
- // AND
- // The @default attribute of a <sca:reference/> subelement of a <beans/>
- // element MUST have the value of the @name attribute of one of the <bean/>
- // subelements of the <beans/> element.
- Iterator<SpringSCAReferenceElement> itr = references.iterator();
- while (itr.hasNext()) {
- SpringSCAReferenceElement referenceElement = itr.next();
- boolean defaultBeanExists = true;
- boolean isUniqueReferenceName = true;
- Iterator<SpringBeanElement> itb = beans.iterator();
- while (itb.hasNext()) {
- SpringBeanElement beanElement = itb.next();
- if (referenceElement.getDefaultBean() != null)
- if (referenceElement.getDefaultBean().equals(beanElement.getId()))
- defaultBeanExists = false;
- if (referenceElement.getName().equals(beanElement.getId()))
- isUniqueReferenceName = false;
- }
- Iterator<SpringSCAPropertyElement> itp = scaproperties.iterator();
- while (itp.hasNext()) {
- SpringSCAPropertyElement propertyElement = itp.next();
- if (referenceElement.getName().equals(propertyElement.getName()))
- isUniqueReferenceName = false;
- }
- if (!defaultBeanExists)
- error(monitor, "DefaultBeanDoesNotExist", beans);
- if (!isUniqueReferenceName)
- error(monitor, "ScaReferenceNameNotUnique", beans);
- } // end while
-
- // The value of the @name attribute of an <sca:property/> subelement of a <beans/>
- // element MUST be unique amongst the @name attributes of the <sca:reference/>
- // subelements and the <bean/> subelements of the <beans/> element.
- Iterator<SpringSCAPropertyElement> itp = scaproperties.iterator();
- while (itp.hasNext()) {
- SpringSCAPropertyElement propertyElement = itp.next();
- boolean isUniquePropertyName = true;
- Iterator<SpringBeanElement> itb = beans.iterator();
- while (itb.hasNext()) {
- SpringBeanElement beanElement = itb.next();
- if (propertyElement.getName().equals(beanElement.getId()))
- isUniquePropertyName = false;
- }
- Iterator<SpringSCAReferenceElement> itrp = references.iterator();
- while (itrp.hasNext()) {
- SpringSCAReferenceElement referenceElement = itrp.next();
- if (propertyElement.getName().equals(referenceElement.getName()))
- isUniquePropertyName = false;
- }
- if (!isUniquePropertyName)
- error(monitor, "ScaPropertyNameNotUnique", beans);
- } // end while
- }
-
- /**
- * Validates whether a bean definition is valid for exposing as service.
- */
- private boolean isValidBeanForService(SpringBeanElement beanElement) {
-
- if (beanElement.isInnerBean())
- return false;
- if (beanElement.hasParentAttribute())
- return false;
- if (beanElement.hasFactoryMethodAttribute())
- return false;
- if (beanElement.hasFactoryBeanAttribute())
- return false;
- if (beanElement.getClassName() == null)
- return false;
- if (beanElement.getClassName().startsWith("org.springframework"))
- return false;
- // return true otherwise
- return true;
- }
-
- /**
- * Gets hold of the application-context.xml file as a Spring resource
- * @param locationAttr - the location attribute from the <implementation.spring../> element
- * @param cl - the ClassLoader for the Spring implementation
- */
- protected List<URL> getApplicationContextResource(URL url) throws ContributionReadException {
- File manifestFile = null;
- File appXmlFile;
- File appXmlFolder;
- File locationFile = null;
- List<URL> appCtxResources = new ArrayList<URL>();
-
- if (url != null) {
- String path = url.getPath();
- locationFile = new File(path);
- } else {
- throw new ContributionReadException(
- "SpringXMLComponentTypeLoader getApplicationContextResource: " + "unable to find resource file "
- + url);
- }
-
- if (locationFile.isDirectory()) {
- try {
- manifestFile = new File(locationFile, "META-INF" + File.separator + "MANIFEST.MF");
- if (manifestFile.exists()) {
- Manifest mf = new Manifest(new FileInputStream(manifestFile));
- Attributes mainAttrs = mf.getMainAttributes();
- String appCtxPath = mainAttrs.getValue("Spring-Context");
- if (appCtxPath != null) {
- String[] cxtPaths = appCtxPath.split(";");
- for (String path : cxtPaths) {
- appXmlFile = new File(locationFile, path.trim());
- if (appXmlFile.exists()) {
- appCtxResources.add(appXmlFile.toURI().toURL());
- }
- }
- return appCtxResources;
- }
- }
- // No MANIFEST.MF file OR no manifest-specified Spring context , then read all the
- // xml files available in the META-INF/spring folder.
- appXmlFolder = new File(locationFile, "META-INF" + File.separator + "spring");
- if (appXmlFolder.exists()) {
- File[] files = appXmlFolder.listFiles();
- for (File appFile : files) {
- if (appFile.getName().endsWith(".xml")) {
- appCtxResources.add(appFile.toURI().toURL());
- }
- }
- return appCtxResources;
- }
- } catch (IOException e) {
- throw new ContributionReadException("Error reading manifest " + manifestFile);
- }
- } else {
- if (locationFile.isFile() && locationFile.getName().endsWith(".jar")) {
- try {
- JarFile jf = new JarFile(locationFile);
- JarEntry je;
- Manifest mf = jf.getManifest();
- if (mf != null) {
- Attributes mainAttrs = mf.getMainAttributes();
- String appCtxPath = mainAttrs.getValue("Spring-Context");
- if (appCtxPath != null) {
- String[] cxtPaths = appCtxPath.split(";");
- for (String path : cxtPaths) {
- je = jf.getJarEntry(path.trim());
- if (je != null)
- appCtxResources.add(new URL("jar:" + locationFile.toURI().toURL()
- + "!/"
- + appCtxPath));
- }
- return appCtxResources;
- }
- }
- // No MANIFEST.MF file OR no manifest-specified Spring context , then read all the
- // .xml files available in the META-INF/spring folder.
- Enumeration<JarEntry> entries = jf.entries();
- while (entries.hasMoreElements()) {
- je = entries.nextElement();
- if (je.getName().startsWith("META-INF/spring/") && je.getName().endsWith(".xml")) {
- appCtxResources.add(new URL("jar:" + locationFile.toURI().toURL() + "!/" + je.getName()));
- }
- }
- return appCtxResources;
- } catch (IOException e) {
- // TODO: create a more appropriate exception type
- throw new ContributionReadException(
- "SpringXMLComponentTypeLoader getApplicationContextResource: " + " IO exception reading context file.",
- e);
- }
- } else {
- if (locationFile.getName().endsWith(".xml")) {
- appCtxResources.add(url);
- return appCtxResources;
- } else {
- // Deal with the directory inside a jar file, in case the contribution itself is a JAR file.
- try {
- if (locationFile.getPath().indexOf(".jar") > 0) {
- String jarPath = url.getPath().substring(5, url.getPath().indexOf("!"));
- JarFile jf = new JarFile(jarPath);
- JarEntry je =
- jf.getJarEntry(url.getPath().substring(url.getPath().indexOf("!/") + 2) + "/"
- + "META-INF"
- + "/"
- + "MANIFEST.MF");
- if (je != null) {
- Manifest mf = new Manifest(jf.getInputStream(je));
- Attributes mainAttrs = mf.getMainAttributes();
- String appCtxPath = mainAttrs.getValue("Spring-Context");
- if (appCtxPath != null) {
- String[] cxtPaths = appCtxPath.split(";");
- for (String path : cxtPaths) {
- je =
- jf.getJarEntry(url.getPath().substring(url.getPath().indexOf("!/") + 2) + "/"
- + path.trim());
- if (je != null) {
- appCtxResources.add(new URL("jar:" + url.getPath() + "/" + path.trim()));
- }
- }
- return appCtxResources;
- }
- }
- // No MANIFEST.MF file OR no manifest-specified Spring context , then read all the
- // .xml files available in the META-INF/spring folder.
- Enumeration<JarEntry> entries = jf.entries();
- while (entries.hasMoreElements()) {
- je = entries.nextElement();
- if (je.getName().startsWith("META-INF/spring/") && je.getName().endsWith(".xml")) {
- appCtxResources.add(new URL("jar:" + url.getPath() + "/" + je.getName()));
- }
- }
- return appCtxResources;
- }
- } catch (IOException e) {
- throw new ContributionReadException("Error reading manifest " + manifestFile);
- }
- }
- }
- }
-
- throw new ContributionReadException(
- "SpringXMLComponentTypeLoader getApplicationContextResource: " + "unable to read resource file "
- + url);
- } // end method getApplicationContextResource
-
- /**
- * Creates a Service for the component type based on its name and Java interface
- */
- public Service createService(Class<?> interfaze, String name) throws InvalidInterfaceException {
- Service service = assemblyFactory.createService();
- JavaInterfaceContract interfaceContract = javaFactory.createJavaInterfaceContract();
- service.setInterfaceContract(interfaceContract);
-
- // Set the name for the service
- service.setName(name);
-
- // Set the call interface and, if present, the callback interface
- JavaInterface callInterface = javaFactory.createJavaInterface(interfaze);
- service.getInterfaceContract().setInterface(callInterface);
- if (callInterface.getCallbackClass() != null) {
- JavaInterface callbackInterface = javaFactory.createJavaInterface(callInterface.getCallbackClass());
- service.getInterfaceContract().setCallbackInterface(callbackInterface);
- }
- return service;
- } // end method createService
-
- /**
- * Creates a Reference for the component type based on its name and Java interface
- */
- private org.apache.tuscany.sca.assembly.Reference createReference(Class<?> interfaze, String name)
- throws InvalidInterfaceException {
- org.apache.tuscany.sca.assembly.Reference reference = assemblyFactory.createReference();
- JavaInterfaceContract interfaceContract = javaFactory.createJavaInterfaceContract();
- reference.setInterfaceContract(interfaceContract);
-
- // Set the name of the reference to the supplied name and the multiplicity of the reference
- // to 1..1 - for Spring implementations, this is the only multiplicity supported
- reference.setName(name);
- reference.setMultiplicity(Multiplicity.ONE_ONE);
-
- // Set the call interface and, if present, the callback interface
- JavaInterface callInterface = javaFactory.createJavaInterface(interfaze);
- reference.getInterfaceContract().setInterface(callInterface);
- if (callInterface.getCallbackClass() != null) {
- JavaInterface callbackInterface = javaFactory.createJavaInterface(callInterface.getCallbackClass());
- reference.getInterfaceContract().setCallbackInterface(callbackInterface);
- }
-
- return reference;
- }
-
- private class ContextClassLoader extends ClassLoader {
- public ContextClassLoader(ModelResolver resolver, ProcessorContext context) {
- super();
- this.resolver = resolver;
- this.context = context;
- }
-
- private ModelResolver resolver;
- private ProcessorContext context;
-
- @Override
- protected Class<?> findClass(String name) throws ClassNotFoundException {
- return SpringXMLComponentTypeLoader.this.resolveClass(resolver, name, context);
- }
-
- @Override
- protected URL findResource(String name) {
- try {
- return resolveLocation(resolver, name, context);
- } catch (Exception e) {
- return null;
- }
- }
-
- @Override
- protected Enumeration<URL> findResources(String name) throws IOException {
- URL url = findResource(name);
- if (url != null) {
- return Collections.enumeration(Arrays.asList(url));
- } else {
- Collection<URL> urls = Collections.emptyList();
- return Collections.enumeration(urls);
- }
- }
- }
-} // end class SpringXMLComponentTypeLoader
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringImplementationProcessor.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringImplementationProcessor.java
deleted file mode 100644
index 4b4144f0c8..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringImplementationProcessor.java
+++ /dev/null
@@ -1,244 +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.xml;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.assembly.xml.PolicySubjectProcessor;
-import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
-import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
-import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-import org.apache.tuscany.sca.implementation.spring.introspect.SpringXMLComponentTypeLoader;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-
-/**
- * SpringArtifactProcessor is responsible for processing the XML of an <implementation.spring.../>
- * element in an SCA SCDL file.
- *
- * @version $Rev$ $Date$
- */
-public class SpringImplementationProcessor extends BaseStAXArtifactProcessor implements
- StAXArtifactProcessor<SpringImplementation> {
-
- private static final String LOCATION = "location";
- private static final String IMPLEMENTATION_SPRING = "implementation.spring";
- private static final QName IMPLEMENTATION_SPRING_QNAME = new QName(Constants.SCA11_NS, IMPLEMENTATION_SPRING);
- private static final String MSG_LOCATION_MISSING = "Reading implementation.spring - location attribute missing";
-
- private ExtensionPointRegistry registry;
- private AssemblyFactory assemblyFactory;
- private PolicySubjectProcessor policyProcessor;
-
- private FactoryExtensionPoint factories;
-
- public SpringImplementationProcessor(ExtensionPointRegistry registry) {
- this.registry = registry;
- this.factories = registry.getExtensionPoint(FactoryExtensionPoint.class);
- this.assemblyFactory = factories.getFactory(AssemblyFactory.class);
- this.policyProcessor = new PolicySubjectProcessor(registry);
- }
-
- /**
- * Report a exception.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(Monitor monitor, String message, Object model, Exception ex) {
- if (monitor != null) {
- Problem problem =
- monitor.createProblem(this.getClass().getName(),
- "impl-spring-validation-messages",
- Severity.ERROR,
- model,
- message,
- ex);
- monitor.problem(problem);
- }
- }
-
- /**
- * Report a error.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(Monitor monitor, String message, Object model, Object... messageParameters) {
- if (monitor != null) {
- Problem problem =
- monitor.createProblem(this.getClass().getName(),
- "impl-spring-validation-messages",
- Severity.ERROR,
- model,
- message,
- (Object[])messageParameters);
- monitor.problem(problem);
- }
- }
-
- /*
- * Read the XML and parse out the attributes.
- *
- * <implementation.spring.../> has a single required attribute:
- * "location" - which is the target URI of of an archive file or a directory that contains the Spring
- * application context files.
- * If the resource identified by the location attribute is an archive file, then the file
- * META-INF/MANIFEST.MF is read from the archive.
- * If the location URI identifies a directory, then META-INF/MANIFEST.MF must exist
- * underneath that directory.
- * If the manifest file contains a header "Spring-Context" of the format:
- * Spring-Context ::= path ( ';' path )*
- *
- * Where path is a relative path with respect to the location URI, then the set of paths
- * specified in the header identify the context configuration files.
- * If there is no MANIFEST.MF file or no Spring-Context header within that file,
- * then the default behaviour is to build an application context using all the *.xml files
- * in the META-INF/spring directory.
- */
- public SpringImplementation read(XMLStreamReader reader, ProcessorContext context)
- throws ContributionReadException, XMLStreamException {
-
- // Create the Spring implementation
- SpringImplementation springImplementation = null;
-
- // Read the location attribute for the spring implementation
- String springLocation = getURIString(reader, LOCATION);
- if (springLocation != null) {
- springImplementation = new SpringImplementation();
- springImplementation.setLocation(springLocation);
- springImplementation.setUnresolved(true);
- processComponentType(springImplementation);
- } else {
- error(context.getMonitor(), "LocationAttributeMissing", reader);
- //throw new ContributionReadException(MSG_LOCATION_MISSING);
- }
-
- // Read policies
- policyProcessor.readPolicies(springImplementation, reader);
-
- // Skip to end element
- while (reader.hasNext()) {
- if (reader.next() == END_ELEMENT && IMPLEMENTATION_SPRING_QNAME.equals(reader.getName())) {
- break;
- }
- } // end while
-
- return springImplementation;
- } // end read
-
- /*
- * Handles the component type for the Spring implementation
- * @param springImplementation - a Spring implementation. The component type information
- * is created for this implementation
- *
- */
- private void processComponentType(SpringImplementation springImplementation) {
-
- // Create a ComponentType and mark it unresolved
- ComponentType componentType = assemblyFactory.createComponentType();
- componentType.setUnresolved(true);
- springImplementation.setComponentType(componentType);
- } // end processComponentType
-
- /*
- * Write out the XML representation of the Spring implementation
- * <implementation.spring location="..." />
- */
- public void write(SpringImplementation springImplementation, XMLStreamWriter writer, ProcessorContext context)
- throws ContributionWriteException, XMLStreamException {
-
- // Write <implementation.spring>
- writer.writeStartElement(Constants.SCA11_NS, IMPLEMENTATION_SPRING);
- policyProcessor.writePolicyAttributes(springImplementation, writer);
-
- if (springImplementation.getLocation() != null) {
- writer.writeAttribute(LOCATION, springImplementation.getLocation());
- }
-
- writer.writeEndElement();
-
- } // end write
-
- /**
- * Resolves the Spring implementation - loads the Spring application-context XML and
- * derives the spring implementation componentType from it
- */
- public void resolve(SpringImplementation springImplementation, ModelResolver resolver, ProcessorContext context)
- throws ContributionResolveException {
-
- if (springImplementation == null)
- return;
-
- Monitor monitor = context.getMonitor();
- /* Load the Spring component type by reading the Spring application context */
- SpringXMLComponentTypeLoader springLoader = new SpringXMLComponentTypeLoader(registry);
- try {
- // Load the Spring Implementation information from its application context file...
- springLoader.load(springImplementation, resolver, context);
- } catch (ContributionReadException e) {
- ContributionResolveException ce = new ContributionResolveException(e);
- error(monitor, "ContributionResolveException", resolver, ce);
- throw ce;
- }
-
- ComponentType ct = springImplementation.getComponentType();
- if (ct.isUnresolved()) {
- // If the introspection fails to resolve, try to find a side file...
- ComponentType componentType = resolver.resolveModel(ComponentType.class, ct, context);
- if (componentType.isUnresolved()) {
- error(monitor, "UnableToResolveComponentType", resolver);
- //throw new ContributionResolveException("SpringArtifactProcessor: unable to resolve componentType for Spring component");
- } else {
- springImplementation.setComponentType(componentType);
- springImplementation.setUnresolved(false);
- }
-
- } // end if
-
- } // end method resolve
-
- public QName getArtifactType() {
- return IMPLEMENTATION_SPRING_QNAME;
- }
-
- public Class<SpringImplementation> getModelType() {
- return SpringImplementation.class;
- }
-
-} // end class SpringArtifactProcessor
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringXMLBeanDefinitionLoader.java b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringXMLBeanDefinitionLoader.java
deleted file mode 100644
index a3dc353ffc..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringXMLBeanDefinitionLoader.java
+++ /dev/null
@@ -1,50 +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.xml;
-
-import java.net.URL;
-import java.util.List;
-
-import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
-import org.apache.tuscany.sca.implementation.spring.SpringBeanElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAPropertyElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAReferenceElement;
-import org.apache.tuscany.sca.implementation.spring.SpringSCAServiceElement;
-
-/**
- * The utility interface to load Spring XML bean definitions into an application context
- */
-public interface SpringXMLBeanDefinitionLoader {
- /**
- * @param resources
- * @param serviceElements
- * @param referenceElements
- * @param propertyElements
- * @param beanElements
- * @param context
- * @return
- */
- Object load(List<URL> resources,
- List<SpringSCAServiceElement> serviceElements,
- List<SpringSCAReferenceElement> referenceElements,
- List<SpringSCAPropertyElement> propertyElements,
- List<SpringBeanElement> beanElements,
- ProcessorContext context);
-}
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder
deleted file mode 100644
index 7ea615051e..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder
+++ /dev/null
@@ -1,18 +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.
-org.apache.tuscany.sca.implementation.spring.SpringImplementationBuilder;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#implementation.spring
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
deleted file mode 100644
index 880d6fade0..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
+++ /dev/null
@@ -1,20 +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 artifact processor extension
-org.apache.tuscany.sca.implementation.spring.xml.SpringImplementationProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#implementation.spring,model=org.apache.tuscany.sca.implementation.spring.SpringImplementation
-
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
deleted file mode 100644
index 4a9270d094..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
+++ /dev/null
@@ -1,17 +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.
-org/apache/tuscany/sca/implementation/spring/definitions.xml
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/impl-spring-validation-messages.properties b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/impl-spring-validation-messages.properties
deleted file mode 100644
index 28bd31ca11..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/impl-spring-validation-messages.properties
+++ /dev/null
@@ -1,28 +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.
-#
-#
-LocationAttributeMissing = Reading implementation.spring - location attribute missing
-ContributionResolveException = ContributionResolveException occured due to:
-UnableToResolveComponentType = SpringArtifactProcessor: unable to resolve componentType for Spring component
-ScaServiceNameNotUnique = The value of the @name attribute of an <sca:service/> element MUST be unique amongst the <sca:service/> subelements of the <beans/> element
-ScaReferenceNameNotUnique = The value of the @name attribute of an <sca:reference/> element MUST be unique amongst the <sca:reference/> subelements of the <beans/> element
-ScaPropertyNameNotUnique = The value of the @name attribute of an <sca:property/> element MUST be unique amongst the <sca:property/> subelements of the <beans/> element
-DefaultBeanDoesNotExist = The @default attribute of a <sca:reference/> element MUST have the value of the @name attribute of one of the <bean/> subelements of the <beans/> element.
-TargetBeanDoesNotExist = The @target attribute of a <sca:service/> element MUST have the value of the @name attribute of one of the <bean/> subelements of the <beans/> element.
diff --git a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/org/apache/tuscany/sca/implementation/spring/definitions.xml b/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/org/apache/tuscany/sca/implementation/spring/definitions.xml
deleted file mode 100644
index 18e7b1e60a..0000000000
--- a/sca-java-2.x/trunk/contrib/modules/implementation-spring/src/main/resources/org/apache/tuscany/sca/implementation/spring/definitions.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-
-<!-- $Rev$ $Date$ -->
-
-<sca:definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
- targetNamespace="http://docs.oasis-open.org/ns/opencsa/sca/200912"
- xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
- xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1">
-
- <sca:implementationType type="sca:implementation.spring" mayProvide="" alwaysProvides=""/>
-
- </sca:definitions>