You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ed...@apache.org on 2007/05/31 23:51:50 UTC

svn commit: r543273 [1/2] - in /incubator/tuscany/sandbox/implementation-spring2: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/tuscany/ src/main/java/org/apache/tuscany/implementation/ src/main/...

Author: edwardsmj
Date: Thu May 31 14:51:47 2007
New Revision: 543273

URL: http://svn.apache.org/viewvc?view=rev&rev=543273
Log:
Initial attempt at Spring implementation type module for the latest Tuscany core

Added:
    incubator/tuscany/sandbox/implementation-spring2/
    incubator/tuscany/sandbox/implementation-spring2/.ruleset
    incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt   (with props)
    incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt   (with props)
    incubator/tuscany/sandbox/implementation-spring2/README.txt   (with props)
    incubator/tuscany/sandbox/implementation-spring2/pom.xml   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/
    incubator/tuscany/sandbox/implementation-spring2/src/main/
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringSCAReferenceElement.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringSCAServiceElement.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringXMLComponentTypeLoader.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/sca/
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/sca/spring.system.scdl
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/services/
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/spring.handlers
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/spring.schemas
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/sca/
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/sca/xml/
    incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/sca/xml/spring-sca.xsd   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/AbstractSCATestCase.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/HelloWorld.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/HelloWorldProxy.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/TestBean.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/TestBeanImpl.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/TestReference.java   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/application-context.xml   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/default.scdl
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/testReferenceContext.xml   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/testServiceContext.xml   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/tuscany/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/tuscany/xsystem.scdl
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/spring/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/spring/ExplicitSpring.xml   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml   (with props)
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/itests/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/itests/helloworld/
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/itests/helloworld/SpringHelloWorld.composite
    incubator/tuscany/sandbox/implementation-spring2/src/test/resources/test.xml   (with props)

Added: incubator/tuscany/sandbox/implementation-spring2/.ruleset
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/.ruleset?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/.ruleset (added)
+++ incubator/tuscany/sandbox/implementation-spring2/.ruleset Thu May 31 14:51:47 2007
@@ -0,0 +1,190 @@
+<?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.
+-->
+<ruleset name="pmd-eclipse">
+  <description>PMD Plugin preferences rule set</description>
+  
+  
+  <rule ref="rulesets/basic.xml/BooleanInstantiation"/>
+  <rule ref="rulesets/basic.xml/CollapsibleIfStatements"/>
+  <rule ref="rulesets/basic.xml/DoubleCheckedLocking"/>
+<!--<rule ref="rulesets/basic.xml/EmptyCatchBlock"/>-->
+<!--<rule ref="rulesets/basic.xml/EmptyFinallyBlock"/>-->
+<!--<rule ref="rulesets/basic.xml/EmptyIfStmt"/>-->
+  <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop"/>
+<!--<rule ref="rulesets/basic.xml/EmptyStaticInitializer"/>-->
+<!--<rule ref="rulesets/basic.xml/EmptySwitchStatements"/>-->
+<!--<rule ref="rulesets/basic.xml/EmptySynchronizedBlock"/>-->
+<!--<rule ref="rulesets/basic.xml/EmptyTryBlock"/>-->
+<!--<rule ref="rulesets/basic.xml/EmptyWhileStmt"/>-->
+  <rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop"/>
+  <rule ref="rulesets/basic.xml/JumbledIncrementer"/>
+<!--<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>-->
+  <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock"/>
+  <rule ref="rulesets/basic.xml/UnconditionalIfStatement"/>
+  <rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/>
+  <rule ref="rulesets/basic.xml/UnnecessaryFinalModifier"/>
+  <rule ref="rulesets/basic.xml/UnnecessaryReturn"/>
+<!--<rule ref="rulesets/basic.xml/UselessOverridingMethod"/>-->
+  
+<!--<rule ref="rulesets/braces.xml/ForLoopsMustUseBraces"/>-->
+<!--<rule ref="rulesets/braces.xml/IfElseStmtsMustUseBraces"/>-->
+<!--<rule ref="rulesets/braces.xml/IfStmtsMustUseBraces"/>-->
+<!--<rule ref="rulesets/braces.xml/WhileLoopsMustUseBraces"/>-->
+
+<!--<rule ref="rulesets/clone.xml/CloneMethodMustImplementCloneable"/>-->
+<!--<rule ref="rulesets/clone.xml/CloneThrowsCloneNotSupportedException"/>-->
+<!--<rule ref="rulesets/clone.xml/ProperCloneImplementation"/>-->
+  
+<!--<rule ref="rulesets/codesize.xml/CyclomaticComplexity"/>-->
+<!--<rule ref="rulesets/codesize.xml/ExcessiveClassLength"/>-->
+<!--<rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>-->
+<!--<rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>-->
+<!--<rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>-->
+<!--<rule ref="rulesets/codesize.xml/TooManyFields"/>-->
+
+<rule ref="rulesets/controversial.xml/AssignmentInOperand"/>
+<!--<rule ref="rulesets/controversial.xml/AtLeastOneConstructor"/>-->
+<!--<rule ref="rulesets/controversial.xml/CallSuperInConstructor"/>-->
+<!--<rule ref="rulesets/controversial.xml/DontImportSun"/>-->
+<!--<rule ref="rulesets/controversial.xml/NullAssignment"/>-->
+<!--<rule ref="rulesets/controversial.xml/OnlyOneReturn"/>-->
+<!--<rule ref="rulesets/controversial.xml/SingularField"/>-->
+<!--<rule ref="rulesets/controversial.xml/SuspiciousOctalEscape"/>-->
+<!--<rule ref="rulesets/controversial.xml/UnnecessaryConstructor"/>-->
+<rule ref="rulesets/controversial.xml/UnnecessaryParentheses"/>
+<!--<rule ref="rulesets/controversial.xml/UnusedModifier"/>-->
+
+<!--<rule ref="rulesets/coupling.xml/CouplingBetweenObjects"/>-->
+<!--<rule ref="rulesets/coupling.xml/ExcessiveImports"/>-->
+<!--<rule ref="rulesets/coupling.xml/LooseCoupling"/>-->
+
+<!--<rule ref="rulesets/design.xml/AbstractClassWithoutAbstractMethod"/>-->
+<!--<rule ref="rulesets/design.xml/AccessorClassGeneration"/>-->
+<!--<rule ref="rulesets/design.xml/AssignmentToNonFinalStatic"/>-->
+<!--<rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts"/>-->
+<!--<rule ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause"/>-->
+<rule ref="rulesets/design.xml/AvoidProtectedFieldInFinalClass"/>
+<!--<rule ref="rulesets/design.xml/AvoidReassigningParameters"/>-->
+<!--<rule ref="rulesets/design.xml/AvoidSynchronizedAtMethodLevel"/>-->
+<!--<rule ref="rulesets/design.xml/BadComparison"/>-->
+<!--<rule ref="rulesets/design.xml/CloseConnection"/>-->
+<!--<rule ref="rulesets/design.xml/CompareObjectsWithEquals"/>-->
+<!--<rule ref="rulesets/design.xml/ConfusingTernary"/>-->
+<rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod"/>
+<!--<rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt"/>-->
+<!--<rule ref="rulesets/design.xml/FinalFieldCouldBeStatic"/>-->
+<rule ref="rulesets/design.xml/IdempotentOperations"/>
+<!--<rule ref="rulesets/design.xml/ImmutableField"/>-->
+<!--<rule ref="rulesets/design.xml/InstantiationToGetClass"/>-->
+<!--<rule ref="rulesets/design.xml/MissingBreakInSwitch"/>-->
+<!--<rule ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass"/>-->
+<!--<rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement"/>-->
+<!--<rule ref="rulesets/design.xml/NonStaticInitializer"/>-->
+<rule ref="rulesets/design.xml/OptimizableToArrayCall"/>
+<rule ref="rulesets/design.xml/PositionLiteralsFirstInComparisons"/>
+<rule ref="rulesets/design.xml/SimplifyBooleanExpressions"/>
+<rule ref="rulesets/design.xml/SimplifyBooleanReturns"/>
+<rule ref="rulesets/design.xml/SimplifyConditional"/>
+<!--<rule ref="rulesets/design.xml/SwitchDensity"/>-->
+<!--<rule ref="rulesets/design.xml/SwitchStmtsShouldHaveDefault"/>-->
+<rule ref="rulesets/design.xml/UnnecessaryLocalBeforeReturn"/>
+<!--<rule ref="rulesets/design.xml/UseLocaleWithCaseConversions"/>-->
+<!--<rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify"/>-->
+<!--<rule ref="rulesets/design.xml/UseSingleton"/>-->
+
+<!--<rule ref="rulesets/finalizers.xml/EmptyFinalizer"/>-->
+<!--<rule ref="rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>-->
+<!--<rule ref="rulesets/finalizers.xml/FinalizeOverloaded"/>-->
+<!--<rule ref="rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize"/>-->
+<!--<rule ref="rulesets/finalizers.xml/FinalizeShouldBeProtected"/>-->
+<!--<rule ref="rulesets/finalizers.xml/AvoidCallingFinalize"/>-->
+
+<!--<rule ref="rulesets/imports.xml/DuplicateImports"/>-->
+<!--<rule ref="rulesets/imports.xml/DontImportJavaLang"/>-->
+<!--<rule ref="rulesets/imports.xml/UnusedImports"/>-->
+<!--<rule ref="rulesets/imports.xml/ImportFromSamePackage"/>-->
+
+<!--<rule ref="rulesets/javabeans.xml/BeanMembersShouldSerialize"/>-->
+<!--<rule ref="rulesets/javabeans.xml/MissingSerialVersionUID"/>-->
+
+<!--<rule ref="rulesets/junit.xml/JUnitStaticSuite"/>-->
+<!--<rule ref="rulesets/junit.xml/JUnitSpelling"/>-->
+<!--<rule ref="rulesets/junit.xml/JUnitAssertionsShouldIncludeMessage"/>-->
+<!--<rule ref="rulesets/junit.xml/JUnitTestsShouldIncludeAssert"/>-->
+<!--<rule ref="rulesets/junit.xml/TestClassWithoutTestCases"/>-->
+<!--<rule ref="rulesets/junit.xml/UnnecessaryBooleanAssertion"/>-->
+<!--<rule ref="rulesets/junit.xml/UseAssertEqualsInsteadOfAssertTrue"/>-->
+<!--<rule ref="rulesets/junit.xml/UseAssertSameInsteadOfAssertTrue"/>-->
+
+  <!--<rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace"/>-->
+  <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
+  <!--<rule ref="rulesets/logging-java.xml/MoreThanOneLogger"/>-->
+  <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
+  <!--<rule ref="rulesets/logging-java.xml/LogBlockWithoutIf"/>-->
+  <!--<rule ref="rulesets/logging-java.xml/SystemPrintln"/>-->
+  <!--<rule ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/>-->
+  <!--<rule ref="rulesets/logging-jakarta-commons.xml/ProperLogger"/>-->
+  
+  <!--<rule ref="rulesets/naming.xml/ShortVariable"/>-->
+  <!--<rule ref="rulesets/naming.xml/LongVariable"/>-->
+  <!--<rule ref="rulesets/naming.xml/ShortMethodName"/>-->
+  <!--<rule ref="rulesets/naming.xml/VariableNamingConventions"/>-->
+  <!--<rule ref="rulesets/naming.xml/MethodNamingConventions"/>-->
+  <!--<rule ref="rulesets/naming.xml/ClassNamingConventions"/>-->
+  <!--<rule ref="rulesets/naming.xml/AbstractNaming"/>-->
+  <!--<rule ref="rulesets/naming.xml/AvoidDollarSigns"/>-->
+  <!--<rule ref="rulesets/naming.xml/MethodWithSameNameAsEnclosingClass"/>-->
+  <!--<rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName"/>-->
+  <!--<rule ref="rulesets/naming.xml/SuspiciousConstantFieldName"/>-->
+  <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName"/>-->
+  <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName"/>-->
+  <!--<rule ref="rulesets/naming.xml/AvoidNonConstructorMethodsWithClassName"/>-->
+  <!--<rule ref="rulesets/naming.xml/NoPackage"/>-->
+  <!--<rule ref="rulesets/naming.xml/PackageCase"/>-->
+
+  <!--<rule ref="rulesets/optimizations.xml/LocalVariableCouldBeFinal"/>-->
+  <!--<rule ref="rulesets/optimizations.xml/MethodArgumentCouldBeFinal"/>-->
+  <!--<rule ref="rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops"/>-->
+  <!--<rule ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector"/>-->
+  <!--<rule ref="rulesets/optimizations.xml/SimplifyStartsWith"/>-->
+  <!--<rule ref="rulesets/optimizations.xml/UseStringBufferForStringAppends"/>-->
+
+  <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingThrowable"/>-->
+  <!--<rule ref="rulesets/strictexception.xml/SignatureDeclareThrowsException"/>-->
+  <!--<rule ref="rulesets/strictexception.xml/ExceptionAsFlowControl"/>-->
+  <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingNPE"/>-->
+  <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes"/>-->
+  <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingNullPointerException"/>-->
+ 
+  <!--<rule ref="rulesets/strings.xml/AvoidDuplicateLiterals"/>-->
+  <!--<rule ref="rulesets/strings.xml/StringInstantiation"/>-->
+  <!--<rule ref="rulesets/strings.xml/StringToString"/>-->
+  <!--<rule ref="rulesets/strings.xml/AvoidConcatenatingNonLiteralsInStringBuffer"/>-->
+  <!--<rule ref="rulesets/strings.xml/UnnecessaryCaseChange"/>-->
+  
+  <!--<rule ref="rulesets/sunsecure.xml/MethodReturnsInternalArray"/>-->
+  <!--<rule ref="rulesets/sunsecure.xml/ArrayIsStoredDirectly"/>-->
+  
+  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/>
+  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
+  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
+  <!--<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>-->
+  
+</ruleset>

Added: incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt (added)
+++ incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt Thu May 31 14:51:47 2007
@@ -0,0 +1,202 @@
+
+                                 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, serviceDefinition 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.

Propchange: incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt (added)
+++ incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt Thu May 31 14:51:47 2007
@@ -0,0 +1,14 @@
+${pom.name}
+Copyright (c) 2005 - 2006 The Apache Software Foundation
+
+Apache Tuscany is an effort undergoing incubation at The Apache Software
+Foundation (ASF), sponsored by the Apache Web Services PMC. Incubation is
+required of all newly accepted projects until a further review indicates that
+the infrastructure, communications, and decision making process have stabilized
+in a manner consistent with other successful ASF projects. While incubation
+status is not necessarily a reflection of the completeness or stability of the
+code, it does indicate that the project has yet to be fully endorsed by the ASF.
+
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
+

Propchange: incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/tuscany/sandbox/implementation-spring2/README.txt
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/README.txt?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/README.txt (added)
+++ incubator/tuscany/sandbox/implementation-spring2/README.txt Thu May 31 14:51:47 2007
@@ -0,0 +1,35 @@
+Apache Tuscany M1 build (May, 2006)
+===================================
+
+http://incubator.apache.org/tuscany/
+
+Tuscany is an effort undergoing incubation at the Apache Software Foundation
+(ASF), sponsored by the Web Services PMC.
+
+Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process
+have stabilized in a manner consistent with other successful ASF projects. 
+
+While incubation status is not necessarily a reflection of the completeness or 
+stability of the code, it does indicate that the project has yet to be fully
+endorsed by the ASF.
+
+
+Support
+-------
+
+Any problem with this release can be reported to the Tuscany mailing list 
+or in the JIRA issue tracker.
+
+Mailing list subscription:
+    tuscany-dev-subscribe@ws.apache.org
+
+Jira:
+    http://issues.apache.org/jira/browse/Tuscany
+
+
+Thank you for using Tuscany!
+
+
+The Tuscany Team. 
+

Propchange: incubator/tuscany/sandbox/implementation-spring2/README.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/tuscany/sandbox/implementation-spring2/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/pom.xml?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/pom.xml (added)
+++ incubator/tuscany/sandbox/implementation-spring2/pom.xml Thu May 31 14:51:47 2007
@@ -0,0 +1,109 @@
+<?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>1.0-incubating-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <artifactId>tuscany-implementation-spring</artifactId>
+    <name>Apache Tuscany Spring Framework Implementation Model</name>
+    <description>Container for managing Spring composites</description>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-assembly</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-core</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-interface</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-assembly-xml</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-contribution-impl</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.osoa</groupId>
+            <artifactId>sca-api</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-databinding</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-java-runtime</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>  
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-embedded</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+        
+        <!-- Temporarily depend on implementation-script for a set of utility classes -->
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-script</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+                
+        <!-- Spring dependencies... -->    
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-core</artifactId>
+            <version>2.0.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-beans</artifactId>
+            <version>2.0.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+            <version>2.0.3</version>
+        </dependency>
+          
+    </dependencies>
+
+</project>

Propchange: incubator/tuscany/sandbox/implementation-spring2/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java Thu May 31 14:51:47 2007
@@ -0,0 +1,205 @@
+/*
+ * 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.implementation.spring;
+
+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.Property;
+import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.assembly.Service;
+import org.apache.tuscany.sca.assembly.xml.Constants;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionWireException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.implementation.spi.AbstractStAXArtifactProcessor;
+import org.apache.tuscany.implementation.spi.ResourceHelper;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
+import org.apache.tuscany.sca.policy.PolicyFactory;
+import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector;
+
+
+/*
+ * SpringArtifactProcessor is responsible for processing the XML of an <implementation.spring.../>
+ * element in an SCA SCDL file.
+ */
+public class SpringArtifactProcessor 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.SCA10_NS, IMPLEMENTATION_SPRING);
+    private static final String MSG_LOCATION_MISSING = "Reading implementation.spring - location attribute missing";
+    
+    private AssemblyFactory 		assemblyFactory;
+    private JavaInterfaceFactory	javaFactory;
+    private JavaInterfaceIntrospector 	interfaceIntrospector;
+    private PolicyFactory 			policyFactory;
+    // TODO: runtime needs to provide a better way to get the PropertyValueObjectFactory
+    private SpringPropertyValueObjectFactory propertyFactory;
+
+
+    public SpringArtifactProcessor( AssemblyFactory 			assemblyFactory,
+    								JavaInterfaceFactory 		javaFactory,
+    								JavaInterfaceIntrospector 	interfaceIntrospector,
+    								PolicyFactory 				policyFactory,
+    		                        SpringPropertyValueObjectFactory 	propertyFactory ) {
+        this.assemblyFactory 	= assemblyFactory;
+        this.javaFactory 		= javaFactory;
+        this.interfaceIntrospector = interfaceIntrospector;
+        this.policyFactory	 	= policyFactory;
+        this.propertyFactory 	= propertyFactory;
+        
+    }
+
+    /*
+     * 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 METAINF/spring directory.
+     */
+    public SpringImplementation read(XMLStreamReader reader) throws ContributionReadException {
+
+        try {
+        	/* Read the location attribute for the spring implementation  */
+            String springLocation = reader.getAttributeValue(null, LOCATION);
+            if (springLocation == null) {
+                throw new ContributionReadException( MSG_LOCATION_MISSING );
+            }
+            /* Create the Spring implementation and set the location into it */
+            SpringImplementation springImplementation = new SpringImplementation();
+            springImplementation.setSpringLocation( springLocation );
+
+            // Skip to end element
+            while (reader.hasNext()) {
+                if (reader.next() == END_ELEMENT && IMPLEMENTATION_SPRING_QNAME.equals(reader.getName())) {
+                    break;
+                }
+            } // end while
+
+            processComponentType(springImplementation);
+
+            return springImplementation;
+
+        } catch (XMLStreamException e) {
+            throw new ContributionReadException(e);
+        }
+    } // 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) throws ContributionWriteException {
+        try {
+
+            writer.writeStartElement(Constants.SCA10_NS, IMPLEMENTATION_SPRING);
+            if (springImplementation.getSpringLocation() != null) {
+                writer.writeAttribute(LOCATION, springImplementation.getSpringLocation());
+            }
+            writer.writeEndElement();
+
+        } catch (XMLStreamException e) {
+            throw new ContributionWriteException(e);
+        }
+    } // 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) 
+        throws ContributionResolveException {
+
+    	/* Load the Spring component type by reading the Spring application context */
+    	SpringXMLComponentTypeLoader springLoader = 
+    		new SpringXMLComponentTypeLoader( assemblyFactory, interfaceIntrospector, 
+    										  javaFactory, policyFactory );
+    	try {
+    		// Load the Spring Implementation information from its application context file...
+    	    springLoader.load( springImplementation );
+    	} catch ( ContributionReadException e ) {
+    		throw new ContributionResolveException( e );
+    	}
+    	
+        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);
+	        if (componentType.isUnresolved()) {
+	            throw new ContributionResolveException("SpringArtifactProcessor: unable to resolve componentType for Spring component");
+	        } 
+	        springImplementation.setComponentType(componentType);
+	        
+	        springImplementation.setUnresolved(false);
+        } // end if
+
+    } // end method resolve
+
+    public void wire(SpringImplementation model) throws ContributionWireException {
+        // TODO Auto-generated method stub
+    }
+
+    public QName getArtifactType() {
+        return IMPLEMENTATION_SPRING_QNAME;
+    }
+
+    public Class<SpringImplementation> getModelType() {
+        return SpringImplementation.class;
+    }
+
+} // end class SpringArtifactProcessor

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java Thu May 31 14:51:47 2007
@@ -0,0 +1,59 @@
+/*
+ * 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.implementation.spring;
+
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * 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: 512919 $ $Date: 2007-02-28 19:32:56 +0000 (Wed, 28 Feb 2007) $
+ */
+public class SpringBeanElement {
+
+    private String id;
+    private String className;
+    private List<SpringPropertyElement> properties = new ArrayList<SpringPropertyElement>();
+
+    public SpringBeanElement( String id, String className ) {
+    	this.id = id;
+    	this.className = className;
+    }
+    
+    public String getClassName() {
+    	return className;
+    }
+    
+    public String getId() {
+    	return id;
+    }
+    
+    public List<SpringPropertyElement> getProperties() {
+    	return properties;
+    }
+    
+    public void addProperty( SpringPropertyElement property ) {
+    	properties.add( property );
+    }
+    
+    
+} // end class SpringBeanElement
\ No newline at end of file

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java Thu May 31 14:51:47 2007
@@ -0,0 +1,151 @@
+/*
+ * 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.implementation.spring;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
+import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector;
+import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory;
+import org.apache.tuscany.sca.implementation.java.JavaImplementation;
+import org.apache.tuscany.sca.implementation.java.JavaImplementationFactory;
+import org.apache.tuscany.sca.implementation.java.introspect.DefaultJavaClassIntrospectorExtensionPoint;
+import org.apache.tuscany.sca.implementation.java.introspect.ExtensibleJavaClassIntrospector;
+import org.apache.tuscany.sca.implementation.java.introspect.IntrospectionException;
+import org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospector;
+import org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospectorExtensionPoint;
+import org.apache.tuscany.sca.implementation.java.introspect.JavaClassVisitor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.AllowsPassByReferenceProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.BaseJavaClassVisitor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ConstructorProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ContextProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ConversationProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.DestroyProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.EagerInitProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.HeuristicPojoProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.InitProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.PolicyProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.PropertyProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ReferenceProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ResourceProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ScopeProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ServiceProcessor;
+import org.apache.tuscany.sca.policy.PolicyFactory;
+
+import org.apache.tuscany.sca.assembly.ComponentType;
+import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.assembly.Service;
+
+/**
+ * Provides introspection functions for Spring beans
+ * This version leans heavily on the implementation-java classes
+ *
+ * @version $Rev: 512919 $ $Date: 2007-02-28 19:32:56 +0000 (Wed, 28 Feb 2007) $
+ */
+public class SpringBeanIntrospector {
+
+	private JavaClassIntrospector classIntrospector;
+    private JavaClassIntrospectorExtensionPoint classVisitors = 
+    	new DefaultJavaClassIntrospectorExtensionPoint();
+    private JavaImplementationFactory javaImplementationFactory;
+
+	/**
+	 * The constructor sets up the various visitor elements that will be used to inrospect
+	 * the Spring bean and extract SCA information
+	 * @param assemblyFactory - an AssemblyFactory
+	 * @param interfaceIntrospector - an Java InterfaceIntrospector
+	 * @param javaFactory - a Java Interface Factory
+	 */
+    public SpringBeanIntrospector( AssemblyFactory assemblyFactory,
+			 JavaInterfaceIntrospector interfaceIntrospector,
+			 JavaInterfaceFactory javaFactory,
+			 PolicyFactory 		  policyFactory ) {
+    	
+        // Create the list of class visitors
+    	BaseJavaClassVisitor[] extensions = new BaseJavaClassVisitor[] {
+                new ConstructorProcessor(assemblyFactory),
+                new AllowsPassByReferenceProcessor(assemblyFactory),
+                new ContextProcessor(assemblyFactory),
+                new ConversationProcessor(assemblyFactory),
+                new DestroyProcessor(assemblyFactory),
+                new EagerInitProcessor(assemblyFactory),
+                new InitProcessor(assemblyFactory),
+                new PropertyProcessor(assemblyFactory),
+                new ReferenceProcessor(assemblyFactory, javaFactory, interfaceIntrospector),
+                new ResourceProcessor(assemblyFactory),
+                new ScopeProcessor(assemblyFactory),
+                new ServiceProcessor(assemblyFactory, javaFactory, interfaceIntrospector),
+                new HeuristicPojoProcessor(assemblyFactory, javaFactory, interfaceIntrospector),
+                new PolicyProcessor(assemblyFactory, policyFactory)
+            };
+        for (JavaClassVisitor extension : extensions) {
+            classVisitors.addClassVisitor(extension);
+        }
+        this.classIntrospector = new ExtensibleJavaClassIntrospector(classVisitors);
+        
+        javaImplementationFactory = new DefaultJavaImplementationFactory();
+
+    } // 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
+     * @throws ContributionResolveException - if there was a problem resolving the
+     * Spring Bean or its componentType
+     *
+     */
+    public void 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();
+    	
+    	try {
+    		// Introspect the bean...the results of the introspection are placed into the Java implementation
+            classIntrospector.introspect( beanClass, javaImplementation);
+            
+            // 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
+        
+        List<Service> services = javaImplementation.getServices();
+        for ( Service service : services ) {
+        	String name = service.getName();
+        	System.out.println("Spring Bean: found service with name: " + name);
+        } // end for
+
+    } // end method introspectBean
+    
+  
+    
+} // end class SpringBeanIntrospector
\ No newline at end of file

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java Thu May 31 14:51:47 2007
@@ -0,0 +1,80 @@
+/*
+ * 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.implementation.spring;
+
+import java.util.List;
+
+import org.apache.tuscany.sca.assembly.ComponentType;
+import org.apache.tuscany.sca.assembly.Implementation;
+import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.assembly.Service;
+import org.apache.tuscany.sca.assembly.impl.ComponentTypeImpl;
+
+/**
+ * Represents a Spring implementation.
+ * 
+ * TBD: Incomplete and needs substantial work...   MJE, 4th May 2007
+ */
+public class SpringImplementation  extends ComponentTypeImpl implements Implementation {
+
+	/* The location attribute which points to the Spring application-context XML file */
+    private String springLocation;
+    private ComponentType componentType;
+
+    protected SpringImplementation() {
+        this.springLocation = null;
+        setUnresolved(true);
+    }
+
+    /* Returns the location attribute for this Spring implementation */
+    public String getSpringLocation() {
+        return springLocation;
+    }
+    
+    /**
+     * Sets the location attribute for this Spring implementation
+     * location - a URI to the Spring application-context file
+     */
+    public void setSpringLocation(String location) {
+    	this.springLocation = location;
+        return;
+    }
+
+    /* 
+     * 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;
+    }
+
+    public List<Service> getServices() {
+        return componentType.getServices();
+    }
+
+    public List<Reference> getReferences() {
+        return componentType.getReferences();
+    }
+}

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java Thu May 31 14:51:47 2007
@@ -0,0 +1,46 @@
+package org.apache.tuscany.implementation.spring;
+
+import java.net.URI;
+
+import org.apache.tuscany.sca.assembly.ComponentService;
+import org.apache.tuscany.sca.assembly.Service;
+import org.apache.tuscany.sca.core.invocation.ProxyFactory;
+import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
+import org.apache.tuscany.sca.factory.ObjectFactory;
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.runtime.RuntimeComponent;
+import org.apache.tuscany.sca.runtime.RuntimeComponentService;
+import org.apache.tuscany.sca.provider.ImplementationProvider;
+import org.osoa.sca.ComponentContext;
+
+// TODO - create a working version of this invoker...
+public class SpringImplementationProvider implements ImplementationProvider {
+    private SpringImplementation implementation;
+    private RuntimeComponent component;
+    
+    public SpringImplementationProvider( RuntimeComponent component,
+                                         SpringImplementation implementation ) {
+        super();
+        this.implementation = implementation;
+        this.component = component;
+    } // end constructor
+
+    public Invoker createInvoker(RuntimeComponentService service, Operation operation) {
+        return new SpringInvoker(this, operation);
+    }
+
+    public Invoker createCallbackInvoker(Operation operation) {
+        return new SpringInvoker(this, operation);
+    }
+    
+
+    public void start() {
+        // TODO
+    }
+
+    public void stop() {
+        // TODO
+    }
+
+} // end class SpringImplementationProvider

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java Thu May 31 14:51:47 2007
@@ -0,0 +1,26 @@
+package org.apache.tuscany.implementation.spring;
+
+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
+ * @author MikeEdwards
+ *
+ */
+public class SpringImplementationProviderFactory implements ImplementationProviderFactory<SpringImplementation> {
+
+    public SpringImplementationProviderFactory() {
+        super();
+    }
+
+    public ImplementationProvider createImplementationProvider(RuntimeComponent component,
+                                                               SpringImplementation implementation) {
+        return new SpringImplementationProvider( component, implementation );
+    }
+
+    public Class<SpringImplementation> getModelType() {
+        return SpringImplementation.class;
+    }
+} // end class SpringImplementationProviderFactory

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java Thu May 31 14:51:47 2007
@@ -0,0 +1,38 @@
+package org.apache.tuscany.implementation.spring;
+
+
+import javax.script.Invocable;
+import javax.script.ScriptException;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.invocation.Message;
+
+public class SpringInvoker implements Invoker {
+	
+	private SpringImplementationProvider provider;
+	private Operation operation;
+	
+    public SpringInvoker(SpringImplementationProvider provider, Operation operation) {
+        this.provider = provider;
+        
+        // Use the Operation instead of the Operation name as it may be a dynamic
+        // operation so the name may change at runtime
+        this.operation = operation;
+    }
+
+    private Object doInvoke(Object[] objects) throws ScriptException {
+    	// TODO
+    	Object response = new Object();
+
+        return response;
+    }
+
+    public Message invoke(Message msg) {
+    	// TODO
+        return msg;
+    }
+
+
+}

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java Thu May 31 14:51:47 2007
@@ -0,0 +1,127 @@
+/*
+ * 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.implementation.spring;
+
+import java.util.Map;
+
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
+import org.apache.tuscany.sca.databinding.TransformerExtensionPoint;
+import org.apache.tuscany.sca.databinding.Mediator;
+import org.apache.tuscany.sca.databinding.impl.MediatorImpl;
+import org.apache.tuscany.sca.implementation.java.context.JavaPropertyValueObjectFactory;
+import org.apache.tuscany.sca.implementation.java.introspect.DefaultJavaClassIntrospectorExtensionPoint;
+import org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospectorExtensionPoint;
+import org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationProviderFactory;
+
+import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
+import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector;
+import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospectorExtensionPoint;
+import org.apache.tuscany.sca.interfacedef.java.introspect.ExtensibleJavaInterfaceIntrospector;
+import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
+import org.apache.tuscany.sca.policy.PolicyFactory;
+import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
+
+/*
+ * ModuleActivator class for the Spring module
+ * - this class is invoked by the Tuscany SCA core when the Spring module is included in the
+ * runtime package
+ * - it registers a series of extension points which the core will use when dealing with
+ * components which use <implementation.spring.../>
+ * 
+ */
+public class SpringModuleActivator implements ModuleActivator {
+
+    private SpringArtifactProcessor springArtifactProcessor;
+    private AssemblyFactory 		assemblyFactory;
+    private JavaInterfaceFactory 	javaFactory;
+    private PolicyFactory 			policyFactory;
+    private JavaInterfaceIntrospector interfaceIntrospector;
+    private JavaClassIntrospectorExtensionPoint classVisitors;
+    
+    public SpringModuleActivator() {
+        assemblyFactory = new DefaultAssemblyFactory();
+        javaFactory = new DefaultJavaInterfaceFactory();
+        policyFactory = new DefaultPolicyFactory();
+        
+    } // end constructor
+    
+    /*
+     * start() is called when the Tuscany core starts the Spring module
+     * 
+     * It is in this method that the registration of the extension points takes place:
+     * - SpringArtifactProcessor processes the XML for <implementation.spring.../>
+     * - SpringComponentBuilder actually builds components based on <implementation.spring.../>
+     * - SpringPropertyValueObjectFactory handles properties for implementation.spring components
+     */
+    public void start(ExtensionPointRegistry registry) {
+
+        DataBindingExtensionPoint dataBindingRegistry = registry.getExtensionPoint(DataBindingExtensionPoint.class);
+                
+        // TODO: could the runtime have a default PropertyValueObjectFactory in the registry
+        DataBindingExtensionPoint dataBindings = registry.getExtensionPoint(DataBindingExtensionPoint.class);
+        TransformerExtensionPoint transformers = registry.getExtensionPoint(TransformerExtensionPoint.class); 
+        MediatorImpl mediator = new MediatorImpl(dataBindings, transformers);
+        SpringPropertyValueObjectFactory propertyFactory = new SpringPropertyValueObjectFactory(mediator);
+        
+        // Tools for Java interface handling
+        JavaInterfaceIntrospectorExtensionPoint interfaceVisitors = 
+        	registry.getExtensionPoint(JavaInterfaceIntrospectorExtensionPoint.class);
+        interfaceIntrospector = new ExtensibleJavaInterfaceIntrospector(javaFactory, interfaceVisitors);
+
+        // Create the artifact processor for Spring artifacts and add to artifact processors
+        springArtifactProcessor = new SpringArtifactProcessor( assemblyFactory, javaFactory,
+        		interfaceIntrospector, policyFactory, propertyFactory );
+        
+        StAXArtifactProcessorExtensionPoint staxProcessors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+        staxProcessors.addArtifactProcessor(springArtifactProcessor);
+        
+        // Create SpringImplementationFactory and add to provider factories 
+        SpringImplementationProviderFactory springImplementationProviderFactory =
+            new SpringImplementationProviderFactory();
+        
+        ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
+        providerFactories.addProviderFactory(springImplementationProviderFactory);
+    }
+
+    /*
+     * stop() is called when the Tuscany core stops the Spring module
+     * At present, no action is taken
+     */
+    public void stop(ExtensionPointRegistry registry) {
+        StAXArtifactProcessorExtensionPoint staxProcessors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+        staxProcessors.removeArtifactProcessor(springArtifactProcessor);    	
+    }
+    
+    /*
+     * Return a map of the extension points for the Spring module.
+     * Not implemented at present (the core does not seem to require it)
+     */
+    public Object[] getExtensionPoints() {
+        classVisitors = new DefaultJavaClassIntrospectorExtensionPoint();
+        return new Object[] { classVisitors };
+    }
+
+}

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java Thu May 31 14:51:47 2007
@@ -0,0 +1,46 @@
+/*
+ * 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.implementation.spring;
+
+
+/**
+ * Represents a <property> element in a Spring application-context
+ * - this has name and ref attributes
+ * 
+ * @version $Rev: 512919 $ $Date: 2007-02-28 19:32:56 +0000 (Wed, 28 Feb 2007) $
+ */
+public class SpringPropertyElement {
+
+    private String name;
+    private String ref;
+    
+    public SpringPropertyElement( String name, String ref ) {
+    	this.name = name;
+    	this.ref = ref;
+    }
+    
+    public String getName() {
+    	return name;
+    }
+    
+    public String getRef() {
+    	return ref;
+    }
+    
+} // end class SpringPropertyElement
\ No newline at end of file

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java?view=auto&rev=543273
==============================================================================
--- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java (added)
+++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java Thu May 31 14:51:47 2007
@@ -0,0 +1,46 @@
+/*
+ * 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.implementation.spring;
+
+import org.apache.tuscany.sca.implementation.java.context.JavaPropertyValueObjectFactory;
+import org.apache.tuscany.sca.databinding.Mediator;
+
+/**
+ * 
+ * @author MikeEdwards
+ *
+ * Factory class for PropertyValueObjects for Spring implementations
+ * 
+ * 6th May 2007: Chosen a very simple design for this class - since Spring implementations are a form
+ * of Java POJO, the simple design chosen for this class is to re-use the PropertyValueObjectFactory
+ * implementation from the base implementation-java-runtime package of Tuscany SCA Java, since the 
+ * same properties are going to be rendered in the same way to simple Tuscany POJOs and to Spring
+ * Bean POJOs.  Mike Edwards
+ */
+public class SpringPropertyValueObjectFactory extends JavaPropertyValueObjectFactory {
+	
+	/**
+	 * Constructor simply defers to the superclass, along with the complete implementation...
+	 */
+    public SpringPropertyValueObjectFactory(Mediator mediator) {
+        super(mediator);
+    } // end constructor JavaPropertyValueObjectFactory(Mediator mediator)
+    
+} // end class SpringPropertyValueObjectFactory
\ No newline at end of file

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org


Re: Reactivating the extension, ready to go with the latest commits to sandbox

Posted by Jean-Sebastien Delfino <js...@apache.org>.
ant elder wrote:
> On 6/5/07, Raymond Feng <en...@gmail.com> wrote:
>>
>> Hi,
>>
>> It seems that it breaks the build as the following dependency cannot be
>> resolved:
>>
>> <dependency>
>> <groupId>org.osoa</groupId>
>> <artifactId>sca-api</artifactId>
>> <version>1.0-incubating-SNAPSHOT</version>
>> </dependency>
>>
>> I'll fix it to use "org.apache.tuscany.sca" as the group id.
>>
>> A side question, should the group id for sca-api be org.osoa or
>> org.apache.tuscany.sca?
>
>
> It didn't seem right to me for the org.apache.tuscany project to be
> publishing things outside of that namespace. Its worked in the past as we
> publish to the Incubator maven repository but would we even be able to
> publish outside of org.apache when its going to the real maven 
> repository?
>
>   ...ant
>

Sorry, my fault... it was building for me as I had an old 
org.osoa/sca-api artifact in my Maven repository from before the change 
to org.apache.tuscany.sca.

+1 for using org.apache.tuscany.sca, as this is what we use in all 
modules now.

-- 
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: Reactivating the extension, ready to go with the latest commits to sandbox

Posted by ant elder <an...@apache.org>.
On 6/5/07, Raymond Feng <en...@gmail.com> wrote:
>
> Hi,
>
> It seems that it breaks the build as the following dependency cannot be
> resolved:
>
> <dependency>
> <groupId>org.osoa</groupId>
> <artifactId>sca-api</artifactId>
> <version>1.0-incubating-SNAPSHOT</version>
> </dependency>
>
> I'll fix it to use "org.apache.tuscany.sca" as the group id.
>
> A side question, should the group id for sca-api be org.osoa or
> org.apache.tuscany.sca?


It didn't seem right to me for the org.apache.tuscany project to be
publishing things outside of that namespace. Its worked in the past as we
publish to the Incubator maven repository but would we even be able to
publish outside of org.apache when its going to the real maven repository?

   ...ant

Re: Reactivating the extension, ready to go with the latest commits to sandbox

Posted by Raymond Feng <en...@gmail.com>.
Hi,

It seems that it breaks the build as the following dependency cannot be 
resolved:

<dependency>
<groupId>org.osoa</groupId>
<artifactId>sca-api</artifactId>
<version>1.0-incubating-SNAPSHOT</version>
</dependency>

I'll fix it to use "org.apache.tuscany.sca" as the group id.

A side question, should the group id for sca-api be org.osoa or 
org.apache.tuscany.sca?

Thanks,
Raymond

----- Original Message ----- 
From: "Jean-Sebastien Delfino" <js...@apache.org>
To: <tu...@ws.apache.org>
Sent: Tuesday, June 05, 2007 9:48 AM
Subject: Re: Reactivating the <implementation.spring> extension, ready to go 
with the latest commits to sandbox


> Jean-Sebastien Delfino wrote:
>> Mike Edwards wrote:
>>> Jean-Sebastien,
>>>
>>> OK, with the latest commit to the sandbox, there is a working version of 
>>> the Spring implementation.  It has the fixes you need, plus a set of 
>>> other changes which have got the basic version working.
>>>
>>> I'll hold off on further updates until it's in trunk.
>>>
>>> The next step is to get References working from the Spring 
>>> implementation to some external SCA components.
>>>
>>>
>>> Yours,  Mike.
>>>
>>> Jean-Sebastien Delfino wrote:
>>>> I reviewed the update of the Spring extension that Mike has put in the 
>>>> sandbox and it looks like a good step to get the Spring extension going 
>>>> again.
>>>>
>>>> I just had to adjust a few lines to use the 0.90  release SPIs to get 
>>>> it building with the level of code in trunk. I'll commit these fixes 
>>>> later today.
>>>>
>>>> Then I'd like to replace the old modules/spring-implementation in trunk 
>>>> (which is broken) by this update. If there's no objection I'll do that 
>>>> sometime tomorrow.
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>>>
>>>
>>
>> Great, Thanks!
>>
>> I'll work on integrating it with the main build in trunk, and will post 
>> here once it's ready.
>>
>
> The Spring framework implementation extension is now integrated in the 
> main build.
>
> I also did some minor cleanup, removed some old .scdl files and adjusted 
> the disclaimer, license and notice.
>
> -- 
> Jean-Sebastien
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: Reactivating the extension, ready to go with the latest commits to sandbox

Posted by Jean-Sebastien Delfino <js...@apache.org>.
Jean-Sebastien Delfino wrote:
> Mike Edwards wrote:
>> Jean-Sebastien,
>>
>> OK, with the latest commit to the sandbox, there is a working version 
>> of the Spring implementation.  It has the fixes you need, plus a set 
>> of other changes which have got the basic version working.
>>
>> I'll hold off on further updates until it's in trunk.
>>
>> The next step is to get References working from the Spring 
>> implementation to some external SCA components.
>>
>>
>> Yours,  Mike.
>>
>> Jean-Sebastien Delfino wrote:
>>> I reviewed the update of the Spring extension that Mike has put in 
>>> the sandbox and it looks like a good step to get the Spring 
>>> extension going again.
>>>
>>> I just had to adjust a few lines to use the 0.90  release SPIs to 
>>> get it building with the level of code in trunk. I'll commit these 
>>> fixes later today.
>>>
>>> Then I'd like to replace the old modules/spring-implementation in 
>>> trunk (which is broken) by this update. If there's no objection I'll 
>>> do that sometime tomorrow.
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>>
>>
>
> Great, Thanks!
>
> I'll work on integrating it with the main build in trunk, and will 
> post here once it's ready.
>

The Spring framework implementation extension is now integrated in the 
main build.

I also did some minor cleanup, removed some old .scdl files and adjusted 
the disclaimer, license and notice.

-- 
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: Reactivating the extension, ready to go with the latest commits to sandbox

Posted by Jean-Sebastien Delfino <js...@apache.org>.
Mike Edwards wrote:
> Jean-Sebastien,
>
> OK, with the latest commit to the sandbox, there is a working version 
> of the Spring implementation.  It has the fixes you need, plus a set 
> of other changes which have got the basic version working.
>
> I'll hold off on further updates until it's in trunk.
>
> The next step is to get References working from the Spring 
> implementation to some external SCA components.
>
>
> Yours,  Mike.
>
> Jean-Sebastien Delfino wrote:
>> I reviewed the update of the Spring extension that Mike has put in 
>> the sandbox and it looks like a good step to get the Spring extension 
>> going again.
>>
>> I just had to adjust a few lines to use the 0.90  release SPIs to get 
>> it building with the level of code in trunk. I'll commit these fixes 
>> later today.
>>
>> Then I'd like to replace the old modules/spring-implementation in 
>> trunk (which is broken) by this update. If there's no objection I'll 
>> do that sometime tomorrow.
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>
>

Great, Thanks!

I'll work on integrating it with the main build in trunk, and will post 
here once it's ready.

-- 
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: Reactivating the extension, ready to go with the latest commits to sandbox

Posted by Mike Edwards <mi...@gmail.com>.
Jean-Sebastien,

OK, with the latest commit to the sandbox, there is a working version of 
the Spring implementation.  It has the fixes you need, plus a set of 
other changes which have got the basic version working.

I'll hold off on further updates until it's in trunk.

The next step is to get References working from the Spring 
implementation to some external SCA components.


Yours,  Mike.

Jean-Sebastien Delfino wrote:
> I reviewed the update of the Spring extension that Mike has put in the 
> sandbox and it looks like a good step to get the Spring extension going 
> again.
> 
> I just had to adjust a few lines to use the 0.90  release SPIs to get it 
> building with the level of code in trunk. I'll commit these fixes later 
> today.
> 
> Then I'd like to replace the old modules/spring-implementation in trunk 
> (which is broken) by this update. If there's no objection I'll do that 
> sometime tomorrow.
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: Reactivating the extension, was: svn commit: r543273 [1/2]

Posted by ant elder <an...@apache.org>.
On 6/4/07, Mike Edwards <mi...@gmail.com> wrote:
>
> Sebastien,
>
> You may like to wait just a little - I have done a series of updates to
> the code which have got it very near to running basic examples.  I'll
> undertake to fix it to the latest level in trunk as well (I have become
> VERY wary of moving up trunk levels after wasting immense amounts of
> time earlier due to the level of churn in trunk....).


You shouldn't need to worry about this anymore as from 0.90 on things should
be far more stable and backward compatible.

If anyone does happen to notice a breaking change occur in trunk please do
say so we know that it was a considered and intentional thing to be doing.

   ...ant

Re: Reactivating the extension, was: svn commit: r543273 [1/2]

Posted by Mike Edwards <mi...@gmail.com>.
Sebastien,

You may like to wait just a little - I have done a series of updates to 
the code which have got it very near to running basic examples.  I'll 
undertake to fix it to the latest level in trunk as well (I have become 
VERY wary of moving up trunk levels after wasting immense amounts of 
time earlier due to the level of churn in trunk....).


Yours,  Mike.

Jean-Sebastien Delfino wrote:
> I reviewed the update of the Spring extension that Mike has put in the 
> sandbox and it looks like a good step to get the Spring extension going 
> again.
> 
> I just had to adjust a few lines to use the 0.90  release SPIs to get it 
> building with the level of code in trunk. I'll commit these fixes later 
> today.
> 
> Then I'd like to replace the old modules/spring-implementation in trunk 
> (which is broken) by this update. If there's no objection I'll do that 
> sometime tomorrow.
> 
> 
> edwardsmj@apache.org wrote:
> 
>> Author: edwardsmj
>> Date: Thu May 31 14:51:47 2007
>> New Revision: 543273
>>
>> URL: http://svn.apache.org/viewvc?view=rev&rev=543273
>> Log:
>> Initial attempt at Spring implementation type module for the latest 
>> Tuscany core
>>
>> Added:
>>     incubator/tuscany/sandbox/implementation-spring2/
>>     incubator/tuscany/sandbox/implementation-spring2/.ruleset
>>     incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt   
>> (with props)
>>     incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt   
>> (with props)
>>     incubator/tuscany/sandbox/implementation-spring2/README.txt   
>> (with props)
>>     incubator/tuscany/sandbox/implementation-spring2/pom.xml   (with 
>> props)
>>     incubator/tuscany/sandbox/implementation-spring2/src/
>>     incubator/tuscany/sandbox/implementation-spring2/src/main/
>>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/
>>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringSCAReferenceElement.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringSCAServiceElement.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringXMLComponentTypeLoader.java   
>> (with props)
>>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/sca/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/sca/spring.system.scdl 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/services/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/spring.handlers 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/spring.schemas 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/sca/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/sca/xml/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/sca/xml/spring-sca.xsd   
>> (with props)
>>     incubator/tuscany/sandbox/implementation-spring2/src/test/
>>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/
>>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/AbstractSCATestCase.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/HelloWorld.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/HelloWorldProxy.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/TestBean.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/TestBeanImpl.java   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/TestReference.java   
>> (with props)
>>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/application-context.xml   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/default.scdl 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/testReferenceContext.xml   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/testServiceContext.xml   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/tuscany/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/tuscany/xsystem.scdl 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/spring/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/spring/ExplicitSpring.xml   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml   
>> (with props)
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/itests/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/itests/helloworld/ 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/itests/helloworld/SpringHelloWorld.composite 
>>
>>     
>> incubator/tuscany/sandbox/implementation-spring2/src/test/resources/test.xml   
>> (with props)
>>
>> Added: incubator/tuscany/sandbox/implementation-spring2/.ruleset
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/.ruleset?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- incubator/tuscany/sandbox/implementation-spring2/.ruleset (added)
>> +++ incubator/tuscany/sandbox/implementation-spring2/.ruleset Thu May 
>> 31 14:51:47 2007
>> @@ -0,0 +1,190 @@
>> +<?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.
>> +-->
>> +<ruleset name="pmd-eclipse">
>> +  <description>PMD Plugin preferences rule set</description>
>> +  +  +  <rule ref="rulesets/basic.xml/BooleanInstantiation"/>
>> +  <rule ref="rulesets/basic.xml/CollapsibleIfStatements"/>
>> +  <rule ref="rulesets/basic.xml/DoubleCheckedLocking"/>
>> +<!--<rule ref="rulesets/basic.xml/EmptyCatchBlock"/>-->
>> +<!--<rule ref="rulesets/basic.xml/EmptyFinallyBlock"/>-->
>> +<!--<rule ref="rulesets/basic.xml/EmptyIfStmt"/>-->
>> +  <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop"/>
>> +<!--<rule ref="rulesets/basic.xml/EmptyStaticInitializer"/>-->
>> +<!--<rule ref="rulesets/basic.xml/EmptySwitchStatements"/>-->
>> +<!--<rule ref="rulesets/basic.xml/EmptySynchronizedBlock"/>-->
>> +<!--<rule ref="rulesets/basic.xml/EmptyTryBlock"/>-->
>> +<!--<rule ref="rulesets/basic.xml/EmptyWhileStmt"/>-->
>> +  <rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop"/>
>> +  <rule ref="rulesets/basic.xml/JumbledIncrementer"/>
>> +<!--<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>-->
>> +  <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock"/>
>> +  <rule ref="rulesets/basic.xml/UnconditionalIfStatement"/>
>> +  <rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/>
>> +  <rule ref="rulesets/basic.xml/UnnecessaryFinalModifier"/>
>> +  <rule ref="rulesets/basic.xml/UnnecessaryReturn"/>
>> +<!--<rule ref="rulesets/basic.xml/UselessOverridingMethod"/>-->
>> +  +<!--<rule ref="rulesets/braces.xml/ForLoopsMustUseBraces"/>-->
>> +<!--<rule ref="rulesets/braces.xml/IfElseStmtsMustUseBraces"/>-->
>> +<!--<rule ref="rulesets/braces.xml/IfStmtsMustUseBraces"/>-->
>> +<!--<rule ref="rulesets/braces.xml/WhileLoopsMustUseBraces"/>-->
>> +
>> +<!--<rule 
>> ref="rulesets/clone.xml/CloneMethodMustImplementCloneable"/>-->
>> +<!--<rule 
>> ref="rulesets/clone.xml/CloneThrowsCloneNotSupportedException"/>-->
>> +<!--<rule ref="rulesets/clone.xml/ProperCloneImplementation"/>-->
>> +  +<!--<rule ref="rulesets/codesize.xml/CyclomaticComplexity"/>-->
>> +<!--<rule ref="rulesets/codesize.xml/ExcessiveClassLength"/>-->
>> +<!--<rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>-->
>> +<!--<rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>-->
>> +<!--<rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>-->
>> +<!--<rule ref="rulesets/codesize.xml/TooManyFields"/>-->
>> +
>> +<rule ref="rulesets/controversial.xml/AssignmentInOperand"/>
>> +<!--<rule ref="rulesets/controversial.xml/AtLeastOneConstructor"/>-->
>> +<!--<rule ref="rulesets/controversial.xml/CallSuperInConstructor"/>-->
>> +<!--<rule ref="rulesets/controversial.xml/DontImportSun"/>-->
>> +<!--<rule ref="rulesets/controversial.xml/NullAssignment"/>-->
>> +<!--<rule ref="rulesets/controversial.xml/OnlyOneReturn"/>-->
>> +<!--<rule ref="rulesets/controversial.xml/SingularField"/>-->
>> +<!--<rule ref="rulesets/controversial.xml/SuspiciousOctalEscape"/>-->
>> +<!--<rule ref="rulesets/controversial.xml/UnnecessaryConstructor"/>-->
>> +<rule ref="rulesets/controversial.xml/UnnecessaryParentheses"/>
>> +<!--<rule ref="rulesets/controversial.xml/UnusedModifier"/>-->
>> +
>> +<!--<rule ref="rulesets/coupling.xml/CouplingBetweenObjects"/>-->
>> +<!--<rule ref="rulesets/coupling.xml/ExcessiveImports"/>-->
>> +<!--<rule ref="rulesets/coupling.xml/LooseCoupling"/>-->
>> +
>> +<!--<rule 
>> ref="rulesets/design.xml/AbstractClassWithoutAbstractMethod"/>-->
>> +<!--<rule ref="rulesets/design.xml/AccessorClassGeneration"/>-->
>> +<!--<rule ref="rulesets/design.xml/AssignmentToNonFinalStatic"/>-->
>> +<!--<rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts"/>-->
>> +<!--<rule 
>> ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause"/>-->
>> +<rule ref="rulesets/design.xml/AvoidProtectedFieldInFinalClass"/>
>> +<!--<rule ref="rulesets/design.xml/AvoidReassigningParameters"/>-->
>> +<!--<rule ref="rulesets/design.xml/AvoidSynchronizedAtMethodLevel"/>-->
>> +<!--<rule ref="rulesets/design.xml/BadComparison"/>-->
>> +<!--<rule ref="rulesets/design.xml/CloseConnection"/>-->
>> +<!--<rule ref="rulesets/design.xml/CompareObjectsWithEquals"/>-->
>> +<!--<rule ref="rulesets/design.xml/ConfusingTernary"/>-->
>> +<rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod"/>
>> +<!--<rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt"/>-->
>> +<!--<rule ref="rulesets/design.xml/FinalFieldCouldBeStatic"/>-->
>> +<rule ref="rulesets/design.xml/IdempotentOperations"/>
>> +<!--<rule ref="rulesets/design.xml/ImmutableField"/>-->
>> +<!--<rule ref="rulesets/design.xml/InstantiationToGetClass"/>-->
>> +<!--<rule ref="rulesets/design.xml/MissingBreakInSwitch"/>-->
>> +<!--<rule 
>> ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass"/>--> 
>>
>> +<!--<rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement"/>-->
>> +<!--<rule ref="rulesets/design.xml/NonStaticInitializer"/>-->
>> +<rule ref="rulesets/design.xml/OptimizableToArrayCall"/>
>> +<rule ref="rulesets/design.xml/PositionLiteralsFirstInComparisons"/>
>> +<rule ref="rulesets/design.xml/SimplifyBooleanExpressions"/>
>> +<rule ref="rulesets/design.xml/SimplifyBooleanReturns"/>
>> +<rule ref="rulesets/design.xml/SimplifyConditional"/>
>> +<!--<rule ref="rulesets/design.xml/SwitchDensity"/>-->
>> +<!--<rule ref="rulesets/design.xml/SwitchStmtsShouldHaveDefault"/>-->
>> +<rule ref="rulesets/design.xml/UnnecessaryLocalBeforeReturn"/>
>> +<!--<rule ref="rulesets/design.xml/UseLocaleWithCaseConversions"/>-->
>> +<!--<rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify"/>-->
>> +<!--<rule ref="rulesets/design.xml/UseSingleton"/>-->
>> +
>> +<!--<rule ref="rulesets/finalizers.xml/EmptyFinalizer"/>-->
>> +<!--<rule 
>> ref="rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>-->
>> +<!--<rule ref="rulesets/finalizers.xml/FinalizeOverloaded"/>-->
>> +<!--<rule 
>> ref="rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize"/>-->
>> +<!--<rule ref="rulesets/finalizers.xml/FinalizeShouldBeProtected"/>-->
>> +<!--<rule ref="rulesets/finalizers.xml/AvoidCallingFinalize"/>-->
>> +
>> +<!--<rule ref="rulesets/imports.xml/DuplicateImports"/>-->
>> +<!--<rule ref="rulesets/imports.xml/DontImportJavaLang"/>-->
>> +<!--<rule ref="rulesets/imports.xml/UnusedImports"/>-->
>> +<!--<rule ref="rulesets/imports.xml/ImportFromSamePackage"/>-->
>> +
>> +<!--<rule ref="rulesets/javabeans.xml/BeanMembersShouldSerialize"/>-->
>> +<!--<rule ref="rulesets/javabeans.xml/MissingSerialVersionUID"/>-->
>> +
>> +<!--<rule ref="rulesets/junit.xml/JUnitStaticSuite"/>-->
>> +<!--<rule ref="rulesets/junit.xml/JUnitSpelling"/>-->
>> +<!--<rule 
>> ref="rulesets/junit.xml/JUnitAssertionsShouldIncludeMessage"/>-->
>> +<!--<rule ref="rulesets/junit.xml/JUnitTestsShouldIncludeAssert"/>-->
>> +<!--<rule ref="rulesets/junit.xml/TestClassWithoutTestCases"/>-->
>> +<!--<rule ref="rulesets/junit.xml/UnnecessaryBooleanAssertion"/>-->
>> +<!--<rule 
>> ref="rulesets/junit.xml/UseAssertEqualsInsteadOfAssertTrue"/>-->
>> +<!--<rule ref="rulesets/junit.xml/UseAssertSameInsteadOfAssertTrue"/>-->
>> +
>> +  <!--<rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace"/>-->
>> +  <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
>> +  <!--<rule ref="rulesets/logging-java.xml/MoreThanOneLogger"/>-->
>> +  <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
>> +  <!--<rule ref="rulesets/logging-java.xml/LogBlockWithoutIf"/>-->
>> +  <!--<rule ref="rulesets/logging-java.xml/SystemPrintln"/>-->
>> +  <!--<rule 
>> ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/>--> 
>>
>> +  <!--<rule ref="rulesets/logging-jakarta-commons.xml/ProperLogger"/>-->
>> +  +  <!--<rule ref="rulesets/naming.xml/ShortVariable"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/LongVariable"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/ShortMethodName"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/VariableNamingConventions"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/MethodNamingConventions"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/ClassNamingConventions"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/AbstractNaming"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/AvoidDollarSigns"/>-->
>> +  <!--<rule 
>> ref="rulesets/naming.xml/MethodWithSameNameAsEnclosingClass"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/SuspiciousConstantFieldName"/>-->
>> +  <!--<rule 
>> ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName"/>-->
>> +  <!--<rule 
>> ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName"/>-->
>> +  <!--<rule 
>> ref="rulesets/naming.xml/AvoidNonConstructorMethodsWithClassName"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/NoPackage"/>-->
>> +  <!--<rule ref="rulesets/naming.xml/PackageCase"/>-->
>> +
>> +  <!--<rule 
>> ref="rulesets/optimizations.xml/LocalVariableCouldBeFinal"/>-->
>> +  <!--<rule 
>> ref="rulesets/optimizations.xml/MethodArgumentCouldBeFinal"/>-->
>> +  <!--<rule 
>> ref="rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops"/>-->
>> +  <!--<rule 
>> ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector"/>-->
>> +  <!--<rule ref="rulesets/optimizations.xml/SimplifyStartsWith"/>-->
>> +  <!--<rule 
>> ref="rulesets/optimizations.xml/UseStringBufferForStringAppends"/>-->
>> +
>> +  <!--<rule 
>> ref="rulesets/strictexception.xml/AvoidCatchingThrowable"/>-->
>> +  <!--<rule 
>> ref="rulesets/strictexception.xml/SignatureDeclareThrowsException"/>-->
>> +  <!--<rule 
>> ref="rulesets/strictexception.xml/ExceptionAsFlowControl"/>-->
>> +  <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingNPE"/>-->
>> +  <!--<rule 
>> ref="rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes"/>-->
>> +  <!--<rule 
>> ref="rulesets/strictexception.xml/AvoidThrowingNullPointerException"/>-->
>> + +  <!--<rule ref="rulesets/strings.xml/AvoidDuplicateLiterals"/>-->
>> +  <!--<rule ref="rulesets/strings.xml/StringInstantiation"/>-->
>> +  <!--<rule ref="rulesets/strings.xml/StringToString"/>-->
>> +  <!--<rule 
>> ref="rulesets/strings.xml/AvoidConcatenatingNonLiteralsInStringBuffer"/>--> 
>>
>> +  <!--<rule ref="rulesets/strings.xml/UnnecessaryCaseChange"/>-->
>> +  +  <!--<rule 
>> ref="rulesets/sunsecure.xml/MethodReturnsInternalArray"/>-->
>> +  <!--<rule ref="rulesets/sunsecure.xml/ArrayIsStoredDirectly"/>-->
>> +  +  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/>
>> +  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
>> +  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
>> +  <!--<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>-->
>> +  +</ruleset>
>>
>> Added: incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt (added)
>> +++ incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt Thu 
>> May 31 14:51:47 2007
>> @@ -0,0 +1,202 @@
>> +
>> +                                 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, serviceDefinition 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.
>>
>> Propchange: incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Added: incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt (added)
>> +++ incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt Thu 
>> May 31 14:51:47 2007
>> @@ -0,0 +1,14 @@
>> +${pom.name}
>> +Copyright (c) 2005 - 2006 The Apache Software Foundation
>> +
>> +Apache Tuscany is an effort undergoing incubation at The Apache Software
>> +Foundation (ASF), sponsored by the Apache Web Services PMC. 
>> Incubation is
>> +required of all newly accepted projects until a further review 
>> indicates that
>> +the infrastructure, communications, and decision making process have 
>> stabilized
>> +in a manner consistent with other successful ASF projects. While 
>> incubation
>> +status is not necessarily a reflection of the completeness or 
>> stability of the
>> +code, it does indicate that the project has yet to be fully endorsed 
>> by the ASF.
>> +
>> +This product includes software developed by
>> +The Apache Software Foundation (http://www.apache.org/).
>> +
>>
>> Propchange: incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Added: incubator/tuscany/sandbox/implementation-spring2/README.txt
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/README.txt?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- incubator/tuscany/sandbox/implementation-spring2/README.txt (added)
>> +++ incubator/tuscany/sandbox/implementation-spring2/README.txt Thu 
>> May 31 14:51:47 2007
>> @@ -0,0 +1,35 @@
>> +Apache Tuscany M1 build (May, 2006)
>> +===================================
>> +
>> +http://incubator.apache.org/tuscany/
>> +
>> +Tuscany is an effort undergoing incubation at the Apache Software 
>> Foundation
>> +(ASF), sponsored by the Web Services PMC.
>> +
>> +Incubation is required of all newly accepted projects until a further 
>> review
>> +indicates that the infrastructure, communications, and decision 
>> making process
>> +have stabilized in a manner consistent with other successful ASF 
>> projects. +
>> +While incubation status is not necessarily a reflection of the 
>> completeness or +stability of the code, it does indicate that the 
>> project has yet to be fully
>> +endorsed by the ASF.
>> +
>> +
>> +Support
>> +-------
>> +
>> +Any problem with this release can be reported to the Tuscany mailing 
>> list +or in the JIRA issue tracker.
>> +
>> +Mailing list subscription:
>> +    tuscany-dev-subscribe@ws.apache.org
>> +
>> +Jira:
>> +    http://issues.apache.org/jira/browse/Tuscany
>> +
>> +
>> +Thank you for using Tuscany!
>> +
>> +
>> +The Tuscany Team. +
>>
>> Propchange: incubator/tuscany/sandbox/implementation-spring2/README.txt
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Added: incubator/tuscany/sandbox/implementation-spring2/pom.xml
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/pom.xml?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- incubator/tuscany/sandbox/implementation-spring2/pom.xml (added)
>> +++ incubator/tuscany/sandbox/implementation-spring2/pom.xml Thu May 
>> 31 14:51:47 2007
>> @@ -0,0 +1,109 @@
>> +<?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>1.0-incubating-SNAPSHOT</version>
>> +        <relativePath>../pom.xml</relativePath>
>> +    </parent>
>> +    <artifactId>tuscany-implementation-spring</artifactId>
>> +    <name>Apache Tuscany Spring Framework Implementation Model</name>
>> +    <description>Container for managing Spring composites</description>
>> +    <packaging>jar</packaging>
>> +
>> +    <dependencies>
>> +        <dependency>
>> +            <groupId>org.apache.tuscany.sca</groupId>
>> +            <artifactId>tuscany-assembly</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>
>> +        <dependency>
>> +            <groupId>org.apache.tuscany.sca</groupId>
>> +            <artifactId>tuscany-core</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>
>> +        <dependency>
>> +            <groupId>org.apache.tuscany.sca</groupId>
>> +            <artifactId>tuscany-interface</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>        +        <dependency>
>> +            <groupId>org.apache.tuscany.sca</groupId>
>> +            <artifactId>tuscany-assembly-xml</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>        +        <dependency>
>> +            <groupId>org.apache.tuscany.sca</groupId>
>> +            <artifactId>tuscany-contribution-impl</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>
>> +        <dependency>
>> +            <groupId>org.osoa</groupId>
>> +            <artifactId>sca-api</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>
>> +        <dependency>
>> +            <groupId>org.apache.tuscany.sca</groupId>
>> +            <artifactId>tuscany-databinding</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>
>> +        <dependency>
>> +            <groupId>org.apache.tuscany.sca</groupId>
>> +            <artifactId>tuscany-implementation-java-runtime</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>  +        +        <dependency>
>> +            <groupId>org.apache.tuscany.sca</groupId>
>> +            <artifactId>tuscany-host-embedded</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>
>> +        +        <!-- Temporarily depend on implementation-script for 
>> a set of utility classes -->
>> +        <dependency>
>> +            <groupId>org.apache.tuscany.sca</groupId>
>> +            <artifactId>tuscany-implementation-script</artifactId>
>> +            <version>1.0-incubating-SNAPSHOT</version>
>> +        </dependency>
>> +                +        <!-- Spring dependencies... -->    +        
>> <dependency>
>> +            <groupId>org.springframework</groupId>
>> +            <artifactId>spring-core</artifactId>
>> +            <version>2.0.3</version>
>> +        </dependency>
>> +
>> +        <dependency>
>> +            <groupId>org.springframework</groupId>
>> +            <artifactId>spring-beans</artifactId>
>> +            <version>2.0.3</version>
>> +        </dependency>
>> +
>> +        <dependency>
>> +            <groupId>org.springframework</groupId>
>> +            <artifactId>spring-context</artifactId>
>> +            <version>2.0.3</version>
>> +        </dependency>
>> +          +    </dependencies>
>> +
>> +</project>
>>
>> Propchange: incubator/tuscany/sandbox/implementation-spring2/pom.xml
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: incubator/tuscany/sandbox/implementation-spring2/pom.xml
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,205 @@
>> +/*
>> + * 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.implementation.spring;
>> +
>> +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.Property;
>> +import org.apache.tuscany.sca.assembly.Reference;
>> +import org.apache.tuscany.sca.assembly.Service;
>> +import org.apache.tuscany.sca.assembly.xml.Constants;
>> +import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
>> +import 
>> org.apache.tuscany.sca.contribution.service.ContributionReadException;
>> +import 
>> org.apache.tuscany.sca.contribution.service.ContributionResolveException;
>> +import 
>> org.apache.tuscany.sca.contribution.service.ContributionWireException;
>> +import 
>> org.apache.tuscany.sca.contribution.service.ContributionWriteException;
>> +import 
>> org.apache.tuscany.implementation.spi.AbstractStAXArtifactProcessor;
>> +import org.apache.tuscany.implementation.spi.ResourceHelper;
>> +import 
>> org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
>> +
>> +import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
>> +import org.apache.tuscany.sca.policy.PolicyFactory;
>> +import 
>> org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector; 
>>
>> +
>> +
>> +/*
>> + * SpringArtifactProcessor is responsible for processing the XML of 
>> an <implementation.spring.../>
>> + * element in an SCA SCDL file.
>> + */
>> +public class SpringArtifactProcessor 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.SCA10_NS, IMPLEMENTATION_SPRING);
>> +    private static final String MSG_LOCATION_MISSING = "Reading 
>> implementation.spring - location attribute missing";
>> +    +    private AssemblyFactory         assemblyFactory;
>> +    private JavaInterfaceFactory    javaFactory;
>> +    private JavaInterfaceIntrospector     interfaceIntrospector;
>> +    private PolicyFactory             policyFactory;
>> +    // TODO: runtime needs to provide a better way to get the 
>> PropertyValueObjectFactory
>> +    private SpringPropertyValueObjectFactory propertyFactory;
>> +
>> +
>> +    public SpringArtifactProcessor( AssemblyFactory             
>> assemblyFactory,
>> +                                    JavaInterfaceFactory         
>> javaFactory,
>> +                                    JavaInterfaceIntrospector     
>> interfaceIntrospector,
>> +                                    PolicyFactory                 
>> policyFactory,
>> +                                    
>> SpringPropertyValueObjectFactory     propertyFactory ) {
>> +        this.assemblyFactory     = assemblyFactory;
>> +        this.javaFactory         = javaFactory;
>> +        this.interfaceIntrospector = interfaceIntrospector;
>> +        this.policyFactory         = policyFactory;
>> +        this.propertyFactory     = propertyFactory;
>> +        +    }
>> +
>> +    /*
>> +     * 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 METAINF/spring directory.
>> +     */
>> +    public SpringImplementation read(XMLStreamReader reader) throws 
>> ContributionReadException {
>> +
>> +        try {
>> +            /* Read the location attribute for the spring 
>> implementation  */
>> +            String springLocation = reader.getAttributeValue(null, 
>> LOCATION);
>> +            if (springLocation == null) {
>> +                throw new ContributionReadException( 
>> MSG_LOCATION_MISSING );
>> +            }
>> +            /* Create the Spring implementation and set the location 
>> into it */
>> +            SpringImplementation springImplementation = new 
>> SpringImplementation();
>> +            springImplementation.setSpringLocation( springLocation );
>> +
>> +            // Skip to end element
>> +            while (reader.hasNext()) {
>> +                if (reader.next() == END_ELEMENT && 
>> IMPLEMENTATION_SPRING_QNAME.equals(reader.getName())) {
>> +                    break;
>> +                }
>> +            } // end while
>> +
>> +            processComponentType(springImplementation);
>> +
>> +            return springImplementation;
>> +
>> +        } catch (XMLStreamException e) {
>> +            throw new ContributionReadException(e);
>> +        }
>> +    } // 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) throws ContributionWriteException {
>> +        try {
>> +
>> +            writer.writeStartElement(Constants.SCA10_NS, 
>> IMPLEMENTATION_SPRING);
>> +            if (springImplementation.getSpringLocation() != null) {
>> +                writer.writeAttribute(LOCATION, 
>> springImplementation.getSpringLocation());
>> +            }
>> +            writer.writeEndElement();
>> +
>> +        } catch (XMLStreamException e) {
>> +            throw new ContributionWriteException(e);
>> +        }
>> +    } // 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) +        throws ContributionResolveException {
>> +
>> +        /* Load the Spring component type by reading the Spring 
>> application context */
>> +        SpringXMLComponentTypeLoader springLoader = +            new 
>> SpringXMLComponentTypeLoader( assemblyFactory, interfaceIntrospector, 
>> +                                              javaFactory, 
>> policyFactory );
>> +        try {
>> +            // Load the Spring Implementation information from its 
>> application context file...
>> +            springLoader.load( springImplementation );
>> +        } catch ( ContributionReadException e ) {
>> +            throw new ContributionResolveException( e );
>> +        }
>> +       
>> +        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);
>> +            if (componentType.isUnresolved()) {
>> +                throw new 
>> ContributionResolveException("SpringArtifactProcessor: unable to 
>> resolve componentType for Spring component");
>> +            } +            
>> springImplementation.setComponentType(componentType);
>> +            +            springImplementation.setUnresolved(false);
>> +        } // end if
>> +
>> +    } // end method resolve
>> +
>> +    public void wire(SpringImplementation model) throws 
>> ContributionWireException {
>> +        // TODO Auto-generated method stub
>> +    }
>> +
>> +    public QName getArtifactType() {
>> +        return IMPLEMENTATION_SPRING_QNAME;
>> +    }
>> +
>> +    public Class<SpringImplementation> getModelType() {
>> +        return SpringImplementation.class;
>> +    }
>> +
>> +} // end class SpringArtifactProcessor
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,59 @@
>> +/*
>> + * 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.implementation.spring;
>> +
>> +import java.util.List;
>> +import java.util.ArrayList;
>> +
>> +/**
>> + * 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: 512919 $ $Date: 2007-02-28 19:32:56 +0000 (Wed, 28 
>> Feb 2007) $
>> + */
>> +public class SpringBeanElement {
>> +
>> +    private String id;
>> +    private String className;
>> +    private List<SpringPropertyElement> properties = new 
>> ArrayList<SpringPropertyElement>();
>> +
>> +    public SpringBeanElement( String id, String className ) {
>> +        this.id = id;
>> +        this.className = className;
>> +    }
>> +    +    public String getClassName() {
>> +        return className;
>> +    }
>> +    +    public String getId() {
>> +        return id;
>> +    }
>> +    +    public List<SpringPropertyElement> getProperties() {
>> +        return properties;
>> +    }
>> +    +    public void addProperty( SpringPropertyElement property ) {
>> +        properties.add( property );
>> +    }
>> +    +    +} // end class SpringBeanElement
>> \ No newline at end of file
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,151 @@
>> +/*
>> + * 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.implementation.spring;
>> +
>> +import java.util.List;
>> +import java.util.ArrayList;
>> +import java.util.Iterator;
>> +
>> +import org.apache.tuscany.sca.assembly.AssemblyFactory;
>> +import 
>> org.apache.tuscany.sca.contribution.service.ContributionResolveException;
>> +import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
>> +import 
>> org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; 
>>
>> +import org.apache.tuscany.sca.implementation.java.JavaImplementation;
>> +import 
>> org.apache.tuscany.sca.implementation.java.JavaImplementationFactory;
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.DefaultJavaClassIntrospectorExtensionPoint; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.ExtensibleJavaClassIntrospector; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.IntrospectionException; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospector; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospectorExtensionPoint; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.JavaClassVisitor;
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.AllowsPassByReferenceProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.BaseJavaClassVisitor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.ConstructorProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.ContextProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.ConversationProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.DestroyProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.EagerInitProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.HeuristicPojoProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.InitProcessor;
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.PolicyProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.PropertyProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.ReferenceProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.ResourceProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.ScopeProcessor; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.impl.ServiceProcessor; 
>>
>> +import org.apache.tuscany.sca.policy.PolicyFactory;
>> +
>> +import org.apache.tuscany.sca.assembly.ComponentType;
>> +import org.apache.tuscany.sca.assembly.Reference;
>> +import org.apache.tuscany.sca.assembly.Service;
>> +
>> +/**
>> + * Provides introspection functions for Spring beans
>> + * This version leans heavily on the implementation-java classes
>> + *
>> + * @version $Rev: 512919 $ $Date: 2007-02-28 19:32:56 +0000 (Wed, 28 
>> Feb 2007) $
>> + */
>> +public class SpringBeanIntrospector {
>> +
>> +    private JavaClassIntrospector classIntrospector;
>> +    private JavaClassIntrospectorExtensionPoint classVisitors = 
>> +        new DefaultJavaClassIntrospectorExtensionPoint();
>> +    private JavaImplementationFactory javaImplementationFactory;
>> +
>> +    /**
>> +     * The constructor sets up the various visitor elements that will 
>> be used to inrospect
>> +     * the Spring bean and extract SCA information
>> +     * @param assemblyFactory - an AssemblyFactory
>> +     * @param interfaceIntrospector - an Java InterfaceIntrospector
>> +     * @param javaFactory - a Java Interface Factory
>> +     */
>> +    public SpringBeanIntrospector( AssemblyFactory assemblyFactory,
>> +             JavaInterfaceIntrospector interfaceIntrospector,
>> +             JavaInterfaceFactory javaFactory,
>> +             PolicyFactory           policyFactory ) {
>> +       
>> +        // Create the list of class visitors
>> +        BaseJavaClassVisitor[] extensions = new BaseJavaClassVisitor[] {
>> +                new ConstructorProcessor(assemblyFactory),
>> +                new AllowsPassByReferenceProcessor(assemblyFactory),
>> +                new ContextProcessor(assemblyFactory),
>> +                new ConversationProcessor(assemblyFactory),
>> +                new DestroyProcessor(assemblyFactory),
>> +                new EagerInitProcessor(assemblyFactory),
>> +                new InitProcessor(assemblyFactory),
>> +                new PropertyProcessor(assemblyFactory),
>> +                new ReferenceProcessor(assemblyFactory, javaFactory, 
>> interfaceIntrospector),
>> +                new ResourceProcessor(assemblyFactory),
>> +                new ScopeProcessor(assemblyFactory),
>> +                new ServiceProcessor(assemblyFactory, javaFactory, 
>> interfaceIntrospector),
>> +                new HeuristicPojoProcessor(assemblyFactory, 
>> javaFactory, interfaceIntrospector),
>> +                new PolicyProcessor(assemblyFactory, policyFactory)
>> +            };
>> +        for (JavaClassVisitor extension : extensions) {
>> +            classVisitors.addClassVisitor(extension);
>> +        }
>> +        this.classIntrospector = new 
>> ExtensibleJavaClassIntrospector(classVisitors);
>> +        +        javaImplementationFactory = new 
>> DefaultJavaImplementationFactory();
>> +
>> +    } // 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
>> +     * @throws ContributionResolveException - if there was a problem 
>> resolving the
>> +     * Spring Bean or its componentType
>> +     *
>> +     */
>> +    public void 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();
>> +       
>> +        try {
>> +            // Introspect the bean...the results of the introspection 
>> are placed into the Java implementation
>> +            classIntrospector.introspect( beanClass, 
>> javaImplementation);
>> +            +            // 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
>> +        +        List<Service> services = 
>> javaImplementation.getServices();
>> +        for ( Service service : services ) {
>> +            String name = service.getName();
>> +            System.out.println("Spring Bean: found service with name: 
>> " + name);
>> +        } // end for
>> +
>> +    } // end method introspectBean
>> +    +  +    +} // end class SpringBeanIntrospector
>> \ No newline at end of file
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,80 @@
>> +/*
>> + * 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.implementation.spring;
>> +
>> +import java.util.List;
>> +
>> +import org.apache.tuscany.sca.assembly.ComponentType;
>> +import org.apache.tuscany.sca.assembly.Implementation;
>> +import org.apache.tuscany.sca.assembly.Reference;
>> +import org.apache.tuscany.sca.assembly.Service;
>> +import org.apache.tuscany.sca.assembly.impl.ComponentTypeImpl;
>> +
>> +/**
>> + * Represents a Spring implementation.
>> + * + * TBD: Incomplete and needs substantial work...   MJE, 4th May 2007
>> + */
>> +public class SpringImplementation  extends ComponentTypeImpl 
>> implements Implementation {
>> +
>> +    /* The location attribute which points to the Spring 
>> application-context XML file */
>> +    private String springLocation;
>> +    private ComponentType componentType;
>> +
>> +    protected SpringImplementation() {
>> +        this.springLocation = null;
>> +        setUnresolved(true);
>> +    }
>> +
>> +    /* Returns the location attribute for this Spring implementation */
>> +    public String getSpringLocation() {
>> +        return springLocation;
>> +    }
>> +    +    /**
>> +     * Sets the location attribute for this Spring implementation
>> +     * location - a URI to the Spring application-context file
>> +     */
>> +    public void setSpringLocation(String location) {
>> +        this.springLocation = location;
>> +        return;
>> +    }
>> +
>> +    /* +     * 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;
>> +    }
>> +
>> +    public List<Service> getServices() {
>> +        return componentType.getServices();
>> +    }
>> +
>> +    public List<Reference> getReferences() {
>> +        return componentType.getReferences();
>> +    }
>> +}
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,46 @@
>> +package org.apache.tuscany.implementation.spring;
>> +
>> +import java.net.URI;
>> +
>> +import org.apache.tuscany.sca.assembly.ComponentService;
>> +import org.apache.tuscany.sca.assembly.Service;
>> +import org.apache.tuscany.sca.core.invocation.ProxyFactory;
>> +import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
>> +import org.apache.tuscany.sca.factory.ObjectFactory;
>> +import org.apache.tuscany.sca.interfacedef.Operation;
>> +import org.apache.tuscany.sca.invocation.Invoker;
>> +import org.apache.tuscany.sca.runtime.RuntimeComponent;
>> +import org.apache.tuscany.sca.runtime.RuntimeComponentService;
>> +import org.apache.tuscany.sca.provider.ImplementationProvider;
>> +import org.osoa.sca.ComponentContext;
>> +
>> +// TODO - create a working version of this invoker...
>> +public class SpringImplementationProvider implements 
>> ImplementationProvider {
>> +    private SpringImplementation implementation;
>> +    private RuntimeComponent component;
>> +    +    public SpringImplementationProvider( RuntimeComponent 
>> component,
>> +                                         SpringImplementation 
>> implementation ) {
>> +        super();
>> +        this.implementation = implementation;
>> +        this.component = component;
>> +    } // end constructor
>> +
>> +    public Invoker createInvoker(RuntimeComponentService service, 
>> Operation operation) {
>> +        return new SpringInvoker(this, operation);
>> +    }
>> +
>> +    public Invoker createCallbackInvoker(Operation operation) {
>> +        return new SpringInvoker(this, operation);
>> +    }
>> +    +
>> +    public void start() {
>> +        // TODO
>> +    }
>> +
>> +    public void stop() {
>> +        // TODO
>> +    }
>> +
>> +} // end class SpringImplementationProvider
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,26 @@
>> +package org.apache.tuscany.implementation.spring;
>> +
>> +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
>> + * @author MikeEdwards
>> + *
>> + */
>> +public class SpringImplementationProviderFactory implements 
>> ImplementationProviderFactory<SpringImplementation> {
>> +
>> +    public SpringImplementationProviderFactory() {
>> +        super();
>> +    }
>> +
>> +    public ImplementationProvider 
>> createImplementationProvider(RuntimeComponent component,
>> +                                                               
>> SpringImplementation implementation) {
>> +        return new SpringImplementationProvider( component, 
>> implementation );
>> +    }
>> +
>> +    public Class<SpringImplementation> getModelType() {
>> +        return SpringImplementation.class;
>> +    }
>> +} // end class SpringImplementationProviderFactory
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,38 @@
>> +package org.apache.tuscany.implementation.spring;
>> +
>> +
>> +import javax.script.Invocable;
>> +import javax.script.ScriptException;
>> +
>> +import org.apache.axiom.om.OMElement;
>> +import org.apache.tuscany.sca.interfacedef.Operation;
>> +import org.apache.tuscany.sca.invocation.Invoker;
>> +import org.apache.tuscany.sca.invocation.Message;
>> +
>> +public class SpringInvoker implements Invoker {
>> +   
>> +    private SpringImplementationProvider provider;
>> +    private Operation operation;
>> +   
>> +    public SpringInvoker(SpringImplementationProvider provider, 
>> Operation operation) {
>> +        this.provider = provider;
>> +        +        // Use the Operation instead of the Operation name 
>> as it may be a dynamic
>> +        // operation so the name may change at runtime
>> +        this.operation = operation;
>> +    }
>> +
>> +    private Object doInvoke(Object[] objects) throws ScriptException {
>> +        // TODO
>> +        Object response = new Object();
>> +
>> +        return response;
>> +    }
>> +
>> +    public Message invoke(Message msg) {
>> +        // TODO
>> +        return msg;
>> +    }
>> +
>> +
>> +}
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,127 @@
>> +/*
>> + * 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.implementation.spring;
>> +
>> +import java.util.Map;
>> +
>> +import org.apache.tuscany.sca.assembly.AssemblyFactory;
>> +import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
>> +import 
>> org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; 
>>
>> +import org.apache.tuscany.sca.core.ExtensionPointRegistry;
>> +import org.apache.tuscany.sca.core.ModuleActivator;
>> +import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
>> +import org.apache.tuscany.sca.databinding.TransformerExtensionPoint;
>> +import org.apache.tuscany.sca.databinding.Mediator;
>> +import org.apache.tuscany.sca.databinding.impl.MediatorImpl;
>> +import 
>> org.apache.tuscany.sca.implementation.java.context.JavaPropertyValueObjectFactory; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.DefaultJavaClassIntrospectorExtensionPoint; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospectorExtensionPoint; 
>>
>> +import 
>> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationProviderFactory; 
>>
>> +
>> +import 
>> org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
>> +import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
>> +import 
>> org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector; 
>>
>> +import 
>> org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospectorExtensionPoint; 
>>
>> +import 
>> org.apache.tuscany.sca.interfacedef.java.introspect.ExtensibleJavaInterfaceIntrospector; 
>>
>> +import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
>> +import org.apache.tuscany.sca.policy.PolicyFactory;
>> +import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
>> +
>> +/*
>> + * ModuleActivator class for the Spring module
>> + * - this class is invoked by the Tuscany SCA core when the Spring 
>> module is included in the
>> + * runtime package
>> + * - it registers a series of extension points which the core will 
>> use when dealing with
>> + * components which use <implementation.spring.../>
>> + * + */
>> +public class SpringModuleActivator implements ModuleActivator {
>> +
>> +    private SpringArtifactProcessor springArtifactProcessor;
>> +    private AssemblyFactory         assemblyFactory;
>> +    private JavaInterfaceFactory     javaFactory;
>> +    private PolicyFactory             policyFactory;
>> +    private JavaInterfaceIntrospector interfaceIntrospector;
>> +    private JavaClassIntrospectorExtensionPoint classVisitors;
>> +    +    public SpringModuleActivator() {
>> +        assemblyFactory = new DefaultAssemblyFactory();
>> +        javaFactory = new DefaultJavaInterfaceFactory();
>> +        policyFactory = new DefaultPolicyFactory();
>> +        +    } // end constructor
>> +    +    /*
>> +     * start() is called when the Tuscany core starts the Spring module
>> +     * +     * It is in this method that the registration of the 
>> extension points takes place:
>> +     * - SpringArtifactProcessor processes the XML for 
>> <implementation.spring.../>
>> +     * - SpringComponentBuilder actually builds components based on 
>> <implementation.spring.../>
>> +     * - SpringPropertyValueObjectFactory handles properties for 
>> implementation.spring components
>> +     */
>> +    public void start(ExtensionPointRegistry registry) {
>> +
>> +        DataBindingExtensionPoint dataBindingRegistry = 
>> registry.getExtensionPoint(DataBindingExtensionPoint.class);
>> +                +        // TODO: could the runtime have a default 
>> PropertyValueObjectFactory in the registry
>> +        DataBindingExtensionPoint dataBindings = 
>> registry.getExtensionPoint(DataBindingExtensionPoint.class);
>> +        TransformerExtensionPoint transformers = 
>> registry.getExtensionPoint(TransformerExtensionPoint.class); +        
>> MediatorImpl mediator = new MediatorImpl(dataBindings, transformers);
>> +        SpringPropertyValueObjectFactory propertyFactory = new 
>> SpringPropertyValueObjectFactory(mediator);
>> +        +        // Tools for Java interface handling
>> +        JavaInterfaceIntrospectorExtensionPoint interfaceVisitors = 
>> +            
>> registry.getExtensionPoint(JavaInterfaceIntrospectorExtensionPoint.class); 
>>
>> +        interfaceIntrospector = new 
>> ExtensibleJavaInterfaceIntrospector(javaFactory, interfaceVisitors);
>> +
>> +        // Create the artifact processor for Spring artifacts and add 
>> to artifact processors
>> +        springArtifactProcessor = new SpringArtifactProcessor( 
>> assemblyFactory, javaFactory,
>> +                interfaceIntrospector, policyFactory, propertyFactory );
>> +        +        StAXArtifactProcessorExtensionPoint staxProcessors = 
>> registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
>> +        staxProcessors.addArtifactProcessor(springArtifactProcessor);
>> +        +        // Create SpringImplementationFactory and add to 
>> provider factories +        SpringImplementationProviderFactory 
>> springImplementationProviderFactory =
>> +            new SpringImplementationProviderFactory();
>> +        +        ProviderFactoryExtensionPoint providerFactories = 
>> registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
>> +        
>> providerFactories.addProviderFactory(springImplementationProviderFactory); 
>>
>> +    }
>> +
>> +    /*
>> +     * stop() is called when the Tuscany core stops the Spring module
>> +     * At present, no action is taken
>> +     */
>> +    public void stop(ExtensionPointRegistry registry) {
>> +        StAXArtifactProcessorExtensionPoint staxProcessors = 
>> registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
>> +        
>> staxProcessors.removeArtifactProcessor(springArtifactProcessor);       
>> +    }
>> +    +    /*
>> +     * Return a map of the extension points for the Spring module.
>> +     * Not implemented at present (the core does not seem to require it)
>> +     */
>> +    public Object[] getExtensionPoints() {
>> +        classVisitors = new 
>> DefaultJavaClassIntrospectorExtensionPoint();
>> +        return new Object[] { classVisitors };
>> +    }
>> +
>> +}
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,46 @@
>> +/*
>> + * 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.implementation.spring;
>> +
>> +
>> +/**
>> + * Represents a <property> element in a Spring application-context
>> + * - this has name and ref attributes
>> + * + * @version $Rev: 512919 $ $Date: 2007-02-28 19:32:56 +0000 (Wed, 
>> 28 Feb 2007) $
>> + */
>> +public class SpringPropertyElement {
>> +
>> +    private String name;
>> +    private String ref;
>> +    +    public SpringPropertyElement( String name, String ref ) {
>> +        this.name = name;
>> +        this.ref = ref;
>> +    }
>> +    +    public String getName() {
>> +        return name;
>> +    }
>> +    +    public String getRef() {
>> +        return ref;
>> +    }
>> +    +} // end class SpringPropertyElement
>> \ No newline at end of file
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>> Added: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java?view=auto&rev=543273 
>>
>> ============================================================================== 
>>
>> --- 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java 
>> (added)
>> +++ 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java 
>> Thu May 31 14:51:47 2007
>> @@ -0,0 +1,46 @@
>> +/*
>> + * 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.implementation.spring;
>> +
>> +import 
>> org.apache.tuscany.sca.implementation.java.context.JavaPropertyValueObjectFactory; 
>>
>> +import org.apache.tuscany.sca.databinding.Mediator;
>> +
>> +/**
>> + * + * @author MikeEdwards
>> + *
>> + * Factory class for PropertyValueObjects for Spring implementations
>> + * + * 6th May 2007: Chosen a very simple design for this class - 
>> since Spring implementations are a form
>> + * of Java POJO, the simple design chosen for this class is to re-use 
>> the PropertyValueObjectFactory
>> + * implementation from the base implementation-java-runtime package 
>> of Tuscany SCA Java, since the + * same properties are going to be 
>> rendered in the same way to simple Tuscany POJOs and to Spring
>> + * Bean POJOs.  Mike Edwards
>> + */
>> +public class SpringPropertyValueObjectFactory extends 
>> JavaPropertyValueObjectFactory {
>> +   
>> +    /**
>> +     * Constructor simply defers to the superclass, along with the 
>> complete implementation...
>> +     */
>> +    public SpringPropertyValueObjectFactory(Mediator mediator) {
>> +        super(mediator);
>> +    } // end constructor JavaPropertyValueObjectFactory(Mediator 
>> mediator)
>> +    +} // end class SpringPropertyValueObjectFactory
>> \ No newline at end of file
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:eol-style = native
>>
>> Propchange: 
>> incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java 
>>
>> ------------------------------------------------------------------------------ 
>>
>>     svn:keywords = Rev,Date
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
>> For additional commands, e-mail: tuscany-commits-help@ws.apache.org
>>
>>
>>   
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Reactivating the extension, was: svn commit: r543273 [1/2]

Posted by Jean-Sebastien Delfino <js...@apache.org>.
I reviewed the update of the Spring extension that Mike has put in the 
sandbox and it looks like a good step to get the Spring extension going 
again.

I just had to adjust a few lines to use the 0.90  release SPIs to get it 
building with the level of code in trunk. I'll commit these fixes later 
today.

Then I'd like to replace the old modules/spring-implementation in trunk 
(which is broken) by this update. If there's no objection I'll do that 
sometime tomorrow.


edwardsmj@apache.org wrote:
> Author: edwardsmj
> Date: Thu May 31 14:51:47 2007
> New Revision: 543273
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=543273
> Log:
> Initial attempt at Spring implementation type module for the latest Tuscany core
>
> Added:
>     incubator/tuscany/sandbox/implementation-spring2/
>     incubator/tuscany/sandbox/implementation-spring2/.ruleset
>     incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/README.txt   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/pom.xml   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringSCAReferenceElement.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringSCAServiceElement.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringXMLComponentTypeLoader.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/sca/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/sca/spring.system.scdl
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/services/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/spring.handlers
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/META-INF/spring.schemas
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/sca/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/sca/xml/
>     incubator/tuscany/sandbox/implementation-spring2/src/main/resources/org/springframework/sca/xml/spring-sca.xsd   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/AbstractSCATestCase.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/AbstractHelloWorldTestCase.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/HelloWorld.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/HelloWorldProxy.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/helloworld/SpringHelloWorldTestCase.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/TestBean.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/TestBeanImpl.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/java/org/apache/tuscany/implementation/spring/itests/mock/TestReference.java   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/application-context.xml   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/default.scdl
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/testReferenceContext.xml   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/sca/testServiceContext.xml   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/tuscany/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/META-INF/tuscany/xsystem.scdl
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/spring/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/spring/ExplicitSpring.xml   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml   (with props)
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/itests/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/itests/helloworld/
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/org/apache/tuscany/implementation/spring/itests/helloworld/SpringHelloWorld.composite
>     incubator/tuscany/sandbox/implementation-spring2/src/test/resources/test.xml   (with props)
>
> Added: incubator/tuscany/sandbox/implementation-spring2/.ruleset
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/.ruleset?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/.ruleset (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/.ruleset Thu May 31 14:51:47 2007
> @@ -0,0 +1,190 @@
> +<?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.
> +-->
> +<ruleset name="pmd-eclipse">
> +  <description>PMD Plugin preferences rule set</description>
> +  
> +  
> +  <rule ref="rulesets/basic.xml/BooleanInstantiation"/>
> +  <rule ref="rulesets/basic.xml/CollapsibleIfStatements"/>
> +  <rule ref="rulesets/basic.xml/DoubleCheckedLocking"/>
> +<!--<rule ref="rulesets/basic.xml/EmptyCatchBlock"/>-->
> +<!--<rule ref="rulesets/basic.xml/EmptyFinallyBlock"/>-->
> +<!--<rule ref="rulesets/basic.xml/EmptyIfStmt"/>-->
> +  <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop"/>
> +<!--<rule ref="rulesets/basic.xml/EmptyStaticInitializer"/>-->
> +<!--<rule ref="rulesets/basic.xml/EmptySwitchStatements"/>-->
> +<!--<rule ref="rulesets/basic.xml/EmptySynchronizedBlock"/>-->
> +<!--<rule ref="rulesets/basic.xml/EmptyTryBlock"/>-->
> +<!--<rule ref="rulesets/basic.xml/EmptyWhileStmt"/>-->
> +  <rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop"/>
> +  <rule ref="rulesets/basic.xml/JumbledIncrementer"/>
> +<!--<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>-->
> +  <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock"/>
> +  <rule ref="rulesets/basic.xml/UnconditionalIfStatement"/>
> +  <rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/>
> +  <rule ref="rulesets/basic.xml/UnnecessaryFinalModifier"/>
> +  <rule ref="rulesets/basic.xml/UnnecessaryReturn"/>
> +<!--<rule ref="rulesets/basic.xml/UselessOverridingMethod"/>-->
> +  
> +<!--<rule ref="rulesets/braces.xml/ForLoopsMustUseBraces"/>-->
> +<!--<rule ref="rulesets/braces.xml/IfElseStmtsMustUseBraces"/>-->
> +<!--<rule ref="rulesets/braces.xml/IfStmtsMustUseBraces"/>-->
> +<!--<rule ref="rulesets/braces.xml/WhileLoopsMustUseBraces"/>-->
> +
> +<!--<rule ref="rulesets/clone.xml/CloneMethodMustImplementCloneable"/>-->
> +<!--<rule ref="rulesets/clone.xml/CloneThrowsCloneNotSupportedException"/>-->
> +<!--<rule ref="rulesets/clone.xml/ProperCloneImplementation"/>-->
> +  
> +<!--<rule ref="rulesets/codesize.xml/CyclomaticComplexity"/>-->
> +<!--<rule ref="rulesets/codesize.xml/ExcessiveClassLength"/>-->
> +<!--<rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>-->
> +<!--<rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>-->
> +<!--<rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>-->
> +<!--<rule ref="rulesets/codesize.xml/TooManyFields"/>-->
> +
> +<rule ref="rulesets/controversial.xml/AssignmentInOperand"/>
> +<!--<rule ref="rulesets/controversial.xml/AtLeastOneConstructor"/>-->
> +<!--<rule ref="rulesets/controversial.xml/CallSuperInConstructor"/>-->
> +<!--<rule ref="rulesets/controversial.xml/DontImportSun"/>-->
> +<!--<rule ref="rulesets/controversial.xml/NullAssignment"/>-->
> +<!--<rule ref="rulesets/controversial.xml/OnlyOneReturn"/>-->
> +<!--<rule ref="rulesets/controversial.xml/SingularField"/>-->
> +<!--<rule ref="rulesets/controversial.xml/SuspiciousOctalEscape"/>-->
> +<!--<rule ref="rulesets/controversial.xml/UnnecessaryConstructor"/>-->
> +<rule ref="rulesets/controversial.xml/UnnecessaryParentheses"/>
> +<!--<rule ref="rulesets/controversial.xml/UnusedModifier"/>-->
> +
> +<!--<rule ref="rulesets/coupling.xml/CouplingBetweenObjects"/>-->
> +<!--<rule ref="rulesets/coupling.xml/ExcessiveImports"/>-->
> +<!--<rule ref="rulesets/coupling.xml/LooseCoupling"/>-->
> +
> +<!--<rule ref="rulesets/design.xml/AbstractClassWithoutAbstractMethod"/>-->
> +<!--<rule ref="rulesets/design.xml/AccessorClassGeneration"/>-->
> +<!--<rule ref="rulesets/design.xml/AssignmentToNonFinalStatic"/>-->
> +<!--<rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts"/>-->
> +<!--<rule ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause"/>-->
> +<rule ref="rulesets/design.xml/AvoidProtectedFieldInFinalClass"/>
> +<!--<rule ref="rulesets/design.xml/AvoidReassigningParameters"/>-->
> +<!--<rule ref="rulesets/design.xml/AvoidSynchronizedAtMethodLevel"/>-->
> +<!--<rule ref="rulesets/design.xml/BadComparison"/>-->
> +<!--<rule ref="rulesets/design.xml/CloseConnection"/>-->
> +<!--<rule ref="rulesets/design.xml/CompareObjectsWithEquals"/>-->
> +<!--<rule ref="rulesets/design.xml/ConfusingTernary"/>-->
> +<rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod"/>
> +<!--<rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt"/>-->
> +<!--<rule ref="rulesets/design.xml/FinalFieldCouldBeStatic"/>-->
> +<rule ref="rulesets/design.xml/IdempotentOperations"/>
> +<!--<rule ref="rulesets/design.xml/ImmutableField"/>-->
> +<!--<rule ref="rulesets/design.xml/InstantiationToGetClass"/>-->
> +<!--<rule ref="rulesets/design.xml/MissingBreakInSwitch"/>-->
> +<!--<rule ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass"/>-->
> +<!--<rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement"/>-->
> +<!--<rule ref="rulesets/design.xml/NonStaticInitializer"/>-->
> +<rule ref="rulesets/design.xml/OptimizableToArrayCall"/>
> +<rule ref="rulesets/design.xml/PositionLiteralsFirstInComparisons"/>
> +<rule ref="rulesets/design.xml/SimplifyBooleanExpressions"/>
> +<rule ref="rulesets/design.xml/SimplifyBooleanReturns"/>
> +<rule ref="rulesets/design.xml/SimplifyConditional"/>
> +<!--<rule ref="rulesets/design.xml/SwitchDensity"/>-->
> +<!--<rule ref="rulesets/design.xml/SwitchStmtsShouldHaveDefault"/>-->
> +<rule ref="rulesets/design.xml/UnnecessaryLocalBeforeReturn"/>
> +<!--<rule ref="rulesets/design.xml/UseLocaleWithCaseConversions"/>-->
> +<!--<rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify"/>-->
> +<!--<rule ref="rulesets/design.xml/UseSingleton"/>-->
> +
> +<!--<rule ref="rulesets/finalizers.xml/EmptyFinalizer"/>-->
> +<!--<rule ref="rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>-->
> +<!--<rule ref="rulesets/finalizers.xml/FinalizeOverloaded"/>-->
> +<!--<rule ref="rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize"/>-->
> +<!--<rule ref="rulesets/finalizers.xml/FinalizeShouldBeProtected"/>-->
> +<!--<rule ref="rulesets/finalizers.xml/AvoidCallingFinalize"/>-->
> +
> +<!--<rule ref="rulesets/imports.xml/DuplicateImports"/>-->
> +<!--<rule ref="rulesets/imports.xml/DontImportJavaLang"/>-->
> +<!--<rule ref="rulesets/imports.xml/UnusedImports"/>-->
> +<!--<rule ref="rulesets/imports.xml/ImportFromSamePackage"/>-->
> +
> +<!--<rule ref="rulesets/javabeans.xml/BeanMembersShouldSerialize"/>-->
> +<!--<rule ref="rulesets/javabeans.xml/MissingSerialVersionUID"/>-->
> +
> +<!--<rule ref="rulesets/junit.xml/JUnitStaticSuite"/>-->
> +<!--<rule ref="rulesets/junit.xml/JUnitSpelling"/>-->
> +<!--<rule ref="rulesets/junit.xml/JUnitAssertionsShouldIncludeMessage"/>-->
> +<!--<rule ref="rulesets/junit.xml/JUnitTestsShouldIncludeAssert"/>-->
> +<!--<rule ref="rulesets/junit.xml/TestClassWithoutTestCases"/>-->
> +<!--<rule ref="rulesets/junit.xml/UnnecessaryBooleanAssertion"/>-->
> +<!--<rule ref="rulesets/junit.xml/UseAssertEqualsInsteadOfAssertTrue"/>-->
> +<!--<rule ref="rulesets/junit.xml/UseAssertSameInsteadOfAssertTrue"/>-->
> +
> +  <!--<rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace"/>-->
> +  <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
> +  <!--<rule ref="rulesets/logging-java.xml/MoreThanOneLogger"/>-->
> +  <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
> +  <!--<rule ref="rulesets/logging-java.xml/LogBlockWithoutIf"/>-->
> +  <!--<rule ref="rulesets/logging-java.xml/SystemPrintln"/>-->
> +  <!--<rule ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/>-->
> +  <!--<rule ref="rulesets/logging-jakarta-commons.xml/ProperLogger"/>-->
> +  
> +  <!--<rule ref="rulesets/naming.xml/ShortVariable"/>-->
> +  <!--<rule ref="rulesets/naming.xml/LongVariable"/>-->
> +  <!--<rule ref="rulesets/naming.xml/ShortMethodName"/>-->
> +  <!--<rule ref="rulesets/naming.xml/VariableNamingConventions"/>-->
> +  <!--<rule ref="rulesets/naming.xml/MethodNamingConventions"/>-->
> +  <!--<rule ref="rulesets/naming.xml/ClassNamingConventions"/>-->
> +  <!--<rule ref="rulesets/naming.xml/AbstractNaming"/>-->
> +  <!--<rule ref="rulesets/naming.xml/AvoidDollarSigns"/>-->
> +  <!--<rule ref="rulesets/naming.xml/MethodWithSameNameAsEnclosingClass"/>-->
> +  <!--<rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName"/>-->
> +  <!--<rule ref="rulesets/naming.xml/SuspiciousConstantFieldName"/>-->
> +  <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName"/>-->
> +  <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName"/>-->
> +  <!--<rule ref="rulesets/naming.xml/AvoidNonConstructorMethodsWithClassName"/>-->
> +  <!--<rule ref="rulesets/naming.xml/NoPackage"/>-->
> +  <!--<rule ref="rulesets/naming.xml/PackageCase"/>-->
> +
> +  <!--<rule ref="rulesets/optimizations.xml/LocalVariableCouldBeFinal"/>-->
> +  <!--<rule ref="rulesets/optimizations.xml/MethodArgumentCouldBeFinal"/>-->
> +  <!--<rule ref="rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops"/>-->
> +  <!--<rule ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector"/>-->
> +  <!--<rule ref="rulesets/optimizations.xml/SimplifyStartsWith"/>-->
> +  <!--<rule ref="rulesets/optimizations.xml/UseStringBufferForStringAppends"/>-->
> +
> +  <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingThrowable"/>-->
> +  <!--<rule ref="rulesets/strictexception.xml/SignatureDeclareThrowsException"/>-->
> +  <!--<rule ref="rulesets/strictexception.xml/ExceptionAsFlowControl"/>-->
> +  <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingNPE"/>-->
> +  <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes"/>-->
> +  <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingNullPointerException"/>-->
> + 
> +  <!--<rule ref="rulesets/strings.xml/AvoidDuplicateLiterals"/>-->
> +  <!--<rule ref="rulesets/strings.xml/StringInstantiation"/>-->
> +  <!--<rule ref="rulesets/strings.xml/StringToString"/>-->
> +  <!--<rule ref="rulesets/strings.xml/AvoidConcatenatingNonLiteralsInStringBuffer"/>-->
> +  <!--<rule ref="rulesets/strings.xml/UnnecessaryCaseChange"/>-->
> +  
> +  <!--<rule ref="rulesets/sunsecure.xml/MethodReturnsInternalArray"/>-->
> +  <!--<rule ref="rulesets/sunsecure.xml/ArrayIsStoredDirectly"/>-->
> +  
> +  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/>
> +  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
> +  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
> +  <!--<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>-->
> +  
> +</ruleset>
>
> Added: incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt Thu May 31 14:51:47 2007
> @@ -0,0 +1,202 @@
> +
> +                                 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, serviceDefinition 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.
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/LICENSE.txt
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Added: incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt Thu May 31 14:51:47 2007
> @@ -0,0 +1,14 @@
> +${pom.name}
> +Copyright (c) 2005 - 2006 The Apache Software Foundation
> +
> +Apache Tuscany is an effort undergoing incubation at The Apache Software
> +Foundation (ASF), sponsored by the Apache Web Services PMC. Incubation is
> +required of all newly accepted projects until a further review indicates that
> +the infrastructure, communications, and decision making process have stabilized
> +in a manner consistent with other successful ASF projects. While incubation
> +status is not necessarily a reflection of the completeness or stability of the
> +code, it does indicate that the project has yet to be fully endorsed by the ASF.
> +
> +This product includes software developed by
> +The Apache Software Foundation (http://www.apache.org/).
> +
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/NOTICE.txt
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Added: incubator/tuscany/sandbox/implementation-spring2/README.txt
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/README.txt?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/README.txt (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/README.txt Thu May 31 14:51:47 2007
> @@ -0,0 +1,35 @@
> +Apache Tuscany M1 build (May, 2006)
> +===================================
> +
> +http://incubator.apache.org/tuscany/
> +
> +Tuscany is an effort undergoing incubation at the Apache Software Foundation
> +(ASF), sponsored by the Web Services PMC.
> +
> +Incubation is required of all newly accepted projects until a further review
> +indicates that the infrastructure, communications, and decision making process
> +have stabilized in a manner consistent with other successful ASF projects. 
> +
> +While incubation status is not necessarily a reflection of the completeness or 
> +stability of the code, it does indicate that the project has yet to be fully
> +endorsed by the ASF.
> +
> +
> +Support
> +-------
> +
> +Any problem with this release can be reported to the Tuscany mailing list 
> +or in the JIRA issue tracker.
> +
> +Mailing list subscription:
> +    tuscany-dev-subscribe@ws.apache.org
> +
> +Jira:
> +    http://issues.apache.org/jira/browse/Tuscany
> +
> +
> +Thank you for using Tuscany!
> +
> +
> +The Tuscany Team. 
> +
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/README.txt
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Added: incubator/tuscany/sandbox/implementation-spring2/pom.xml
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/pom.xml?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/pom.xml (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/pom.xml Thu May 31 14:51:47 2007
> @@ -0,0 +1,109 @@
> +<?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>1.0-incubating-SNAPSHOT</version>
> +        <relativePath>../pom.xml</relativePath>
> +    </parent>
> +    <artifactId>tuscany-implementation-spring</artifactId>
> +    <name>Apache Tuscany Spring Framework Implementation Model</name>
> +    <description>Container for managing Spring composites</description>
> +    <packaging>jar</packaging>
> +
> +    <dependencies>
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-assembly</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-core</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-interface</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>        
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-assembly-xml</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>        
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-contribution-impl</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>org.osoa</groupId>
> +            <artifactId>sca-api</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-databinding</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-implementation-java-runtime</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>  
> +        
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-host-embedded</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>
> +        
> +        <!-- Temporarily depend on implementation-script for a set of utility classes -->
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-implementation-script</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>
> +                
> +        <!-- Spring dependencies... -->    
> +        <dependency>
> +            <groupId>org.springframework</groupId>
> +            <artifactId>spring-core</artifactId>
> +            <version>2.0.3</version>
> +        </dependency>
> +
> +        <dependency>
> +            <groupId>org.springframework</groupId>
> +            <artifactId>spring-beans</artifactId>
> +            <version>2.0.3</version>
> +        </dependency>
> +
> +        <dependency>
> +            <groupId>org.springframework</groupId>
> +            <artifactId>spring-context</artifactId>
> +            <version>2.0.3</version>
> +        </dependency>
> +          
> +    </dependencies>
> +
> +</project>
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/pom.xml
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/pom.xml
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,205 @@
> +/*
> + * 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.implementation.spring;
> +
> +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.Property;
> +import org.apache.tuscany.sca.assembly.Reference;
> +import org.apache.tuscany.sca.assembly.Service;
> +import org.apache.tuscany.sca.assembly.xml.Constants;
> +import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
> +import org.apache.tuscany.sca.contribution.service.ContributionReadException;
> +import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
> +import org.apache.tuscany.sca.contribution.service.ContributionWireException;
> +import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
> +import org.apache.tuscany.implementation.spi.AbstractStAXArtifactProcessor;
> +import org.apache.tuscany.implementation.spi.ResourceHelper;
> +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
> +
> +import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
> +import org.apache.tuscany.sca.policy.PolicyFactory;
> +import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector;
> +
> +
> +/*
> + * SpringArtifactProcessor is responsible for processing the XML of an <implementation.spring.../>
> + * element in an SCA SCDL file.
> + */
> +public class SpringArtifactProcessor 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.SCA10_NS, IMPLEMENTATION_SPRING);
> +    private static final String MSG_LOCATION_MISSING = "Reading implementation.spring - location attribute missing";
> +    
> +    private AssemblyFactory 		assemblyFactory;
> +    private JavaInterfaceFactory	javaFactory;
> +    private JavaInterfaceIntrospector 	interfaceIntrospector;
> +    private PolicyFactory 			policyFactory;
> +    // TODO: runtime needs to provide a better way to get the PropertyValueObjectFactory
> +    private SpringPropertyValueObjectFactory propertyFactory;
> +
> +
> +    public SpringArtifactProcessor( AssemblyFactory 			assemblyFactory,
> +    								JavaInterfaceFactory 		javaFactory,
> +    								JavaInterfaceIntrospector 	interfaceIntrospector,
> +    								PolicyFactory 				policyFactory,
> +    		                        SpringPropertyValueObjectFactory 	propertyFactory ) {
> +        this.assemblyFactory 	= assemblyFactory;
> +        this.javaFactory 		= javaFactory;
> +        this.interfaceIntrospector = interfaceIntrospector;
> +        this.policyFactory	 	= policyFactory;
> +        this.propertyFactory 	= propertyFactory;
> +        
> +    }
> +
> +    /*
> +     * 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 METAINF/spring directory.
> +     */
> +    public SpringImplementation read(XMLStreamReader reader) throws ContributionReadException {
> +
> +        try {
> +        	/* Read the location attribute for the spring implementation  */
> +            String springLocation = reader.getAttributeValue(null, LOCATION);
> +            if (springLocation == null) {
> +                throw new ContributionReadException( MSG_LOCATION_MISSING );
> +            }
> +            /* Create the Spring implementation and set the location into it */
> +            SpringImplementation springImplementation = new SpringImplementation();
> +            springImplementation.setSpringLocation( springLocation );
> +
> +            // Skip to end element
> +            while (reader.hasNext()) {
> +                if (reader.next() == END_ELEMENT && IMPLEMENTATION_SPRING_QNAME.equals(reader.getName())) {
> +                    break;
> +                }
> +            } // end while
> +
> +            processComponentType(springImplementation);
> +
> +            return springImplementation;
> +
> +        } catch (XMLStreamException e) {
> +            throw new ContributionReadException(e);
> +        }
> +    } // 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) throws ContributionWriteException {
> +        try {
> +
> +            writer.writeStartElement(Constants.SCA10_NS, IMPLEMENTATION_SPRING);
> +            if (springImplementation.getSpringLocation() != null) {
> +                writer.writeAttribute(LOCATION, springImplementation.getSpringLocation());
> +            }
> +            writer.writeEndElement();
> +
> +        } catch (XMLStreamException e) {
> +            throw new ContributionWriteException(e);
> +        }
> +    } // 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) 
> +        throws ContributionResolveException {
> +
> +    	/* Load the Spring component type by reading the Spring application context */
> +    	SpringXMLComponentTypeLoader springLoader = 
> +    		new SpringXMLComponentTypeLoader( assemblyFactory, interfaceIntrospector, 
> +    										  javaFactory, policyFactory );
> +    	try {
> +    		// Load the Spring Implementation information from its application context file...
> +    	    springLoader.load( springImplementation );
> +    	} catch ( ContributionReadException e ) {
> +    		throw new ContributionResolveException( e );
> +    	}
> +    	
> +        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);
> +	        if (componentType.isUnresolved()) {
> +	            throw new ContributionResolveException("SpringArtifactProcessor: unable to resolve componentType for Spring component");
> +	        } 
> +	        springImplementation.setComponentType(componentType);
> +	        
> +	        springImplementation.setUnresolved(false);
> +        } // end if
> +
> +    } // end method resolve
> +
> +    public void wire(SpringImplementation model) throws ContributionWireException {
> +        // TODO Auto-generated method stub
> +    }
> +
> +    public QName getArtifactType() {
> +        return IMPLEMENTATION_SPRING_QNAME;
> +    }
> +
> +    public Class<SpringImplementation> getModelType() {
> +        return SpringImplementation.class;
> +    }
> +
> +} // end class SpringArtifactProcessor
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringArtifactProcessor.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,59 @@
> +/*
> + * 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.implementation.spring;
> +
> +import java.util.List;
> +import java.util.ArrayList;
> +
> +/**
> + * 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: 512919 $ $Date: 2007-02-28 19:32:56 +0000 (Wed, 28 Feb 2007) $
> + */
> +public class SpringBeanElement {
> +
> +    private String id;
> +    private String className;
> +    private List<SpringPropertyElement> properties = new ArrayList<SpringPropertyElement>();
> +
> +    public SpringBeanElement( String id, String className ) {
> +    	this.id = id;
> +    	this.className = className;
> +    }
> +    
> +    public String getClassName() {
> +    	return className;
> +    }
> +    
> +    public String getId() {
> +    	return id;
> +    }
> +    
> +    public List<SpringPropertyElement> getProperties() {
> +    	return properties;
> +    }
> +    
> +    public void addProperty( SpringPropertyElement property ) {
> +    	properties.add( property );
> +    }
> +    
> +    
> +} // end class SpringBeanElement
> \ No newline at end of file
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanElement.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,151 @@
> +/*
> + * 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.implementation.spring;
> +
> +import java.util.List;
> +import java.util.ArrayList;
> +import java.util.Iterator;
> +
> +import org.apache.tuscany.sca.assembly.AssemblyFactory;
> +import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
> +import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
> +import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector;
> +import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory;
> +import org.apache.tuscany.sca.implementation.java.JavaImplementation;
> +import org.apache.tuscany.sca.implementation.java.JavaImplementationFactory;
> +import org.apache.tuscany.sca.implementation.java.introspect.DefaultJavaClassIntrospectorExtensionPoint;
> +import org.apache.tuscany.sca.implementation.java.introspect.ExtensibleJavaClassIntrospector;
> +import org.apache.tuscany.sca.implementation.java.introspect.IntrospectionException;
> +import org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospector;
> +import org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospectorExtensionPoint;
> +import org.apache.tuscany.sca.implementation.java.introspect.JavaClassVisitor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.AllowsPassByReferenceProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.BaseJavaClassVisitor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.ConstructorProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.ContextProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.ConversationProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.DestroyProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.EagerInitProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.HeuristicPojoProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.InitProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.PolicyProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.PropertyProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.ReferenceProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.ResourceProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.ScopeProcessor;
> +import org.apache.tuscany.sca.implementation.java.introspect.impl.ServiceProcessor;
> +import org.apache.tuscany.sca.policy.PolicyFactory;
> +
> +import org.apache.tuscany.sca.assembly.ComponentType;
> +import org.apache.tuscany.sca.assembly.Reference;
> +import org.apache.tuscany.sca.assembly.Service;
> +
> +/**
> + * Provides introspection functions for Spring beans
> + * This version leans heavily on the implementation-java classes
> + *
> + * @version $Rev: 512919 $ $Date: 2007-02-28 19:32:56 +0000 (Wed, 28 Feb 2007) $
> + */
> +public class SpringBeanIntrospector {
> +
> +	private JavaClassIntrospector classIntrospector;
> +    private JavaClassIntrospectorExtensionPoint classVisitors = 
> +    	new DefaultJavaClassIntrospectorExtensionPoint();
> +    private JavaImplementationFactory javaImplementationFactory;
> +
> +	/**
> +	 * The constructor sets up the various visitor elements that will be used to inrospect
> +	 * the Spring bean and extract SCA information
> +	 * @param assemblyFactory - an AssemblyFactory
> +	 * @param interfaceIntrospector - an Java InterfaceIntrospector
> +	 * @param javaFactory - a Java Interface Factory
> +	 */
> +    public SpringBeanIntrospector( AssemblyFactory assemblyFactory,
> +			 JavaInterfaceIntrospector interfaceIntrospector,
> +			 JavaInterfaceFactory javaFactory,
> +			 PolicyFactory 		  policyFactory ) {
> +    	
> +        // Create the list of class visitors
> +    	BaseJavaClassVisitor[] extensions = new BaseJavaClassVisitor[] {
> +                new ConstructorProcessor(assemblyFactory),
> +                new AllowsPassByReferenceProcessor(assemblyFactory),
> +                new ContextProcessor(assemblyFactory),
> +                new ConversationProcessor(assemblyFactory),
> +                new DestroyProcessor(assemblyFactory),
> +                new EagerInitProcessor(assemblyFactory),
> +                new InitProcessor(assemblyFactory),
> +                new PropertyProcessor(assemblyFactory),
> +                new ReferenceProcessor(assemblyFactory, javaFactory, interfaceIntrospector),
> +                new ResourceProcessor(assemblyFactory),
> +                new ScopeProcessor(assemblyFactory),
> +                new ServiceProcessor(assemblyFactory, javaFactory, interfaceIntrospector),
> +                new HeuristicPojoProcessor(assemblyFactory, javaFactory, interfaceIntrospector),
> +                new PolicyProcessor(assemblyFactory, policyFactory)
> +            };
> +        for (JavaClassVisitor extension : extensions) {
> +            classVisitors.addClassVisitor(extension);
> +        }
> +        this.classIntrospector = new ExtensibleJavaClassIntrospector(classVisitors);
> +        
> +        javaImplementationFactory = new DefaultJavaImplementationFactory();
> +
> +    } // 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
> +     * @throws ContributionResolveException - if there was a problem resolving the
> +     * Spring Bean or its componentType
> +     *
> +     */
> +    public void 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();
> +    	
> +    	try {
> +    		// Introspect the bean...the results of the introspection are placed into the Java implementation
> +            classIntrospector.introspect( beanClass, javaImplementation);
> +            
> +            // 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
> +        
> +        List<Service> services = javaImplementation.getServices();
> +        for ( Service service : services ) {
> +        	String name = service.getName();
> +        	System.out.println("Spring Bean: found service with name: " + name);
> +        } // end for
> +
> +    } // end method introspectBean
> +    
> +  
> +    
> +} // end class SpringBeanIntrospector
> \ No newline at end of file
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringBeanIntrospector.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,80 @@
> +/*
> + * 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.implementation.spring;
> +
> +import java.util.List;
> +
> +import org.apache.tuscany.sca.assembly.ComponentType;
> +import org.apache.tuscany.sca.assembly.Implementation;
> +import org.apache.tuscany.sca.assembly.Reference;
> +import org.apache.tuscany.sca.assembly.Service;
> +import org.apache.tuscany.sca.assembly.impl.ComponentTypeImpl;
> +
> +/**
> + * Represents a Spring implementation.
> + * 
> + * TBD: Incomplete and needs substantial work...   MJE, 4th May 2007
> + */
> +public class SpringImplementation  extends ComponentTypeImpl implements Implementation {
> +
> +	/* The location attribute which points to the Spring application-context XML file */
> +    private String springLocation;
> +    private ComponentType componentType;
> +
> +    protected SpringImplementation() {
> +        this.springLocation = null;
> +        setUnresolved(true);
> +    }
> +
> +    /* Returns the location attribute for this Spring implementation */
> +    public String getSpringLocation() {
> +        return springLocation;
> +    }
> +    
> +    /**
> +     * Sets the location attribute for this Spring implementation
> +     * location - a URI to the Spring application-context file
> +     */
> +    public void setSpringLocation(String location) {
> +    	this.springLocation = location;
> +        return;
> +    }
> +
> +    /* 
> +     * 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;
> +    }
> +
> +    public List<Service> getServices() {
> +        return componentType.getServices();
> +    }
> +
> +    public List<Reference> getReferences() {
> +        return componentType.getReferences();
> +    }
> +}
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementation.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,46 @@
> +package org.apache.tuscany.implementation.spring;
> +
> +import java.net.URI;
> +
> +import org.apache.tuscany.sca.assembly.ComponentService;
> +import org.apache.tuscany.sca.assembly.Service;
> +import org.apache.tuscany.sca.core.invocation.ProxyFactory;
> +import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
> +import org.apache.tuscany.sca.factory.ObjectFactory;
> +import org.apache.tuscany.sca.interfacedef.Operation;
> +import org.apache.tuscany.sca.invocation.Invoker;
> +import org.apache.tuscany.sca.runtime.RuntimeComponent;
> +import org.apache.tuscany.sca.runtime.RuntimeComponentService;
> +import org.apache.tuscany.sca.provider.ImplementationProvider;
> +import org.osoa.sca.ComponentContext;
> +
> +// TODO - create a working version of this invoker...
> +public class SpringImplementationProvider implements ImplementationProvider {
> +    private SpringImplementation implementation;
> +    private RuntimeComponent component;
> +    
> +    public SpringImplementationProvider( RuntimeComponent component,
> +                                         SpringImplementation implementation ) {
> +        super();
> +        this.implementation = implementation;
> +        this.component = component;
> +    } // end constructor
> +
> +    public Invoker createInvoker(RuntimeComponentService service, Operation operation) {
> +        return new SpringInvoker(this, operation);
> +    }
> +
> +    public Invoker createCallbackInvoker(Operation operation) {
> +        return new SpringInvoker(this, operation);
> +    }
> +    
> +
> +    public void start() {
> +        // TODO
> +    }
> +
> +    public void stop() {
> +        // TODO
> +    }
> +
> +} // end class SpringImplementationProvider
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProvider.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,26 @@
> +package org.apache.tuscany.implementation.spring;
> +
> +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
> + * @author MikeEdwards
> + *
> + */
> +public class SpringImplementationProviderFactory implements ImplementationProviderFactory<SpringImplementation> {
> +
> +    public SpringImplementationProviderFactory() {
> +        super();
> +    }
> +
> +    public ImplementationProvider createImplementationProvider(RuntimeComponent component,
> +                                                               SpringImplementation implementation) {
> +        return new SpringImplementationProvider( component, implementation );
> +    }
> +
> +    public Class<SpringImplementation> getModelType() {
> +        return SpringImplementation.class;
> +    }
> +} // end class SpringImplementationProviderFactory
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringImplementationProviderFactory.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,38 @@
> +package org.apache.tuscany.implementation.spring;
> +
> +
> +import javax.script.Invocable;
> +import javax.script.ScriptException;
> +
> +import org.apache.axiom.om.OMElement;
> +import org.apache.tuscany.sca.interfacedef.Operation;
> +import org.apache.tuscany.sca.invocation.Invoker;
> +import org.apache.tuscany.sca.invocation.Message;
> +
> +public class SpringInvoker implements Invoker {
> +	
> +	private SpringImplementationProvider provider;
> +	private Operation operation;
> +	
> +    public SpringInvoker(SpringImplementationProvider provider, Operation operation) {
> +        this.provider = provider;
> +        
> +        // Use the Operation instead of the Operation name as it may be a dynamic
> +        // operation so the name may change at runtime
> +        this.operation = operation;
> +    }
> +
> +    private Object doInvoke(Object[] objects) throws ScriptException {
> +    	// TODO
> +    	Object response = new Object();
> +
> +        return response;
> +    }
> +
> +    public Message invoke(Message msg) {
> +    	// TODO
> +        return msg;
> +    }
> +
> +
> +}
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringInvoker.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,127 @@
> +/*
> + * 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.implementation.spring;
> +
> +import java.util.Map;
> +
> +import org.apache.tuscany.sca.assembly.AssemblyFactory;
> +import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
> +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
> +import org.apache.tuscany.sca.core.ExtensionPointRegistry;
> +import org.apache.tuscany.sca.core.ModuleActivator;
> +import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
> +import org.apache.tuscany.sca.databinding.TransformerExtensionPoint;
> +import org.apache.tuscany.sca.databinding.Mediator;
> +import org.apache.tuscany.sca.databinding.impl.MediatorImpl;
> +import org.apache.tuscany.sca.implementation.java.context.JavaPropertyValueObjectFactory;
> +import org.apache.tuscany.sca.implementation.java.introspect.DefaultJavaClassIntrospectorExtensionPoint;
> +import org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospectorExtensionPoint;
> +import org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationProviderFactory;
> +
> +import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
> +import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
> +import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector;
> +import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospectorExtensionPoint;
> +import org.apache.tuscany.sca.interfacedef.java.introspect.ExtensibleJavaInterfaceIntrospector;
> +import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
> +import org.apache.tuscany.sca.policy.PolicyFactory;
> +import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
> +
> +/*
> + * ModuleActivator class for the Spring module
> + * - this class is invoked by the Tuscany SCA core when the Spring module is included in the
> + * runtime package
> + * - it registers a series of extension points which the core will use when dealing with
> + * components which use <implementation.spring.../>
> + * 
> + */
> +public class SpringModuleActivator implements ModuleActivator {
> +
> +    private SpringArtifactProcessor springArtifactProcessor;
> +    private AssemblyFactory 		assemblyFactory;
> +    private JavaInterfaceFactory 	javaFactory;
> +    private PolicyFactory 			policyFactory;
> +    private JavaInterfaceIntrospector interfaceIntrospector;
> +    private JavaClassIntrospectorExtensionPoint classVisitors;
> +    
> +    public SpringModuleActivator() {
> +        assemblyFactory = new DefaultAssemblyFactory();
> +        javaFactory = new DefaultJavaInterfaceFactory();
> +        policyFactory = new DefaultPolicyFactory();
> +        
> +    } // end constructor
> +    
> +    /*
> +     * start() is called when the Tuscany core starts the Spring module
> +     * 
> +     * It is in this method that the registration of the extension points takes place:
> +     * - SpringArtifactProcessor processes the XML for <implementation.spring.../>
> +     * - SpringComponentBuilder actually builds components based on <implementation.spring.../>
> +     * - SpringPropertyValueObjectFactory handles properties for implementation.spring components
> +     */
> +    public void start(ExtensionPointRegistry registry) {
> +
> +        DataBindingExtensionPoint dataBindingRegistry = registry.getExtensionPoint(DataBindingExtensionPoint.class);
> +                
> +        // TODO: could the runtime have a default PropertyValueObjectFactory in the registry
> +        DataBindingExtensionPoint dataBindings = registry.getExtensionPoint(DataBindingExtensionPoint.class);
> +        TransformerExtensionPoint transformers = registry.getExtensionPoint(TransformerExtensionPoint.class); 
> +        MediatorImpl mediator = new MediatorImpl(dataBindings, transformers);
> +        SpringPropertyValueObjectFactory propertyFactory = new SpringPropertyValueObjectFactory(mediator);
> +        
> +        // Tools for Java interface handling
> +        JavaInterfaceIntrospectorExtensionPoint interfaceVisitors = 
> +        	registry.getExtensionPoint(JavaInterfaceIntrospectorExtensionPoint.class);
> +        interfaceIntrospector = new ExtensibleJavaInterfaceIntrospector(javaFactory, interfaceVisitors);
> +
> +        // Create the artifact processor for Spring artifacts and add to artifact processors
> +        springArtifactProcessor = new SpringArtifactProcessor( assemblyFactory, javaFactory,
> +        		interfaceIntrospector, policyFactory, propertyFactory );
> +        
> +        StAXArtifactProcessorExtensionPoint staxProcessors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
> +        staxProcessors.addArtifactProcessor(springArtifactProcessor);
> +        
> +        // Create SpringImplementationFactory and add to provider factories 
> +        SpringImplementationProviderFactory springImplementationProviderFactory =
> +            new SpringImplementationProviderFactory();
> +        
> +        ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
> +        providerFactories.addProviderFactory(springImplementationProviderFactory);
> +    }
> +
> +    /*
> +     * stop() is called when the Tuscany core stops the Spring module
> +     * At present, no action is taken
> +     */
> +    public void stop(ExtensionPointRegistry registry) {
> +        StAXArtifactProcessorExtensionPoint staxProcessors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
> +        staxProcessors.removeArtifactProcessor(springArtifactProcessor);    	
> +    }
> +    
> +    /*
> +     * Return a map of the extension points for the Spring module.
> +     * Not implemented at present (the core does not seem to require it)
> +     */
> +    public Object[] getExtensionPoints() {
> +        classVisitors = new DefaultJavaClassIntrospectorExtensionPoint();
> +        return new Object[] { classVisitors };
> +    }
> +
> +}
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringModuleActivator.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,46 @@
> +/*
> + * 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.implementation.spring;
> +
> +
> +/**
> + * Represents a <property> element in a Spring application-context
> + * - this has name and ref attributes
> + * 
> + * @version $Rev: 512919 $ $Date: 2007-02-28 19:32:56 +0000 (Wed, 28 Feb 2007) $
> + */
> +public class SpringPropertyElement {
> +
> +    private String name;
> +    private String ref;
> +    
> +    public SpringPropertyElement( String name, String ref ) {
> +    	this.name = name;
> +    	this.ref = ref;
> +    }
> +    
> +    public String getName() {
> +    	return name;
> +    }
> +    
> +    public String getRef() {
> +    	return ref;
> +    }
> +    
> +} // end class SpringPropertyElement
> \ No newline at end of file
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyElement.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
> Added: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java?view=auto&rev=543273
> ==============================================================================
> --- incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java (added)
> +++ incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java Thu May 31 14:51:47 2007
> @@ -0,0 +1,46 @@
> +/*
> + * 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.implementation.spring;
> +
> +import org.apache.tuscany.sca.implementation.java.context.JavaPropertyValueObjectFactory;
> +import org.apache.tuscany.sca.databinding.Mediator;
> +
> +/**
> + * 
> + * @author MikeEdwards
> + *
> + * Factory class for PropertyValueObjects for Spring implementations
> + * 
> + * 6th May 2007: Chosen a very simple design for this class - since Spring implementations are a form
> + * of Java POJO, the simple design chosen for this class is to re-use the PropertyValueObjectFactory
> + * implementation from the base implementation-java-runtime package of Tuscany SCA Java, since the 
> + * same properties are going to be rendered in the same way to simple Tuscany POJOs and to Spring
> + * Bean POJOs.  Mike Edwards
> + */
> +public class SpringPropertyValueObjectFactory extends JavaPropertyValueObjectFactory {
> +	
> +	/**
> +	 * Constructor simply defers to the superclass, along with the complete implementation...
> +	 */
> +    public SpringPropertyValueObjectFactory(Mediator mediator) {
> +        super(mediator);
> +    } // end constructor JavaPropertyValueObjectFactory(Mediator mediator)
> +    
> +} // end class SpringPropertyValueObjectFactory
> \ No newline at end of file
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/tuscany/sandbox/implementation-spring2/src/main/java/org/apache/tuscany/implementation/spring/SpringPropertyValueObjectFactory.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev,Date
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-commits-help@ws.apache.org
>
>
>   


-- 
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org