From f59fca36e7538cafbd6032003c7b06d64862a2bf Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Mon, 19 Jul 2010 02:50:53 +0000 Subject: Branch to experiment with dynamic component interfaces and implementations. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@965346 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/dynamic/modules/assembly-xml/LICENSE | 205 +++ .../modules/assembly-xml/META-INF/MANIFEST.MF | 70 + .../java/dynamic/modules/assembly-xml/NOTICE | 6 + .../java/dynamic/modules/assembly-xml/pom.xml | 88 ++ .../sca/assembly/xml/BaseAssemblyProcessor.java | 781 ++++++++++ .../xml/ComponentTypeDocumentProcessor.java | 129 ++ .../assembly/xml/ComponentTypeModelResolver.java | 96 ++ .../sca/assembly/xml/ComponentTypeProcessor.java | 381 +++++ .../assembly/xml/CompositeDocumentProcessor.java | 185 +++ .../sca/assembly/xml/CompositeModelResolver.java | 96 ++ .../sca/assembly/xml/CompositeProcessor.java | 1134 ++++++++++++++ .../assembly/xml/ConfiguredOperationProcessor.java | 108 ++ .../apache/tuscany/sca/assembly/xml/Constants.java | 158 ++ .../assembly/xml/DefaultBeanModelProcessor.java | 257 ++++ .../sca/assembly/xml/EndpointProcessor.java | 132 ++ .../assembly/xml/EndpointReferenceProcessor.java | 151 ++ .../apache/tuscany/sca/assembly/xml/Messages.java | 28 + .../sca/assembly/xml/PolicySubjectProcessor.java | 242 +++ .../sca/assembly/xml/SCABindingProcessor.java | 132 ++ .../xml/DefaultDefinitionsExtensionPoint.java | 128 ++ .../xml/DefinitionsDocumentProcessor.java | 171 +++ .../definitions/xml/DefinitionsExtensionPoint.java | 64 + .../sca/definitions/xml/DefinitionsProcessor.java | 292 ++++ .../tuscany/sca/definitions/xml/Messages.java | 27 + .../sca/policy/xml/BindingTypeProcessor.java | 65 + .../sca/policy/xml/ExtensionTypeProcessor.java | 250 +++ .../policy/xml/ImplementationTypeProcessor.java | 65 + .../tuscany/sca/policy/xml/IntentProcessor.java | 424 ++++++ .../apache/tuscany/sca/policy/xml/Messages.java | 27 + .../tuscany/sca/policy/xml/PolicyConstants.java | 74 + .../tuscany/sca/policy/xml/PolicySetProcessor.java | 572 +++++++ .../sca/policy/xml/PolicyXPathFunction.java | 294 ++++ .../policy/xml/PolicyXPathFunctionResolver.java | 72 + .../sca-policy-1.1-intents-definitions-cd03.xml | 242 +++ ...ca.contribution.processor.StAXArtifactProcessor | 29 + ...sca.contribution.processor.URLArtifactProcessor | 22 + ...tuscany.sca.contribution.resolver.ModelResolver | 21 + ....apache.tuscany.sca.definitions.xml.Definitions | 17 + ...y.sca.definitions.xml.DefinitionsExtensionPoint | 17 + .../assembly-xml-validation-messages.properties | 32 + .../definitions-xml-validation-messages.properties | 24 + .../xml/policy-xml-validation-messages.properties | 50 + .../assembly/xml/CompositeProcessorTestCase.java | 108 ++ .../xml/MultiplicityReadWriteTestCase.java | 88 ++ .../tuscany/sca/assembly/xml/ReadAllTestCase.java | 151 ++ .../sca/assembly/xml/ReadDocumentTestCase.java | 192 +++ .../tuscany/sca/assembly/xml/ReadTestCase.java | 85 ++ .../xml/ReadWriteAnyAttributeTestCase.java | 130 ++ .../assembly/xml/ReadWriteAnyElementTestCase.java | 151 ++ .../xml/ReadWriteLocalCompositeTestCase.java | 103 ++ .../sca/assembly/xml/ResolvePolicyTestCase.java | 143 ++ .../tuscany/sca/assembly/xml/ResolveTestCase.java | 82 + .../sca/assembly/xml/StripURISpacesTestCase.java | 78 + .../sca/assembly/xml/TestAttributeProcessor.java | 62 + .../sca/assembly/xml/TestPolicyProcessor.java | 83 + .../assembly/xml/TestSCABindingFactoryImpl.java | 35 + .../sca/assembly/xml/TestSCABindingImpl.java | 162 ++ .../tuscany/sca/assembly/xml/WireTestCase.java | 109 ++ .../tuscany/sca/assembly/xml/WriteAllTestCase.java | 136 ++ .../sca/assembly/xml/WriteNamespacesTestCase.java | 99 ++ .../tuscany/sca/definitions/xml/MockPolicy.java | 39 + .../sca/definitions/xml/ReadDocumentTestCase.java | 230 +++ .../sca/definitions/xml/TestPolicyProcessor.java | 58 + .../xml/PolicyXPathFunctionResolverTestCase.java | 161 ++ .../sca/policy/xml/ReadDocumentTestCase.java | 286 ++++ .../sca/policy/xml/TestPolicyProcessor.java | 83 + .../tuscany/sca/assembly/xml/Calculator.composite | 59 + .../sca/assembly/xml/CalculatorImpl.componentType | 31 + .../sca/assembly/xml/CalculatorURISpaces.composite | 59 + .../sca/assembly/xml/Multiplicity.composite | 32 + .../sca/assembly/xml/NestedCalculator.composite | 29 + .../sca/assembly/xml/RMIBindingTest.composite | 44 + .../sca/assembly/xml/TestAllCalculator.composite | 127 ++ .../sca/assembly/xml/TestAllDivide.composite | 56 + .../assembly/xml/TestAllPolicyCalculator.composite | 125 ++ .../sca/assembly/xml/another_test_definitions.xml | 96 ++ .../tuscany/sca/assembly/xml/local.composite | 27 + .../tuscany/sca/assembly/xml/test_definitions.xml | 206 +++ .../sca/definitions/xml/test_definitions.xml | 207 +++ .../tuscany/sca/policy/xml/Calculator.composite | 49 + .../tuscany/sca/policy/xml/test_definitions.xml | 204 +++ .../java/dynamic/modules/assembly-xsd/LICENSE | 338 +++++ .../modules/assembly-xsd/META-INF/MANIFEST.MF | 13 + .../java/dynamic/modules/assembly-xsd/NOTICE | 38 + .../java/dynamic/modules/assembly-xsd/pom.xml | 31 + .../apache/tuscany/sca/assembly/xsd/Constants.java | 140 ++ ...any.sca.contribution.processor.ValidationSchema | 19 + .../apache/tuscany/sca/assembly/xsd/XMLSchema.dtd | 402 +++++ .../apache/tuscany/sca/assembly/xsd/datatypes.dtd | 204 +++ .../xsd/oasis-200401-wss-wssecurity-secext-1.0.xsd | 195 +++ .../oasis-200401-wss-wssecurity-utility-1.0.xsd | 108 ++ .../apache/tuscany/sca/assembly/xsd/ws-addr.xsd | 137 ++ .../apache/tuscany/sca/assembly/xsd/ws-policy.xsd | 141 ++ .../org/apache/tuscany/sca/assembly/xsd/wsdli.xsd | 35 + .../org/apache/tuscany/sca/assembly/xsd/xml.xsd | 117 ++ .../sca/assembly/xsd/xmldsig-core-schema.xsd | 318 ++++ .../src/main/resources/sca-1.1-cd05.xsd | 38 + .../main/resources/sca-binding-ejb-1.1-cd01.xsd | 34 + .../main/resources/sca-binding-jca-1.1-cd04.xsd | 173 +++ .../main/resources/sca-binding-jms-1.1-cd04.xsd | 179 +++ .../main/resources/sca-binding-sca-1.1-cd05.xsd | 20 + .../src/main/resources/sca-binding-ws-1.1-cd04.xsd | 35 + .../resources/sca-binding-ws-callback-1.1-cd04.xsd | 18 + .../main/resources/sca-contribution-1.1-cd05.xsd | 90 ++ .../main/resources/sca-contribution-c-1.1-cd04.xsd | 35 + .../resources/sca-contribution-cpp-1.1-cd04.xsd | 35 + .../resources/sca-contribution-java-1.1-cd02.xsd | 34 + .../src/main/resources/sca-core-1.1-cd05.xsd | 478 ++++++ .../main/resources/sca-definitions-1.1-cd05.xsd | 30 + .../resources/sca-implementation-bpel-1.1-cd03.xsd | 32 + .../resources/sca-implementation-c-1.1-cd04.xsd | 55 + .../sca-implementation-composite-1.1-cd05.xsd | 26 + .../resources/sca-implementation-cpp-1.1-cd04.xsd | 63 + .../resources/sca-implementation-java-1.1-cd02.xsd | 26 + .../sca-implementation-spring-1.1-cd01.xsd | 21 + .../main/resources/sca-interface-c-1.1-cd04.xsd | 51 + .../main/resources/sca-interface-cpp-1.1-cd04.xsd | 51 + .../main/resources/sca-interface-java-1.1-cd04.xsd | 28 + .../main/resources/sca-interface-wsdl-1.1-cd05.xsd | 28 + .../src/main/resources/sca-jee-1.1-wd03.xsd | 52 + .../src/main/resources/sca-policy-1.1-cd03.xsd | 119 ++ .../sca-policy-1.1-intents-definitions-cd03.xml | 249 +++ .../resources/tuscany-sca-1.1-binding-atom.xsd | 43 + .../main/resources/tuscany-sca-1.1-binding-dwr.xsd | 41 + .../resources/tuscany-sca-1.1-binding-http.xsd | 41 + .../main/resources/tuscany-sca-1.1-binding-jms.xsd | 128 ++ .../resources/tuscany-sca-1.1-binding-jsonrpc.xsd | 41 + .../resources/tuscany-sca-1.1-binding-rest.xsd | 105 ++ .../main/resources/tuscany-sca-1.1-binding-rmi.xsd | 40 + .../main/resources/tuscany-sca-1.1-binding-rss.xsd | 43 + .../tuscany-sca-1.1-implementation-osgi.xsd | 53 + .../tuscany-sca-1.1-implementation-script.xsd | 38 + .../tuscany-sca-1.1-implementation-widget.xsd | 42 + .../src/main/resources/tuscany-sca-1.1.xsd | 40 + .../java/dynamic/modules/assembly/LICENSE | 205 +++ .../dynamic/modules/assembly/META-INF/MANIFEST.MF | 60 + .../sebastien/java/dynamic/modules/assembly/NOTICE | 6 + .../java/dynamic/modules/assembly/pom.xml | 45 + .../tuscany/sca/assembly/AbstractContract.java | 78 + .../tuscany/sca/assembly/AbstractProperty.java | 151 ++ .../tuscany/sca/assembly/AbstractReference.java | 43 + .../tuscany/sca/assembly/AbstractService.java | 28 + .../tuscany/sca/assembly/AssemblyFactory.java | 167 ++ .../java/org/apache/tuscany/sca/assembly/Base.java | 45 + .../org/apache/tuscany/sca/assembly/Binding.java | 114 ++ .../org/apache/tuscany/sca/assembly/Callback.java | 53 + .../org/apache/tuscany/sca/assembly/Component.java | 142 ++ .../tuscany/sca/assembly/ComponentProperty.java | 89 ++ .../tuscany/sca/assembly/ComponentReference.java | 113 ++ .../tuscany/sca/assembly/ComponentService.java | 59 + .../apache/tuscany/sca/assembly/ComponentType.java | 90 ++ .../org/apache/tuscany/sca/assembly/Composite.java | 132 ++ .../tuscany/sca/assembly/CompositeReference.java | 44 + .../tuscany/sca/assembly/CompositeService.java | 57 + .../tuscany/sca/assembly/ConfiguredOperation.java | 62 + .../org/apache/tuscany/sca/assembly/Contract.java | 111 ++ .../sca/assembly/DefaultAssemblyFactory.java | 41 + .../org/apache/tuscany/sca/assembly/Endpoint.java | 139 ++ .../tuscany/sca/assembly/EndpointReference.java | 165 ++ .../apache/tuscany/sca/assembly/Extensible.java | 45 + .../org/apache/tuscany/sca/assembly/Extension.java | 66 + .../tuscany/sca/assembly/Implementation.java | 36 + .../apache/tuscany/sca/assembly/Multiplicity.java | 50 + .../tuscany/sca/assembly/OperationSelector.java | 29 + .../sca/assembly/OperationsConfigurator.java | 33 + .../org/apache/tuscany/sca/assembly/Property.java | 40 + .../org/apache/tuscany/sca/assembly/Reference.java | 71 + .../apache/tuscany/sca/assembly/SCABinding.java | 30 + .../tuscany/sca/assembly/SCABindingFactory.java | 35 + .../org/apache/tuscany/sca/assembly/Service.java | 42 + .../java/org/apache/tuscany/sca/assembly/Wire.java | 85 ++ .../apache/tuscany/sca/assembly/WireFormat.java | 31 + .../sca/assembly/builder/BindingBuilder.java | 54 + .../sca/assembly/builder/BuilderContext.java | 107 ++ .../assembly/builder/BuilderExtensionPoint.java | 149 ++ .../sca/assembly/builder/CompositeBuilder.java | 51 + .../builder/CompositeBuilderException.java | 45 + .../sca/assembly/builder/ContractBuilder.java | 37 + .../builder/DefaultBuilderExtensionPoint.java | 479 ++++++ .../assembly/builder/ImplementationBuilder.java | 50 + .../tuscany/sca/assembly/builder/Messages.java | 31 + .../sca/assembly/builder/PolicyBuilder.java | 84 ++ .../tuscany/sca/assembly/builder/WireBuilder.java | 39 + .../sca/assembly/impl/AbstractPropertyImpl.java | 112 ++ .../sca/assembly/impl/AbstractReferenceImpl.java | 46 + .../sca/assembly/impl/AbstractServiceImpl.java | 36 + .../sca/assembly/impl/AssemblyFactoryImpl.java | 138 ++ .../apache/tuscany/sca/assembly/impl/BaseImpl.java | 45 + .../tuscany/sca/assembly/impl/BindingImpl.java | 122 ++ .../tuscany/sca/assembly/impl/CallbackImpl.java | 77 + .../tuscany/sca/assembly/impl/ComponentImpl.java | 186 +++ .../sca/assembly/impl/ComponentPropertyImpl.java | 97 ++ .../sca/assembly/impl/ComponentReferenceImpl.java | 119 ++ .../sca/assembly/impl/ComponentServiceImpl.java | 71 + .../sca/assembly/impl/ComponentTypeImpl.java | 176 +++ .../tuscany/sca/assembly/impl/CompositeImpl.java | 185 +++ .../sca/assembly/impl/CompositeReferenceImpl.java | 63 + .../sca/assembly/impl/CompositeServiceImpl.java | 62 + .../sca/assembly/impl/ConfiguredOperationImpl.java | 95 ++ .../tuscany/sca/assembly/impl/ContractImpl.java | 88 ++ .../tuscany/sca/assembly/impl/EndpointImpl.java | 283 ++++ .../sca/assembly/impl/EndpointReferenceImpl.java | 233 +++ .../tuscany/sca/assembly/impl/ExtensibleImpl.java | 49 + .../tuscany/sca/assembly/impl/ExtensionImpl.java | 62 + .../sca/assembly/impl/ImplementationImpl.java | 89 ++ .../tuscany/sca/assembly/impl/PropertyImpl.java | 59 + .../tuscany/sca/assembly/impl/ReferenceImpl.java | 135 ++ .../sca/assembly/impl/SCABindingFactoryImpl.java | 40 + .../tuscany/sca/assembly/impl/SCABindingImpl.java | 148 ++ .../tuscany/sca/assembly/impl/ServiceImpl.java | 106 ++ .../apache/tuscany/sca/assembly/impl/WireImpl.java | 105 ++ .../sca/definitions/DefaultDefinitionsFactory.java | 32 + .../tuscany/sca/definitions/Definitions.java | 84 ++ .../sca/definitions/DefinitionsBuilder.java | 34 + .../definitions/DefinitionsBuilderException.java | 43 + .../sca/definitions/DefinitionsFactory.java | 31 + .../definitions/impl/DefinitionsBuilderImpl.java | 307 ++++ .../sca/definitions/impl/DefinitionsImpl.java | 73 + .../sca/definitions/util/DefinitionsUtil.java | 108 ++ .../tuscany/sca/interfacedef/Compatibility.java | 29 + .../apache/tuscany/sca/interfacedef/DataType.java | 120 ++ .../sca/interfacedef/FaultExceptionMapper.java | 63 + .../IncompatibleInterfaceContractException.java | 69 + .../apache/tuscany/sca/interfacedef/Interface.java | 116 ++ .../sca/interfacedef/InterfaceContract.java | 100 ++ .../sca/interfacedef/InterfaceContractMapper.java | 230 +++ .../interfacedef/InvalidAnnotationException.java | 40 + .../sca/interfacedef/InvalidCallbackException.java | 35 + .../interfacedef/InvalidInterfaceException.java | 43 + .../interfacedef/InvalidOperationException.java | 43 + .../apache/tuscany/sca/interfacedef/Operation.java | 204 +++ .../interfacedef/OverloadedOperationException.java | 46 + .../sca/interfacedef/impl/DataTypeImpl.java | 220 +++ .../interfacedef/impl/InterfaceContractImpl.java | 142 ++ .../impl/InterfaceContractMapperImpl.java | 619 ++++++++ .../sca/interfacedef/impl/InterfaceImpl.java | 329 ++++ .../sca/interfacedef/impl/OperationImpl.java | 282 ++++ .../tuscany/sca/interfacedef/util/ElementInfo.java | 115 ++ .../sca/interfacedef/util/FaultException.java | 83 + .../sca/interfacedef/util/JavaXMLMapper.java | 144 ++ .../tuscany/sca/interfacedef/util/TypeInfo.java | 101 ++ .../tuscany/sca/interfacedef/util/WrapperInfo.java | 204 +++ .../tuscany/sca/interfacedef/util/XMLType.java | 153 ++ .../org/apache/tuscany/sca/policy/BindingType.java | 27 + .../tuscany/sca/policy/DefaultPolicyFactory.java | 30 + .../apache/tuscany/sca/policy/ExtensionType.java | 82 + .../tuscany/sca/policy/ImplementationType.java | 27 + .../java/org/apache/tuscany/sca/policy/Intent.java | 161 ++ .../org/apache/tuscany/sca/policy/IntentMap.java | 49 + .../tuscany/sca/policy/PolicyAttachment.java | 31 + .../apache/tuscany/sca/policy/PolicyContainer.java | 37 + .../tuscany/sca/policy/PolicyExpression.java | 66 + .../apache/tuscany/sca/policy/PolicyFactory.java | 67 + .../org/apache/tuscany/sca/policy/PolicySet.java | 147 ++ .../apache/tuscany/sca/policy/PolicySubject.java | 57 + .../org/apache/tuscany/sca/policy/Qualifier.java | 44 + .../tuscany/sca/policy/impl/BindingTypeImpl.java | 38 + .../tuscany/sca/policy/impl/ExtensionTypeImpl.java | 97 ++ .../sca/policy/impl/ImplementationTypeImpl.java | 39 + .../apache/tuscany/sca/policy/impl/IntentImpl.java | 168 +++ .../tuscany/sca/policy/impl/IntentMapImpl.java | 78 + .../sca/policy/impl/PolicyExpressionImpl.java | 87 ++ .../tuscany/sca/policy/impl/PolicyFactoryImpl.java | 70 + .../tuscany/sca/policy/impl/PolicySetImpl.java | 145 ++ .../tuscany/sca/policy/impl/QualifierImpl.java | 48 + .../tuscany/sca/policy/util/PolicyHelper.java | 130 ++ ...org.apache.tuscany.sca.assembly.AssemblyFactory | 18 + ...g.apache.tuscany.sca.assembly.SCABindingFactory | 19 + ...cany.sca.assembly.builder.BuilderExtensionPoint | 18 + ...ache.tuscany.sca.definitions.DefinitionsFactory | 17 + ...uscany.sca.interfacedef.InterfaceContractMapper | 19 + .../org.apache.tuscany.sca.policy.PolicyFactory | 18 + .../assembly-conformance-messages.properties | 327 ++++ .../assembly-validation-messages.properties | 83 + .../assembly-validation-messages_it.properties | 30 + .../definitions-validation-messages.properties | 25 + .../sca/assembly/AssemblyFactoryTestCase.java | 170 +++ .../apache/tuscany/sca/assembly/TestBinding.java | 70 + .../tuscany/sca/assembly/TestImplementation.java | 61 + .../apache/tuscany/sca/assembly/TestInterface.java | 42 + .../sca/assembly/TestInterfaceContract.java | 41 + .../apache/tuscany/sca/assembly/TestOperation.java | 30 + .../impl/ContractCompatibilityTestCase.java | 396 +++++ .../impl/InterfaceContractTestCase.java | 70 + .../tuscany/sca/policy/PolicyFactoryTestCase.java | 55 + .../dynamic/modules/binding-atom-js-dojo/LICENSE | 205 +++ .../binding-atom-js-dojo/META-INF/MANIFEST.MF | 24 + .../dynamic/modules/binding-atom-js-dojo/NOTICE | 6 + .../dynamic/modules/binding-atom-js-dojo/pom.xml | 53 + .../AtomBindingJavascriptProxyFactoryImpl.java | 77 + ...scany.sca.web.javascript.JavascriptProxyFactory | 19 + .../dynamic/modules/binding-atom-runtime/LICENSE | 205 +++ .../binding-atom-runtime/META-INF/MANIFEST.MF | 47 + ...che.tuscany.sca.provider.BindingProviderFactory | 19 + .../dynamic/modules/binding-atom-runtime/NOTICE | 6 + .../dynamic/modules/binding-atom-runtime/pom.xml | 227 +++ .../sca/binding/atom/collection/Collection.java | 81 + .../binding/atom/collection/MediaCollection.java | 54 + .../binding/atom/collection/NotFoundException.java | 45 + .../binding/atom/provider/AtomBindingInvoker.java | 510 +++++++ .../atom/provider/AtomBindingListenerServlet.java | 895 +++++++++++ .../atom/provider/AtomBindingProviderFactory.java | 65 + .../sca/binding/atom/provider/AtomBindingUtil.java | 165 ++ .../provider/AtomReferenceBindingProvider.java | 178 +++ .../atom/provider/AtomServiceBindingProvider.java | 105 ++ ...che.tuscany.sca.provider.BindingProviderFactory | 20 + .../atom/AbstractProviderConsumerTestCase.java | 53 + .../sca/binding/atom/AtomDeleteTestCase.java | 118 ++ .../binding/atom/AtomFeedNonCollectionTest.java | 219 +++ .../tuscany/sca/binding/atom/AtomGetTestCase.java | 121 ++ .../tuscany/sca/binding/atom/AtomPostTestCase.java | 110 ++ .../tuscany/sca/binding/atom/AtomPutTestCase.java | 129 ++ .../apache/tuscany/sca/binding/atom/Consumer.java | 43 + .../binding/atom/ConsumerProviderAtomTestCase.java | 159 ++ .../sca/binding/atom/ContentNegotiationTest.java | 258 ++++ .../tuscany/sca/binding/atom/CustomerClient.java | 33 + .../sca/binding/atom/CustomerClientImpl.java | 103 ++ .../sca/binding/atom/CustomerCollectionImpl.java | 153 ++ .../binding/atom/CustomerNonCollectionImpl.java | 55 + .../sca/binding/atom/MediaCollectionImpl.java | 213 +++ .../sca/binding/atom/MediaCollectionTestCase.java | 294 ++++ .../apache/tuscany/sca/binding/atom/Provider.java | 49 + .../atom/ProviderEntryEntityTagsTestCase.java | 432 ++++++ .../atom/ProviderFeedEntityTagsTestCase.java | 386 +++++ .../atom/ProviderServiceDocumentTestCase.java | 204 +++ .../sca/binding/atom/aggregator/Aggregator.java | 35 + .../binding/atom/aggregator/AggregatorImpl.java | 135 ++ .../atom/aggregator/AggregatorTestCase.java | 82 + .../tuscany/sca/binding/atom/aggregator/Sort.java | 39 + .../sca/binding/atom/aggregator/SortImpl.java | 62 + .../tuscany/sca/binding/atom/news/Headline.java | 54 + .../tuscany/sca/binding/atom/news/NewsService.java | 28 + .../sca/binding/atom/news/NewsServiceImpl.java | 90 ++ .../sca/binding/atom/news/NewsServiceTestCase.java | 77 + .../sca/binding/atom/util/AtomTestCaseUtils.java | 98 ++ .../src/test/resources/ReceiptToms.gif | Bin 0 -> 14205 bytes .../src/test/resources/ReceiptValue.jpg | Bin 0 -> 21373 bytes .../tuscany/sca/binding/atom/Consumer.composite | 32 + .../tuscany/sca/binding/atom/Provider.composite | 36 + .../binding/atom/ProviderNonCollection.composite | 38 + .../sca/binding/atom/ReceiptProvider.composite | 36 + .../atom/aggregator/FeedAggregator.composite | 51 + .../tuscany/sca/binding/atom/news/news.composite | 32 + .../java/dynamic/modules/binding-atom/LICENSE | 205 +++ .../modules/binding-atom/META-INF/MANIFEST.MF | 19 + ...che.tuscany.sca.binding.atom.AtomBindingFactory | 19 + ...ca.contribution.processor.StAXArtifactProcessor | 19 + .../java/dynamic/modules/binding-atom/NOTICE | 6 + .../java/dynamic/modules/binding-atom/pom.xml | 54 + .../tuscany/sca/binding/atom/AtomBinding.java | 59 + .../sca/binding/atom/AtomBindingFactory.java | 35 + .../binding/atom/impl/AtomBindingFactoryImpl.java | 36 + .../sca/binding/atom/impl/AtomBindingImpl.java | 110 ++ ...che.tuscany.sca.binding.atom.AtomBindingFactory | 19 + ...ca.contribution.processor.StAXArtifactProcessor | 19 + .../binding/atom/AtomBindingProcessorTestCase.java | 83 + .../dynamic/modules/binding-corba-runtime/LICENSE | 205 +++ .../binding-corba-runtime/META-INF/MANIFEST.MF | 35 + .../dynamic/modules/binding-corba-runtime/NOTICE | 6 + .../dynamic/modules/binding-corba-runtime/pom.xml | 130 ++ .../provider/CorbaBindingProviderFactory.java | 61 + .../sca/binding/corba/provider/CorbaInvoker.java | 89 ++ .../provider/CorbaReferenceBindingProvider.java | 101 ++ .../provider/CorbaServiceBindingProvider.java | 94 ++ .../corba/provider/exceptions/CorbaException.java | 34 + .../exceptions/RequestConfigurationException.java | 43 + .../binding/corba/provider/meta/CorbaArray.java | 34 + .../corba/provider/meta/CorbaUnionElement.java | 37 + .../corba/provider/meta/CorbaUnionElementType.java | 28 + .../corba/provider/reference/DynaCorbaRequest.java | 253 ++++ .../provider/reference/DynaCorbaResponse.java | 39 + .../reference/InterfaceInstanceCreator.java | 70 + .../reference/InterfaceMethodInterceptor.java | 65 + .../provider/service/ComponentInvocationProxy.java | 122 ++ .../corba/provider/service/DynaCorbaServant.java | 137 ++ .../provider/service/InvocationException.java | 43 + .../corba/provider/service/InvocationProxy.java | 46 + .../corba/provider/service/OperationTypes.java | 51 + .../corba/provider/types/AnnotationAttributes.java | 46 + .../sca/binding/corba/provider/types/NodeType.java | 28 + .../sca/binding/corba/provider/types/TypeTree.java | 50 + .../corba/provider/types/TypeTreeCreator.java | 497 ++++++ .../binding/corba/provider/types/TypeTreeNode.java | 75 + .../corba/provider/types/UnionAttributes.java | 59 + .../corba/provider/types/util/ArrayTypeHelper.java | 53 + .../provider/types/util/BooleanTypeHelper.java | 39 + .../corba/provider/types/util/ByteTypeHelper.java | 39 + .../corba/provider/types/util/CharTypeHelper.java | 39 + .../provider/types/util/DoubleTypeHelper.java | 39 + .../corba/provider/types/util/EnumTypeHelper.java | 59 + .../corba/provider/types/util/FloatTypeHelper.java | 39 + .../corba/provider/types/util/IntTypeHelper.java | 39 + .../corba/provider/types/util/LongTypeHelper.java | 39 + .../provider/types/util/ReferenceTypeHelper.java | 42 + .../provider/types/util/SequenceTypeHelper.java | 70 + .../corba/provider/types/util/ShortTypeHelper.java | 39 + .../provider/types/util/StringTypeHelper.java | 39 + .../provider/types/util/StructTypeHelper.java | 69 + .../corba/provider/types/util/TypeHelper.java | 47 + .../provider/types/util/TypeHelpersProxy.java | 119 ++ .../corba/provider/types/util/UnionTypeHelper.java | 92 ++ .../binding/corba/provider/types/util/Utils.java | 40 + .../binding/corba/provider/util/MethodFinder.java | 97 ++ .../corba/provider/util/OperationMapper.java | 578 +++++++ ...che.tuscany.sca.provider.BindingProviderFactory | 19 + .../corba/testing/CorbaServantTestCase.java | 565 +++++++ .../binding/corba/testing/CorbaTypesTestCase.java | 841 +++++++++++ .../corba/testing/MappingTestInterface.java | 46 + .../corba/testing/MethodFinderTestCase.java | 70 + .../corba/testing/OperationMappingTestCase.java | 67 + .../sca/binding/corba/testing/TestConstants.java | 87 ++ .../testing/arrays_unions/ArraysUnionsTests.java | 30 + .../arrays_unions/ArraysUnionsTestsHelper.java | 102 ++ .../arrays_unions/ArraysUnionsTestsHolder.java | 55 + .../arrays_unions/ArraysUnionsTestsOperations.java | 33 + .../corba/testing/arrays_unions/InnerUnion.java | 129 ++ .../testing/arrays_unions/InnerUnionHelper.java | 123 ++ .../testing/arrays_unions/InnerUnionHolder.java | 55 + .../corba/testing/arrays_unions/RichUnion.java | 194 +++ .../testing/arrays_unions/RichUnionHelper.java | 174 +++ .../testing/arrays_unions/RichUnionHolder.java | 56 + .../testing/arrays_unions/StringArrayHelper.java | 94 ++ .../testing/arrays_unions/StringArrayHolder.java | 57 + .../corba/testing/arrays_unions/TestStruct.java | 45 + .../testing/arrays_unions/TestStructHelper.java | 166 ++ .../testing/arrays_unions/TestStructHolder.java | 55 + .../arrays_unions/_ArraysUnionsTestsImplBase.java | 104 ++ .../arrays_unions/_ArraysUnionsTestsStub.java | 117 ++ .../sca/binding/corba/testing/enums/Color.java | 60 + .../binding/corba/testing/enums/ColorHelper.java | 69 + .../binding/corba/testing/enums/ColorHolder.java | 51 + .../binding/corba/testing/enums/EnumManager.java | 30 + .../corba/testing/enums/EnumManagerHelper.java | 98 ++ .../corba/testing/enums/EnumManagerHolder.java | 51 + .../corba/testing/enums/EnumManagerOperations.java | 32 + .../corba/testing/enums/_EnumManagerImplBase.java | 76 + .../corba/testing/enums/_EnumManagerStub.java | 75 + .../sca/binding/corba/testing/exceptions/Calc.java | 30 + .../corba/testing/exceptions/CalcHelper.java | 98 ++ .../corba/testing/exceptions/CalcHolder.java | 51 + .../corba/testing/exceptions/CalcOperations.java | 36 + .../testing/exceptions/CalcPackage/Arguments.java | 41 + .../exceptions/CalcPackage/ArgumentsHelper.java | 94 ++ .../exceptions/CalcPackage/ArgumentsHolder.java | 51 + .../testing/exceptions/CalcPackage/DivByZero.java | 52 + .../exceptions/CalcPackage/DivByZeroHelper.java | 100 ++ .../exceptions/CalcPackage/DivByZeroHolder.java | 51 + .../exceptions/CalcPackage/NotSupported.java | 46 + .../exceptions/CalcPackage/NotSupportedHelper.java | 93 ++ .../exceptions/CalcPackage/NotSupportedHolder.java | 51 + .../corba/testing/exceptions/_CalcImplBase.java | 102 ++ .../corba/testing/exceptions/_CalcStub.java | 106 ++ .../corba/testing/generated/ArraysSetter.java | 30 + .../testing/generated/ArraysSetterHelper.java | 100 ++ .../testing/generated/ArraysSetterHolder.java | 51 + .../testing/generated/ArraysSetterOperations.java | 59 + .../corba/testing/generated/PrimitivesSetter.java | 31 + .../testing/generated/PrimitivesSetterHelper.java | 100 ++ .../testing/generated/PrimitivesSetterHolder.java | 51 + .../generated/PrimitivesSetterOperations.java | 59 + .../corba/testing/generated/RemoteObject.java | 30 + .../testing/generated/RemoteObjectHelper.java | 100 ++ .../testing/generated/RemoteObjectHolder.java | 51 + .../testing/generated/RemoteObjectOperations.java | 30 + .../corba/testing/generated/SimpleStruct.java | 41 + .../testing/generated/SimpleStructHelper.java | 93 ++ .../testing/generated/SimpleStructHolder.java | 51 + .../corba/testing/generated/SomeStruct.java | 51 + .../corba/testing/generated/SomeStructHelper.java | 146 ++ .../corba/testing/generated/SomeStructHolder.java | 51 + .../corba/testing/generated/TestObject.java | 30 + .../corba/testing/generated/TestObjectHelper.java | 99 ++ .../corba/testing/generated/TestObjectHolder.java | 51 + .../testing/generated/TestObjectOperations.java | 44 + .../testing/generated/_ArraysSetterImplBase.java | 232 +++ .../corba/testing/generated/_ArraysSetterStub.java | 343 +++++ .../generated/_PrimitivesSetterImplBase.java | 230 +++ .../testing/generated/_PrimitivesSetterStub.java | 341 +++++ .../testing/generated/_RemoteObjectImplBase.java | 59 + .../corba/testing/generated/_RemoteObjectStub.java | 55 + .../testing/generated/_TestObjectImplBase.java | 149 ++ .../corba/testing/generated/_TestObjectStub.java | 182 +++ .../testing/generated/boolean_listHelper.java | 75 + .../testing/generated/boolean_listHolder.java | 51 + .../corba/testing/generated/char_listHelper.java | 75 + .../corba/testing/generated/char_listHolder.java | 51 + .../corba/testing/generated/double_listHelper.java | 75 + .../corba/testing/generated/double_listHolder.java | 51 + .../corba/testing/generated/float_listHelper.java | 75 + .../corba/testing/generated/float_listHolder.java | 51 + .../corba/testing/generated/long_listHelper.java | 75 + .../corba/testing/generated/long_listHolder.java | 51 + .../testing/generated/long_long_listHelper.java | 75 + .../testing/generated/long_long_listHolder.java | 51 + .../corba/testing/generated/long_seq1Helper.java | 75 + .../corba/testing/generated/long_seq1Holder.java | 51 + .../corba/testing/generated/long_seq2Helper.java | 83 + .../corba/testing/generated/long_seq2Holder.java | 51 + .../corba/testing/generated/long_seq3Helper.java | 89 ++ .../corba/testing/generated/long_seq3Holder.java | 51 + .../corba/testing/generated/octet_listHelper.java | 75 + .../corba/testing/generated/octet_listHolder.java | 51 + .../generated/remote_object_listHelper.java | 80 + .../generated/remote_object_listHolder.java | 51 + .../corba/testing/generated/short_listHelper.java | 75 + .../corba/testing/generated/short_listHolder.java | 51 + .../corba/testing/generated/string_listHelper.java | 77 + .../corba/testing/generated/string_listHolder.java | 51 + .../generated/unsigned_long_listHelper.java | 76 + .../generated/unsigned_long_listHolder.java | 51 + .../generated/unsigned_long_long_listHelper.java | 78 + .../generated/unsigned_long_long_listHolder.java | 51 + .../generated/unsigned_short_listHelper.java | 76 + .../generated/unsigned_short_listHolder.java | 51 + .../corba/testing/generated/wchar_listHelper.java | 75 + .../corba/testing/generated/wchar_listHolder.java | 51 + .../testing/generated/wstring_listHelper.java | 77 + .../testing/generated/wstring_listHolder.java | 51 + .../corba/testing/hierarchy/ArraysTestStruct.java | 45 + .../sca/binding/corba/testing/hierarchy/Calc.java | 30 + .../corba/testing/hierarchy/DummyObject.java | 28 + .../corba/testing/hierarchy/InnerUnion.java | 55 + .../corba/testing/hierarchy/InvalidCorbaArray.java | 38 + .../corba/testing/hierarchy/InvalidEnum1.java | 36 + .../corba/testing/hierarchy/InvalidEnum2.java | 33 + .../corba/testing/hierarchy/InvalidEnum3.java | 33 + .../corba/testing/hierarchy/InvalidStruct1.java | 28 + .../corba/testing/hierarchy/InvalidStruct2.java | 31 + .../corba/testing/hierarchy/InvalidStruct3.java | 36 + .../corba/testing/hierarchy/InvalidUnion1.java | 37 + .../corba/testing/hierarchy/InvalidUnion2.java | 34 + .../corba/testing/hierarchy/InvalidUnion3.java | 35 + .../corba/testing/hierarchy/InvalidUnion4.java | 39 + .../corba/testing/hierarchy/InvalidUnion5.java | 42 + .../corba/testing/hierarchy/NonCorbaException.java | 28 + .../binding/corba/testing/hierarchy/RichUnion.java | 91 ++ .../corba/testing/hierarchy/SimpleStruct.java | 30 + .../corba/testing/hierarchy/SomeStruct.java | 33 + .../corba/testing/references/DummyObject.java | 30 + .../testing/references/DummyObjectHelper.java | 100 ++ .../testing/references/DummyObjectHolder.java | 51 + .../testing/references/DummyObjectOperations.java | 33 + .../corba/testing/references/ObjectManager.java | 30 + .../testing/references/ObjectManagerHelper.java | 100 ++ .../testing/references/ObjectManagerHolder.java | 51 + .../references/ObjectManagerOperations.java | 33 + .../testing/references/_DummyObjectImplBase.java | 84 ++ .../corba/testing/references/_DummyObjectStub.java | 92 ++ .../testing/references/_ObjectManagerImplBase.java | 86 ++ .../testing/references/_ObjectManagerStub.java | 94 ++ .../testing/servants/ArraysSetterServant.java | 89 ++ .../testing/servants/ArraysUnionsServant.java | 42 + .../servants/ArraysUnionsTuscanyServant.java | 43 + .../corba/testing/servants/CalcServant.java | 52 + .../corba/testing/servants/DummyObjectServant.java | 42 + .../corba/testing/servants/EnumManagerServant.java | 33 + .../testing/servants/InvalidTestObjectServant.java | 24 + .../testing/servants/InvalidTypesServant.java | 34 + .../corba/testing/servants/NonCorbaServant.java | 36 + .../testing/servants/ObjectManagerServant.java | 37 + .../testing/servants/PrimitivesSetterServant.java | 89 ++ .../corba/testing/servants/TestObjectServant.java | 71 + .../corba/testing/service/mocks/TestDataType.java | 88 ++ .../corba/testing/service/mocks/TestInterface.java | 163 ++ .../service/mocks/TestInterfaceContract.java | 71 + .../corba/testing/service/mocks/TestOperation.java | 177 +++ .../service/mocks/TestRuntimeComponentService.java | 220 +++ .../testing/service/mocks/TestRuntimeWire.java | 305 ++++ .../src/test/resources/arrays_unions.idl | 69 + .../src/test/resources/enums.idl | 44 + .../src/test/resources/exceptions.idl | 58 + .../src/test/resources/general_tests.idl | 124 ++ .../src/test/resources/references.idl | 50 + .../java/dynamic/modules/binding-corba/LICENSE | 205 +++ .../modules/binding-corba/META-INF/MANIFEST.MF | 29 + .../java/dynamic/modules/binding-corba/NOTICE | 6 + .../java/dynamic/modules/binding-corba/pom.xml | 53 + .../tuscany/sca/binding/corba/CorbaBinding.java | 47 + .../sca/binding/corba/CorbaBindingFactory.java | 31 + .../corba/impl/CorbaBindingFactoryImpl.java | 37 + .../sca/binding/corba/impl/CorbaBindingImpl.java | 74 + .../binding/corba/impl/CorbaBindingProcessor.java | 137 ++ ...e.tuscany.sca.binding.corba.CorbaBindingFactory | 19 + ...ca.contribution.processor.StAXArtifactProcessor | 19 + .../dynamic/modules/binding-ejb-runtime/LICENSE | 205 +++ .../binding-ejb-runtime/META-INF/MANIFEST.MF | 39 + .../dynamic/modules/binding-ejb-runtime/NOTICE | 6 + .../dynamic/modules/binding-ejb-runtime/pom.xml | 169 +++ .../sca/binding/ejb/corba/ClassLoadingUtil.java | 365 +++++ .../binding/ejb/corba/DynamicStubClassLoader.java | 150 ++ .../sca/binding/ejb/corba/Java2IDLUtil.java | 811 ++++++++++ .../binding/ejb/corba/ObjectInputStreamExt.java | 61 + .../binding/ejb/corba/StubMethodInterceptor.java | 154 ++ .../sca/binding/ejb/corba/UtilInitializer.java | 69 + .../binding/ejb/provider/EJBBindingInvoker.java | 86 ++ .../ejb/provider/EJBBindingProviderFactory.java | 56 + .../EJBBindingReferenceBindingProvider.java | 86 ++ .../tuscany/sca/binding/ejb/util/EJBHandler.java | 338 +++++ .../tuscany/sca/binding/ejb/util/EJBLocator.java | 483 ++++++ .../sca/binding/ejb/util/EJBObjectFactory.java | 209 +++ .../sca/binding/ejb/util/EJBStubHelper.java | 69 + .../sca/binding/ejb/util/InterfaceInfo.java | 117 ++ .../binding/ejb/util/JavaReflectionAdapter.java | 157 ++ .../tuscany/sca/binding/ejb/util/MethodInfo.java | 189 +++ .../sca/binding/ejb/util/NamingEndpoint.java | 124 ++ ...che.tuscany.sca.provider.BindingProviderFactory | 20 + .../binding-ejb-validation-messages.properties | 23 + .../src/test/java/account/BankManagerFacade.java | 33 + .../src/test/java/account/Customer.java | 36 + .../src/test/java/account/CustomerImpl.java | 57 + .../src/test/java/calculator/AddService.java | 27 + .../src/test/java/calculator/AddServiceHome.java | 31 + .../samples/bank/ejb/BankManagerFacade.java | 44 + .../samples/bank/ejb/BankManagerFacadeHome.java | 44 + .../binding/ejb/tests/EJBReferenceTestCase.java | 72 + .../tuscany/sca/binding/ejb/tests/MockServer.java | 151 ++ .../sca/binding/ejb/tests/SocketTracer.java | 138 ++ .../src/test/resources/account/account.composite | 37 + .../java/dynamic/modules/binding-ejb/LICENSE | 205 +++ .../modules/binding-ejb/META-INF/MANIFEST.MF | 26 + .../java/dynamic/modules/binding-ejb/NOTICE | 6 + .../java/dynamic/modules/binding-ejb/pom.xml | 60 + .../apache/tuscany/sca/binding/ejb/EJBBinding.java | 85 ++ .../sca/binding/ejb/EJBBindingException.java | 56 + .../tuscany/sca/binding/ejb/EJBBindingFactory.java | 35 + .../binding/ejb/impl/EJBBindingFactoryImpl.java | 36 + .../sca/binding/ejb/impl/EJBBindingImpl.java | 203 +++ .../sca/binding/ejb/impl/EJBBindingProcessor.java | 168 +++ ...pache.tuscany.sca.binding.ejb.EJBBindingFactory | 20 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + ....apache.tuscany.sca.definitions.xml.Definitions | 17 + .../binding-ejb-validation-messages.properties | 23 + .../tuscany/sca/binding/ejb/policy/definitions.xml | 30 + .../binding-hazelcast-runtime/META-INF/MANIFEST.MF | 31 + .../modules/binding-hazelcast-runtime/pom.xml | 58 + .../sca/binding/hazelcast/EndpointStash.java | 54 + .../sca/binding/hazelcast/HazelcastBinding.java | 33 + .../hazelcast/HazelcastBindingProviderFactory.java | 66 + .../HazelcastReferenceBindingProvider.java | 58 + .../hazelcast/HazelcastServiceBindingProvider.java | 52 + .../sca/binding/hazelcast/ReferenceInvoker.java | 127 ++ .../sca/binding/hazelcast/ServiceInvoker.java | 98 ++ ...ca.contribution.processor.StAXArtifactProcessor | 21 + ...che.tuscany.sca.provider.BindingProviderFactory | 19 + .../sca/binding/hazelcast/BadStringException.java | 29 + .../tuscany/sca/binding/hazelcast/ComplexType.java | 33 + .../hazelcast/HazelcastBindingTestCase.java | 114 ++ .../tuscany/sca/binding/hazelcast/TestService.java | 30 + .../sca/binding/hazelcast/TestServiceClient.java | 45 + .../sca/binding/hazelcast/TestServiceImpl.java | 43 + .../src/test/resources/client.composite | 29 + .../src/test/resources/client2.composite | 29 + .../src/test/resources/service.composite | 28 + .../dynamic/modules/binding-http-runtime/LICENSE | 205 +++ .../binding-http-runtime/META-INF/MANIFEST.MF | 26 + .../dynamic/modules/binding-http-runtime/NOTICE | 6 + .../dynamic/modules/binding-http-runtime/pom.xml | 94 ++ .../http/provider/HTTPBindingListenerServlet.java | 461 ++++++ .../http/provider/HTTPBindingProviderFactory.java | 64 + .../http/provider/HTTPGetListenerServlet.java | 94 ++ .../http/provider/HTTPServiceBindingProvider.java | 208 +++ .../http/provider/HTTPServiceListenerServlet.java | 85 ++ ...che.tuscany.sca.provider.BindingProviderFactory | 20 + .../sca/binding/http/HTTPBindingCacheTestCase.java | 903 +++++++++++ .../sca/binding/http/HTTPBindingTestCase.java | 163 ++ .../sca/binding/http/NotModifiedException.java | 44 + .../binding/http/PreconditionFailedException.java | 44 + .../sca/binding/http/TestBindingCacheImpl.java | 243 +++ .../tuscany/sca/binding/http/TestGetImpl.java | 37 + .../tuscany/sca/binding/http/TestServiceImpl.java | 60 + .../src/test/resources/content/test.html | 21 + .../src/test/resources/test.composite | 47 + .../src/test/resources/testCache.composite | 33 + .../java/dynamic/modules/binding-http/LICENSE | 205 +++ .../modules/binding-http/META-INF/MANIFEST.MF | 23 + .../java/dynamic/modules/binding-http/NOTICE | 6 + .../java/dynamic/modules/binding-http/pom.xml | 54 + .../tuscany/sca/binding/http/HTTPBinding.java | 33 + .../sca/binding/http/HTTPBindingFactory.java | 35 + .../binding/http/impl/HTTPBindingFactoryImpl.java | 36 + .../sca/binding/http/impl/HTTPBindingImpl.java | 100 ++ .../sca/binding/http/xml/HTTPBindingProcessor.java | 142 ++ ...che.tuscany.sca.binding.http.HTTPBindingFactory | 20 + ...ca.contribution.processor.StAXArtifactProcessor | 19 + .../dynamic/modules/binding-jms-runtime/LICENSE | 205 +++ .../binding-jms-runtime/META-INF/MANIFEST.MF | 40 + .../dynamic/modules/binding-jms-runtime/NOTICE | 6 + .../dynamic/modules/binding-jms-runtime/pom.xml | 117 ++ .../sca/binding/jms/context/JMSBindingContext.java | 141 ++ .../jms/headers/HeaderReferenceInterceptor.java | 166 ++ .../jms/host/DefaultJMSHostExtensionPoint.java | 40 + .../jms/host/DefaultJMSServiceListener.java | 234 +++ .../jms/host/DefaultJMSServiceListenerFactory.java | 55 + .../binding/jms/host/DefaultServiceInvoker.java | 106 ++ .../binding/jms/host/JMSHostExtensionPoint.java | 27 + .../sca/binding/jms/host/JMSServiceListener.java | 29 + .../jms/host/JMSServiceListenerDetails.java | 37 + .../jms/host/JMSServiceListenerFactory.java | 27 + ...OperationSelectorJMSDefaultProviderFactory.java | 60 + ...rationSelectorJMSDefaultServiceInterceptor.java | 186 +++ ...OperationSelectorJMSDefaultServiceProvider.java | 53 + ...perationSelectorJMSUserPropProviderFactory.java | 56 + ...ationSelectorJMSUserPropServiceInterceptor.java | 107 ++ ...perationSelectorJMSUserPropServiceProvider.java | 47 + ...MSTokenAuthenticationPolicyProviderFactory.java | 74 + ...enAuthenticationReferencePolicyInterceptor.java | 104 ++ ...TokenAuthenticationReferencePolicyProvider.java | 57 + ...okenAuthenticationServicePolicyInterceptor.java | 106 ++ ...MSTokenAuthenticationServicePolicyProvider.java | 57 + .../provider/JMSHeaderPolicyProviderFactory.java | 83 + .../JMSHeaderReferencePolicyInterceptor.java | 88 ++ .../provider/JMSHeaderReferencePolicyProvider.java | 58 + .../jms/provider/AbstractMessageProcessor.java | 136 ++ .../jms/provider/BytesMessageProcessor.java | 120 ++ .../DefaultJMSResourceFactoryExtensionPoint.java | 30 + .../jms/provider/DefaultMessageProcessor.java | 302 ++++ .../jms/provider/JMSBindingProviderFactory.java | 76 + .../JMSBindingReferenceBindingProvider.java | 169 +++ .../provider/JMSBindingServiceBindingProvider.java | 236 +++ .../binding/jms/provider/JMSMessageProcessor.java | 55 + .../jms/provider/JMSMessageProcessorUtil.java | 109 ++ .../binding/jms/provider/JMSResourceFactory.java | 95 ++ .../provider/JMSResourceFactoryExtensionPoint.java | 28 + .../jms/provider/JMSResourceFactoryImpl.java | 282 ++++ .../jms/provider/ObjectMessageProcessor.java | 231 +++ .../binding/jms/provider/RRBJMSBindingInvoker.java | 261 ++++ .../binding/jms/provider/TextMessageProcessor.java | 80 + .../jms/provider/XMLBytesMessageProcessor.java | 136 ++ .../jms/provider/XMLTextMessageProcessor.java | 132 ++ .../transport/TransportReferenceInterceptor.java | 157 ++ .../jms/transport/TransportServiceInterceptor.java | 193 +++ .../jms/wire/CallbackDestinationInterceptor.java | 94 ++ .../jms/wire/OperationPropertiesInterceptor.java | 69 + .../runtime/WireFormatJMSBytesProviderFactory.java | 60 + .../WireFormatJMSBytesReferenceInterceptor.java | 123 ++ .../WireFormatJMSBytesReferenceProvider.java | 92 ++ .../WireFormatJMSBytesServiceInterceptor.java | 115 ++ .../runtime/WireFormatJMSBytesServiceProvider.java | 96 ++ .../WireFormatJMSBytesXMLProviderFactory.java | 64 + .../WireFormatJMSBytesXMLReferenceInterceptor.java | 123 ++ .../WireFormatJMSBytesXMLReferenceProvider.java | 100 ++ .../WireFormatJMSBytesXMLServiceInterceptor.java | 109 ++ .../WireFormatJMSBytesXMLServiceProvider.java | 108 ++ .../WireFormatJMSDefaultProviderFactory.java | 66 + .../WireFormatJMSDefaultReferenceInterceptor.java | 175 +++ .../WireFormatJMSDefaultReferenceProvider.java | 204 +++ .../WireFormatJMSDefaultServiceInterceptor.java | 175 +++ .../WireFormatJMSDefaultServiceProvider.java | 198 +++ .../WireFormatJMSObjectProviderFactory.java | 60 + .../WireFormatJMSObjectReferenceInterceptor.java | 142 ++ .../WireFormatJMSObjectReferenceProvider.java | 113 ++ .../WireFormatJMSObjectServiceInterceptor.java | 139 ++ .../WireFormatJMSObjectServiceProvider.java | 119 ++ .../runtime/WireFormatJMSTextProviderFactory.java | 60 + .../WireFormatJMSTextReferenceInterceptor.java | 124 ++ .../WireFormatJMSTextReferenceProvider.java | 101 ++ .../WireFormatJMSTextServiceInterceptor.java | 115 ++ .../runtime/WireFormatJMSTextServiceProvider.java | 103 ++ .../WireFormatJMSTextXMLProviderFactory.java | 66 + .../WireFormatJMSTextXMLReferenceInterceptor.java | 129 ++ .../WireFormatJMSTextXMLReferenceProvider.java | 113 ++ .../WireFormatJMSTextXMLServiceInterceptor.java | 116 ++ .../WireFormatJMSTextXMLServiceProvider.java | 108 ++ ...che.tuscany.sca.provider.BindingProviderFactory | 20 + ...y.sca.provider.OperationSelectorProviderFactory | 21 + ...ache.tuscany.sca.provider.PolicyProviderFactory | 19 + ....tuscany.sca.provider.WireFormatProviderFactory | 25 + .../sca/binding/jms/HelloWorldClientImpl.java | 43 + .../tuscany/sca/binding/jms/HelloWorldService.java | 31 + .../sca/binding/jms/HelloWorldServiceImpl.java | 32 + .../jms/OperationSelectionTestCaseFIXME.java | 229 +++ .../src/test/resources/simple/client.composite | 38 + .../src/test/resources/simple/service.composite | 35 + .../java/dynamic/modules/binding-jms/LICENSE | 205 +++ .../modules/binding-jms/META-INF/MANIFEST.MF | 62 + .../java/dynamic/modules/binding-jms/NOTICE | 6 + .../java/dynamic/modules/binding-jms/pom.xml | 51 + .../tuscany/sca/binding/jms/BindingProperty.java | 72 + .../apache/tuscany/sca/binding/jms/JMSBinding.java | 974 ++++++++++++ .../sca/binding/jms/JMSBindingConstants.java | 75 + .../sca/binding/jms/JMSBindingException.java | 45 + .../sca/binding/jms/JMSBindingProcessor.java | 1537 +++++++++++++++++++ .../OperationSelectorJMSDefault.java | 45 + .../OperationSelectorJMSDefaultProcessor.java | 76 + .../OperationSelectorJMSUserProp.java | 57 + .../OperationSelectorJMSUserPropProcessor.java | 87 ++ .../token/JMSTokenAuthenticationPolicy.java | 55 + .../JMSTokenAuthenticationPolicyProcessor.java | 111 ++ .../binding/jms/policy/header/JMSHeaderPolicy.java | 130 ++ .../policy/header/JMSHeaderPolicyProcessor.java | 206 +++ .../binding/jms/wireformat/WireFormatJMSBytes.java | 45 + .../wireformat/WireFormatJMSBytesProcessor.java | 75 + .../jms/wireformat/WireFormatJMSBytesXML.java | 40 + .../wireformat/WireFormatJMSBytesXMLProcessor.java | 72 + .../jms/wireformat/WireFormatJMSDefault.java | 64 + .../wireformat/WireFormatJMSDefaultProcessor.java | 89 ++ .../jms/wireformat/WireFormatJMSObject.java | 57 + .../wireformat/WireFormatJMSObjectProcessor.java | 88 ++ .../binding/jms/wireformat/WireFormatJMSText.java | 45 + .../jms/wireformat/WireFormatJMSTextProcessor.java | 75 + .../jms/wireformat/WireFormatJMSTextXML.java | 48 + .../wireformat/WireFormatJMSTextXMLProcessor.java | 75 + ...ca.contribution.processor.StAXArtifactProcessor | 30 + ...che.tuscany.sca.provider.SCADefinitionsProvider | 19 + ...nding-jms-policy-validation-messages.properties | 23 + .../binding-jms-validation-messages.properties | 53 + .../tuscany/sca/binding/jms/policy/definitions.xml | 89 ++ .../binding/jms/JMSBindingProcessorTestCase.java | 773 ++++++++++ .../jms/JMSBindingProcessorWriteTestCase.java | 438 ++++++ .../jms/policy/PolicyProcessorTestCase.java | 95 ++ .../dynamic/modules/binding-jsonp-runtime/LICENSE | 205 +++ .../binding-jsonp-runtime/META-INF/MANIFEST.MF | 31 + .../dynamic/modules/binding-jsonp-runtime/NOTICE | 6 + .../dynamic/modules/binding-jsonp-runtime/pom.xml | 97 ++ .../jsonp/runtime/JSONPBindingProviderFactory.java | 52 + .../sca/binding/jsonp/runtime/JSONPInvoker.java | 161 ++ .../runtime/JSONPReferenceBindingProvider.java | 53 + .../jsonp/runtime/JSONPServiceBindingProvider.java | 68 + .../sca/binding/jsonp/runtime/JSONPServlet.java | 162 ++ ...che.tuscany.sca.provider.BindingProviderFactory | 20 + .../src/test/java/helloworld/HelloWorldClient.java | 37 + .../src/test/java/helloworld/HelloWorldImpl.java | 32 + .../test/java/helloworld/HelloWorldService.java | 30 + .../src/test/java/test/BindingTestCase.java | 83 + .../src/test/resources/helloworld.composite | 39 + .../src/test/resources/jquery.html | 51 + .../java/dynamic/modules/binding-jsonp/LICENSE | 205 +++ .../modules/binding-jsonp/META-INF/MANIFEST.MF | 17 + .../java/dynamic/modules/binding-jsonp/NOTICE | 6 + .../java/dynamic/modules/binding-jsonp/pom.xml | 41 + .../tuscany/sca/binding/jsonp/JSONPBinding.java | 31 + .../sca/binding/jsonp/JSONPBindingFactory.java | 31 + .../jsonp/impl/JSONPBindingFactoryImpl.java | 34 + .../sca/binding/jsonp/impl/JSONPBindingImpl.java | 90 ++ ...e.tuscany.sca.binding.jsonp.JSONPBindingFactory | 20 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + ...any.sca.contribution.processor.ValidationSchema | 19 + .../src/main/resources/binding-jsonp.xsd | 41 + .../modules/binding-jsonrpc-js-dojo/LICENSE | 205 +++ .../binding-jsonrpc-js-dojo/META-INF/MANIFEST.MF | 22 + .../dynamic/modules/binding-jsonrpc-js-dojo/NOTICE | 6 + .../modules/binding-jsonrpc-js-dojo/pom.xml | 52 + .../JSONRPCBindingJavascriptProxyFactoryImpl.java | 77 + ...scany.sca.web.javascript.JavascriptProxyFactory | 19 + .../modules/binding-jsonrpc-runtime/LICENSE | 205 +++ .../binding-jsonrpc-runtime/META-INF/MANIFEST.MF | 42 + .../dynamic/modules/binding-jsonrpc-runtime/NOTICE | 11 + .../modules/binding-jsonrpc-runtime/pom.xml | 154 ++ .../jsonrpc/provider/JSONRPCBindingInvoker.java | 143 ++ .../provider/JSONRPCBindingProviderFactory.java | 63 + .../jsonrpc/provider/JSONRPCClientInvoker.java | 70 + .../jsonrpc/provider/JSONRPCDatabindingHelper.java | 61 + .../provider/JSONRPCReferenceBindingProvider.java | 107 ++ .../provider/JSONRPCServiceBindingProvider.java | 123 ++ .../jsonrpc/provider/JSONRPCServiceServlet.java | 381 +++++ .../sca/binding/jsonrpc/provider/JavaToSmd.java | 56 + ...che.tuscany.sca.provider.BindingProviderFactory | 20 + .../sca/binding/jsonrpc/provider/jsonrpc.js | 493 ++++++ .../src/test/java/bean/TestBean.java | 51 + .../src/test/java/echo/Echo.java | 64 + .../src/test/java/echo/EchoBusinessException.java | 29 + .../src/test/java/echo/EchoClientImpl.java | 85 ++ .../src/test/java/echo/EchoComponentImpl.java | 103 ++ .../binding/jsonrpc/JSONRPCDataTypeTestCase.java | 202 +++ .../binding/jsonrpc/JSONRPCExceptionTestCase.java | 95 ++ .../binding/jsonrpc/JSONRPCReferenceTestCase.java | 70 + .../binding/jsonrpc/JSONRPCServiceTestCase.java | 101 ++ .../sca/binding/jsonrpc/JSONRPCSmdTestCase.java | 80 + .../src/test/resources/JSONRPCBinding.composite | 38 + .../src/test/resources/JSONRPCReference.composite | 33 + .../java/dynamic/modules/binding-jsonrpc/LICENSE | 205 +++ .../modules/binding-jsonrpc/META-INF/MANIFEST.MF | 16 + .../java/dynamic/modules/binding-jsonrpc/NOTICE | 6 + .../java/dynamic/modules/binding-jsonrpc/pom.xml | 46 + .../sca/binding/jsonrpc/JSONRPCBinding.java | 33 + .../sca/binding/jsonrpc/JSONRPCBindingFactory.java | 35 + .../jsonrpc/impl/JSONRPCBindingFactoryImpl.java | 38 + .../binding/jsonrpc/impl/JSONRPCBindingImpl.java | 91 ++ ...scany.sca.binding.jsonrpc.JSONRPCBindingFactory | 20 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + .../dynamic/modules/binding-rest-runtime/LICENSE | 205 +++ .../binding-rest-runtime/META-INF/MANIFEST.MF | 51 + .../dynamic/modules/binding-rest-runtime/NOTICE | 6 + .../dynamic/modules/binding-rest-runtime/pom.xml | 175 +++ .../JAXRSOperationSelectorInterceptor.java | 256 ++++ .../JAXRSOperationSelectorProviderFactory.java | 52 + .../JAXRSOperationSelectorReferenceProvider.java | 50 + .../JAXRSOperationSelectorServiceProvider.java | 57 + .../provider/RPCOperationSelectorInterceptor.java | 203 +++ .../RPCOperationSelectorProviderFactory.java | 52 + .../RPCOperationSelectorReferenceProvider.java | 50 + .../RPCOperationSelectorServiceProvider.java | 57 + .../rest/provider/DataBindingJAXRSProvider.java | 203 +++ .../rest/provider/DataBindingJAXRSReader.java | 88 ++ .../rest/provider/DataBindingJAXRSWriter.java | 89 ++ .../sca/binding/rest/provider/JAXRSHelper.java | 80 + .../binding/rest/provider/RESTBindingInvoker.java | 298 ++++ .../rest/provider/RESTBindingListenerServlet.java | 582 +++++++ .../rest/provider/RESTBindingProviderFactory.java | 63 + .../provider/RESTReferenceBindingProvider.java | 64 + .../rest/provider/RESTServiceBindingProvider.java | 371 +++++ .../rest/provider/RESTServiceListenerServlet.java | 118 ++ .../binding/rest/provider/TuscanyRESTServlet.java | 127 ++ .../json/provider/JSONWireFormatInterceptor.java | 159 ++ .../provider/JSONWireFormatProviderFactory.java | 52 + .../provider/JSONWireFormatReferenceProvider.java | 54 + .../provider/JSONWireFormatServiceProvider.java | 136 ++ .../xml/provider/XMLWireFormatInterceptor.java | 143 ++ .../xml/provider/XMLWireFormatProviderFactory.java | 52 + .../provider/XMLWireFormatReferenceProvider.java | 54 + .../xml/provider/XMLWireFormatServiceProvider.java | 137 ++ ...che.tuscany.sca.provider.BindingProviderFactory | 19 + ...y.sca.provider.OperationSelectorProviderFactory | 20 + ....tuscany.sca.provider.WireFormatProviderFactory | 20 + .../sca/binding/rest/NotModifiedException.java | 44 + .../binding/rest/PreconditionFailedException.java | 44 + .../sca/binding/rest/RESTBindingCacheTestCase.java | 903 +++++++++++ .../sca/binding/rest/RESTBindingTestCase.java | 163 ++ .../sca/binding/rest/TestBindingCacheImpl.java | 199 +++ .../tuscany/sca/binding/rest/TestGetImpl.java | 37 + .../tuscany/sca/binding/rest/TestServiceImpl.java | 60 + .../sca/binding/rest/rpc/EchoServiceTestCase.java | 145 ++ .../wireformat/binary/BinaryServiceTestCase.java | 106 ++ .../wireformat/json/CatalogServiceTestCase.java | 150 ++ .../wireformat/xml/CustomerServiceTestCase.java | 119 ++ .../test/java/services/binary/BinaryService.java | 45 + .../java/services/binary/BinaryServiceImpl.java | 57 + .../src/test/java/services/customer/Customer.java | 70 + .../java/services/customer/CustomerService.java | 46 + .../services/customer/CustomerServiceImpl.java | 58 + .../src/test/java/services/echo/Echo.java | 41 + .../src/test/java/services/echo/EchoImpl.java | 45 + .../src/test/java/services/store/Catalog.java | 51 + .../java/services/store/CurrencyConverter.java | 29 + .../java/services/store/CurrencyConverterImpl.java | 38 + .../java/services/store/FruitsCatalogImpl.java | 76 + .../src/test/java/services/store/Item.java | 50 + .../src/test/java/services/store/Items.java | 37 + .../src/test/resources/binary.composite | 33 + .../src/test/resources/content/test.html | 21 + .../src/test/resources/customer.composite | 39 + .../src/test/resources/echo.composite | 44 + .../src/test/resources/store.composite | 41 + .../src/test/resources/test.composite | 40 + .../src/test/resources/testCache.composite | 33 + .../java/dynamic/modules/binding-rest/LICENSE | 205 +++ .../modules/binding-rest/META-INF/MANIFEST.MF | 27 + .../java/dynamic/modules/binding-rest/NOTICE | 6 + .../java/dynamic/modules/binding-rest/pom.xml | 60 + .../tuscany/sca/binding/rest/RESTBinding.java | 38 + .../sca/binding/rest/RESTBindingFactory.java | 36 + .../binding/rest/impl/RESTBindingFactoryImpl.java | 36 + .../sca/binding/rest/impl/RESTBindingImpl.java | 111 ++ .../jaxrs/JAXRSOperationSelector.java | 43 + .../jaxrs/JAXRSOperationSelectorFactory.java | 35 + .../impl/JAXRSOperationSelectorFactoryImpl.java | 36 + .../jaxrs/impl/JAXRSOperationSelectorImpl.java | 45 + .../rpc/RPCOperationSelector.java | 43 + .../rpc/RPCOperationSelectorFactory.java | 35 + .../rpc/impl/RPCOperationSelectorFactoryImpl.java | 36 + .../rpc/impl/RPCOperationSelectorImpl.java | 45 + .../rest/wireformat/json/JSONWireFormat.java | 43 + .../wireformat/json/JSONWireFormatFactory.java | 34 + .../json/impl/JSONWireFormatFactoryImpl.java | 36 + .../wireformat/json/impl/JSONWireFormatImpl.java | 44 + .../binding/rest/wireformat/xml/XMLWireFormat.java | 43 + .../rest/wireformat/xml/XMLWireFormatFactory.java | 34 + .../xml/impl/XMLWireFormatFactoryImpl.java | 37 + .../wireformat/xml/impl/XMLWireFormatImpl.java | 44 + .../sca/binding/rest/xml/RESTBindingProcessor.java | 232 +++ ...che.tuscany.sca.binding.rest.RESTBindingFactory | 20 + ...ionselector.jaxrs.JAXRSOperationSelectorFactory | 19 + ...erationselector.rpc.RPCOperationSelectorFactory | 19 + ...ding.rest.wireformat.json.JSONWireFormatFactory | 19 + ...inding.rest.wireformat.xml.XMLWireFormatFactory | 19 + ...ca.contribution.processor.StAXArtifactProcessor | 27 + .../JAXRSOperationSelectorProcessorTestCase.java | 107 ++ .../json/impl/JSONWireFormatProcessorTestCase.java | 133 ++ .../rest/xml/RESTBindingProcessorTestCase.java | 93 ++ .../dynamic/modules/binding-rmi-runtime/LICENSE | 205 +++ .../binding-rmi-runtime/META-INF/MANIFEST.MF | 28 + .../dynamic/modules/binding-rmi-runtime/NOTICE | 6 + .../dynamic/modules/binding-rmi-runtime/pom.xml | 79 + .../binding/rmi/provider/RMIBindingInvoker.java | 100 ++ .../rmi/provider/RMIBindingProviderFactory.java | 60 + .../rmi/provider/RMIReferenceBindingProvider.java | 79 + .../rmi/provider/RMIServiceBindingProvider.java | 168 +++ .../rmi/provider/RemoteInterfaceGenerator.java | 102 ++ ...che.tuscany.sca.provider.BindingProviderFactory | 20 + .../src/test/java/helloworld/HelloException.java | 60 + .../src/test/java/helloworld/HelloWorldImpl.java | 42 + .../test/java/helloworld/HelloWorldRmiImpl.java | 50 + .../test/java/helloworld/HelloWorldRmiService.java | 31 + .../test/java/helloworld/HelloWorldService.java | 31 + .../tuscany/sca/binding/rmi/BindingTestCase.java | 80 + .../test/resources/HelloWorldImpl.componentType | 23 + .../test/resources/HelloWorldRmiImpl.componentType | 28 + .../src/test/resources/RMIBindingTest.composite | 41 + .../java/dynamic/modules/binding-rmi/LICENSE | 205 +++ .../modules/binding-rmi/META-INF/MANIFEST.MF | 17 + .../java/dynamic/modules/binding-rmi/NOTICE | 6 + .../java/dynamic/modules/binding-rmi/pom.xml | 41 + .../apache/tuscany/sca/binding/rmi/RMIBinding.java | 33 + .../tuscany/sca/binding/rmi/RMIBindingFactory.java | 33 + .../binding/rmi/impl/RMIBindingFactoryImpl.java | 35 + .../sca/binding/rmi/impl/RMIBindingImpl.java | 90 ++ ...pache.tuscany.sca.binding.rmi.RMIBindingFactory | 20 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + .../dynamic/modules/binding-rss-runtime/LICENSE | 205 +++ .../binding-rss-runtime/META-INF/MANIFEST.MF | 21 + .../dynamic/modules/binding-rss-runtime/NOTICE | 6 + .../dynamic/modules/binding-rss-runtime/pom.xml | 170 +++ .../sca/binding/rss/collection/Collection.java | 58 + .../binding/rss/collection/MediaCollection.java | 55 + .../binding/rss/collection/NotFoundException.java | 45 + .../binding/rss/provider/RSSBindingInvoker.java | 76 + .../rss/provider/RSSBindingListenerServlet.java | 397 +++++ .../rss/provider/RSSBindingProviderFactory.java | 66 + .../rss/provider/RSSReferenceBindingProvider.java | 68 + .../rss/provider/RSSServiceBindingProvider.java | 93 ++ ...che.tuscany.sca.provider.BindingProviderFactory | 19 + .../apache/tuscany/sca/binding/rss/Consumer.java | 42 + .../tuscany/sca/binding/rss/CustomerClient.java | 25 + .../sca/binding/rss/CustomerClientImpl.java | 45 + .../sca/binding/rss/CustomerCollectionImpl.java | 114 ++ .../apache/tuscany/sca/binding/rss/Provider.java | 49 + .../tuscany/sca/binding/rss/RSSGetTestCase.java | 78 + .../tuscany/sca/binding/rss/Consumer.composite | 32 + .../tuscany/sca/binding/rss/Provider.composite | 33 + .../java/dynamic/modules/binding-rss/LICENSE | 205 +++ .../modules/binding-rss/META-INF/MANIFEST.MF | 20 + .../java/dynamic/modules/binding-rss/NOTICE | 6 + .../java/dynamic/modules/binding-rss/pom.xml | 78 + .../apache/tuscany/sca/binding/rss/RSSBinding.java | 33 + .../tuscany/sca/binding/rss/RSSBindingFactory.java | 35 + .../binding/rss/impl/RSSBindingFactoryImpl.java | 36 + .../sca/binding/rss/impl/RSSBindingImpl.java | 91 ++ ...pache.tuscany.sca.binding.rss.RSSBindingFactory | 19 + ...ca.contribution.processor.StAXArtifactProcessor | 19 + .../dynamic/modules/binding-sca-runtime/LICENSE | 205 +++ .../binding-sca-runtime/META-INF/MANIFEST.MF | 43 + .../dynamic/modules/binding-sca-runtime/NOTICE | 6 + .../dynamic/modules/binding-sca-runtime/pom.xml | 72 + .../sca/provider/DefaultSCABindingMapper.java | 220 +++ .../DelegatingSCAReferenceBindingProvider.java | 69 + .../DelegatingSCAServiceBindingProvider.java | 82 + .../binding/sca/provider/RemoteBindingHelper.java | 43 + .../provider/RuntimeSCABindingProviderFactory.java | 56 + .../RuntimeSCAReferenceBindingProvider.java | 215 +++ .../provider/RuntimeSCAServiceBindingProvider.java | 101 ++ .../binding/sca/provider/SCABindingInvoker.java | 91 ++ .../sca/binding/sca/provider/SCABindingMapper.java | 50 + ...scany.sca.binding.sca.provider.SCABindingMapper | 17 + ....apache.tuscany.sca.definitions.xml.Definitions | 17 + ...che.tuscany.sca.provider.BindingProviderFactory | 20 + .../apache/tuscany/sca/binding/sca/definitions.xml | 27 + .../sca/binding/sca/SCABindingTestCase.java | 102 ++ .../tuscany/sca/binding/sca/xml/ReadTestCase.java | 93 ++ .../tuscany/sca/binding/sca/xml/WriteTestCase.java | 88 ++ .../src/test/resources/Calculator.composite | 59 + .../resources/CalculatorServiceImpl.componentType | 33 + .../modules/binding-ws-runtime-axis2/LICENSE | 205 +++ .../binding-ws-runtime-axis2/META-INF/MANIFEST.MF | 151 ++ .../modules/binding-ws-runtime-axis2/NOTICE | 6 + .../modules/binding-ws-runtime-axis2/pom.xml | 436 ++++++ .../BasicAuthenticationPolicyProviderFactory.java | 57 + ...icAuthenticationReferencePolicyInterceptor.java | 129 ++ ...BasicAuthenticationReferencePolicyProvider.java | 48 + ...asicAuthenticationServicePolicyInterceptor.java | 123 ++ .../BasicAuthenticationServicePolicyProvider.java | 49 + .../configuration/Axis2ConfigParamPolicy.java | 53 + .../Axis2ConfigParamPolicyProcessor.java | 156 ++ .../Axis2ConfigParamPolicyProvider.java | 60 + .../Axis2ConfigParamPolicyProviderFactory.java | 54 + .../axis2/policy/mtom/Axis2MTOMPolicyProvider.java | 44 + .../security/http/ssl/HTTPSPolicyProvider.java | 66 + .../http/ssl/HTTPSPolicyProviderFactory.java | 57 + .../axis2/provider/Axis2BaseBindingProvider.java | 62 + .../provider/Axis2BindingProviderFactory.java | 63 + .../ws/axis2/provider/Axis2EngineIntegration.java | 540 +++++++ .../provider/Axis2ReferenceBindingInvoker.java | 380 +++++ .../provider/Axis2ReferenceBindingProvider.java | 359 +++++ .../provider/Axis2ServiceBindingProvider.java | 304 ++++ .../provider/Axis2ServiceInMessageReceiver.java | 58 + .../Axis2ServiceInOutSyncMessageReceiver.java | 83 + .../ws/axis2/provider/Axis2ServiceServlet.java | 300 ++++ .../ws/axis2/provider/TuscanyDispatcher.java | 104 ++ .../ws/axis2/provider/TuscanyListingAgent.java | 232 +++ .../ws/axis2/provider/TuscanyServiceProvider.java | 296 ++++ .../transport/TransportReferenceInterceptor.java | 137 ++ ....apache.tuscany.sca.definitions.xml.Definitions | 17 + ...che.tuscany.sca.provider.BindingProviderFactory | 21 + ...ache.tuscany.sca.provider.PolicyProviderFactory | 20 + .../tuscany/sca/binding/ws/axis2/definitions.xml | 44 + .../binding/ws/axis2/engine/conf/tuscany-axis2.xml | 507 +++++++ .../axis2/engine/repository/modules/modules.list | 1 + .../engine/repository/modules/rampart-1.4.mar | Bin 0 -> 2796 bytes .../axis2/engine/repository/services/services.list | 0 .../sca/binding/ws/axis2/HelloWorldTestCase.java | 51 + .../sca/binding/ws/axis2/WSDLBindingTestCase.java | 51 + .../binding/ws/axis2/WSDLBindingURITestCase.java | 51 + .../binding/ws/axis2/WSDLBindingWSATestCase.java | 51 + .../binding/ws/axis2/helloworld/HelloWorld.java | 29 + .../ws/axis2/helloworld/HelloWorldClient.java | 35 + .../ws/axis2/helloworld/HelloWorldService.java | 30 + .../ws/axis2/helloworld/helloworld.composite | 45 + .../binding/ws/axis2/helloworld/helloworld.wsdl | 86 ++ .../ws/axis2/wsdlbinding/helloworld.composite | 41 + .../ws/axis2/wsdlbindinguri/helloworld.composite | 42 + .../ws/axis2/wsdlbindingwsa/helloworld.composite | 45 + .../modules/binding-ws-runtime-jaxws-ri/LICENSE | 205 +++ .../META-INF/MANIFEST.MF | 54 + .../modules/binding-ws-runtime-jaxws-ri/NOTICE | 6 + .../modules/binding-ws-runtime-jaxws-ri/pom.xml | 151 ++ .../ws/jaxws/ri/JAXWSBindingProviderFactory.java | 77 + .../ws/jaxws/ri/JAXWSReferenceBindingProvider.java | 77 + .../ws/jaxws/ri/JAXWSServiceBindingProvider.java | 140 ++ ....apache.tuscany.sca.definitions.xml.Definitions | 17 + ...che.tuscany.sca.provider.BindingProviderFactory | 19 + .../sca/binding/ws/jaxws/ri/definitions.xml | 41 + .../sca/binding/ws/axis2/WSDLPortTestCase.java | 100 ++ .../binding/ws/axis2/helloworld/HelloWorld.java | 29 + .../ws/axis2/helloworld/HelloWorldClient.java | 35 + .../ws/axis2/helloworld/HelloWorldService.java | 30 + .../binding/ws/axis2/wsdlport/helloworld.composite | 39 + .../sca/binding/ws/axis2/wsdlport/helloworld.wsdl | 80 + .../modules/binding-ws-runtime-jaxws/LICENSE | 205 +++ .../binding-ws-runtime-jaxws/META-INF/MANIFEST.MF | 55 + .../modules/binding-ws-runtime-jaxws/NOTICE | 6 + .../modules/binding-ws-runtime-jaxws/pom.xml | 235 +++ .../sca/binding/ws/jaxws/JAXWSBindingInvoker.java | 580 +++++++ .../sca/binding/ws/jaxws/JAXWSBindingProvider.java | 314 ++++ .../dynamic/modules/binding-ws-wsdlgen/LICENSE | 205 +++ .../binding-ws-wsdlgen/META-INF/MANIFEST.MF | 60 + .../java/dynamic/modules/binding-ws-wsdlgen/NOTICE | 6 + .../dynamic/modules/binding-ws-wsdlgen/pom.xml | 79 + .../binding/ws/wsdlgen/BindingWSDLGenerator.java | 359 +++++ .../ws/wsdlgen/Interface2WSDLGenerator.java | 897 +++++++++++ .../binding/ws/wsdlgen/WSDLContractBuilder.java | 90 ++ .../ws/wsdlgen/WSDLDefinitionGenerator.java | 305 ++++ .../ws/wsdlgen/WSDLGenerationException.java | 54 + .../binding/ws/wsdlgen/WSDLServiceGenerator.java | 527 +++++++ .../ws/wsdlgen/WebServiceBindingBuilder.java | 60 + ...che.tuscany.sca.assembly.builder.BindingBuilder | 18 + ...he.tuscany.sca.assembly.builder.ContractBuilder | 18 + .../wsdlgen-validation-messages.properties | 32 + .../apache/tuscany/sca/binding/ws/other/Other.java | 34 + .../tuscany/sca/binding/ws/other/package-info.java | 21 + .../ws/wsdlgen/BindingWSDLGeneratorTestCase.java | 86 ++ .../wsdlgen/Interface2WSDLGeneratorTestCase.java | 75 + .../sca/binding/ws/wsdlgen/TestException.java | 47 + .../tuscany/sca/binding/ws/wsdlgen/TestFault.java | 46 + .../sca/binding/ws/wsdlgen/TestFaultBean.java | 54 + .../sca/binding/ws/wsdlgen/TestJavaClass.java | 32 + .../sca/binding/ws/wsdlgen/TestJavaInterface.java | 67 + .../java/dynamic/modules/binding-ws/LICENSE | 205 +++ .../modules/binding-ws/META-INF/MANIFEST.MF | 44 + .../java/dynamic/modules/binding-ws/NOTICE | 6 + .../java/dynamic/modules/binding-ws/pom.xml | 95 ++ .../tuscany/sca/binding/ws/WebServiceBinding.java | 279 ++++ .../sca/binding/ws/WebServiceBindingFactory.java | 35 + .../binding/ws/addressing/EndPointReference.java | 62 + .../ws/impl/WebServiceBindingFactoryImpl.java | 35 + .../sca/binding/ws/impl/WebServiceBindingImpl.java | 460 ++++++ .../binding/ws/xml/EndPointReferenceHelper.java | 223 +++ .../binding/ws/xml/WebServiceBindingProcessor.java | 526 +++++++ .../sca/binding/ws/xml/WebServiceConstants.java | 47 + ...tuscany.sca.binding.ws.WebServiceBindingFactory | 19 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + .../binding-wsxml-validation-messages.properties | 38 + .../tuscany/sca/binding/ws/xml/ReadTestCase.java | 106 ++ .../tuscany/sca/binding/ws/xml/WriteTestCase.java | 82 + .../ws/xml/Calculator-bad-wsdlElement.composite | 59 + .../sca/binding/ws/xml/Calculator.composite | 63 + .../binding/ws/xml/CalculatorImpl.componentType | 45 + .../binding/ws/xml/PoliciedCalculator.composite | 60 + .../apache/tuscany/sca/binding/ws/xml/example.wsdl | 26 + .../sca/binding/ws/xml/invalid-stockquote.wsdl | 58 + .../org/apache/tuscany/sca/binding/ws/xml/ipo.xsd | 136 ++ .../tuscany/sca/binding/ws/xml/stockquote.wsdl | 58 + .../apache/tuscany/sca/binding/ws/xml/test1.wsdl | 45 + .../apache/tuscany/sca/binding/ws/xml/test1.xsd | 33 + .../apache/tuscany/sca/binding/ws/xml/test2.wsdl | 63 + .../sca/binding/ws/xml/unwrapped-stockquote.wsdl | 76 + .../dynamic/modules/builder/META-INF/MANIFEST.MF | 42 + .../sebastien/java/dynamic/modules/builder/pom.xml | 65 + .../sca/builder/impl/BindingURIBuilderImpl.java | 355 +++++ .../sca/builder/impl/ComponentBuilderImpl.java | 1504 ++++++++++++++++++ .../builder/impl/ComponentPolicyBuilderImpl.java | 578 +++++++ .../impl/ComponentReferenceBindingBuilderImpl.java | 81 + .../impl/ComponentServiceBindingBuilderImpl.java | 80 + .../builder/impl/CompositeCloneBuilderImpl.java | 100 ++ .../impl/CompositeComponentTypeBuilderImpl.java | 696 +++++++++ .../builder/impl/CompositeIncludeBuilderImpl.java | 126 ++ .../builder/impl/CompositePolicyBuilderImpl.java | 344 +++++ .../sca/builder/impl/CompositeWireApplierImpl.java | 212 +++ .../sca/builder/impl/EndpointBuilderImpl.java | 137 ++ .../builder/impl/EndpointReferenceBuilderImpl.java | 883 +++++++++++ .../tuscany/sca/builder/impl/IntentValidator.java | 139 ++ .../tuscany/sca/builder/impl/ModelBuilderImpl.java | 189 +++ .../builder/impl/PolicyAppliesToBuilderImpl.java | 171 +++ .../builder/impl/PolicyAttachmentBuilderImpl.java | 336 +++++ .../sca/builder/impl/StructuralURIBuilderImpl.java | 191 +++ .../tuscany/sca/builder/impl/WireBuilderImpl.java | 1028 +++++++++++++ .../tuscany/sca/builder/impl/WireMatcherImpl.java | 64 + ...e.tuscany.sca.assembly.builder.CompositeBuilder | 18 + .../builder/builder-validation-messages.properties | 35 + .../sca/builder/impl/BuildPolicyTestCase.java | 132 ++ .../sca/builder/impl/CompositeBuilderTestCase.java | 139 ++ .../tuscany/sca/builder/impl/MockPolicy.java | 39 + .../sca/builder/impl/PolicyAttachmentTestCase.java | 151 ++ .../sca/builder/impl/TestPolicyProcessor.java | 58 + .../tuscany/sca/builder/impl/Calculator.composite | 49 + .../tuscany/sca/builder/impl/Composite1.composite | 34 + .../tuscany/sca/builder/impl/Composite2.composite | 33 + .../tuscany/sca/builder/impl/Composite3.composite | 29 + .../tuscany/sca/builder/impl/Composite4.composite | 32 + .../tuscany/sca/builder/impl/definitions.xml | 38 + .../apache/tuscany/sca/builder/impl/scenario.odg | Bin 0 -> 15518 bytes .../apache/tuscany/sca/builder/impl/scenario.png | Bin 0 -> 4041817 bytes .../tuscany/sca/builder/impl/test_definitions.xml | 207 +++ .../modules/common-http/META-INF/MANIFEST.MF | 14 + .../java/dynamic/modules/common-http/pom.xml | 47 + .../tuscany/sca/common/http/HTTPCacheContext.java | 261 ++++ .../tuscany/sca/common/http/HTTPConstants.java | 36 + .../sca/common/http/HTTPContentTypeMapper.java | 58 + .../tuscany/sca/common/http/HTTPContext.java | 46 + .../apache/tuscany/sca/common/http/HTTPHeader.java | 73 + .../apache/tuscany/sca/common/http/HTTPUtil.java | 93 ++ .../modules/common-java/META-INF/MANIFEST.MF | 22 + .../java/dynamic/modules/common-java/pom.xml | 55 + .../java/classloader/ClassLoaderDelegate.java | 102 ++ .../sca/common/java/collection/CollectionMap.java | 77 + .../java/collection/CompoundEnumeration.java | 93 ++ .../common/java/collection/CompoundIterator.java | 113 ++ .../sca/common/java/collection/LRUCache.java | 89 ++ .../tuscany/sca/common/java/io/IOHelper.java | 167 ++ .../java/reflection/JavaIntrospectionHelper.java | 586 ++++++++ .../JavaIntrospectionHelperTestCase.java | 71 + .../sca/common/java/reflection/SubTestImpl.java | 45 + .../tuscany/sca/common/java/reflection/Test1.java | 28 + .../tuscany/sca/common/java/reflection/Test2.java | 28 + .../sca/common/java/reflection/TestImpl.java | 44 + .../modules/common-xml/META-INF/MANIFEST.MF | 57 + .../java/dynamic/modules/common-xml/pom.xml | 98 ++ .../tuscany/sca/common/xml/XMLDocumentHelper.java | 153 ++ .../tuscany/sca/common/xml/dom/DOMHelper.java | 231 +++ .../sca/common/xml/dom/impl/SAX2DOMAdapter.java | 244 +++ .../tuscany/sca/common/xml/sax/SAXHelper.java | 79 + .../tuscany/sca/common/xml/stax/StAXHelper.java | 573 +++++++ .../sca/common/xml/stax/impl/StAX2SAXAdapter.java | 256 ++++ .../common/xml/stax/impl/XMLStreamSerializer.java | 368 +++++ .../common/xml/stax/reader/DOMXMLStreamReader.java | 36 + .../sca/common/xml/stax/reader/DOMXmlNodeImpl.java | 150 ++ .../stax/reader/DelegatingNamespaceContext.java | 310 ++++ .../stax/reader/NameValueArrayStreamReader.java | 404 +++++ .../xml/stax/reader/NameValuePairStreamReader.java | 348 +++++ .../sca/common/xml/stax/reader/NamedProperty.java | 59 + .../xml/stax/reader/NamespaceContextImpl.java | 124 ++ .../xml/stax/reader/NilElementStreamReader.java | 279 ++++ .../common/xml/stax/reader/SimpleXmlNodeImpl.java | 112 ++ .../xml/stax/reader/WrappingXMLStreamReader.java | 100 ++ .../xml/stax/reader/XMLDocumentStreamReader.java | 482 ++++++ .../xml/stax/reader/XMLFragmentStreamReader.java | 53 + .../stax/reader/XMLFragmentStreamReaderImpl.java | 858 +++++++++++ .../sca/common/xml/stax/reader/XMLStreamable.java | 37 + .../sca/common/xml/stax/reader/XmlNode.java | 69 + .../common/xml/stax/reader/XmlNodeIterator.java | 258 ++++ .../xml/stax/reader/XmlTreeStreamReaderImpl.java | 531 +++++++ .../sca/common/xml/xpath/XMLCharHelper.java | 613 ++++++++ .../tuscany/sca/common/xml/xpath/XPathHelper.java | 169 +++ .../sca/common/xml/dom/DOMHelperTestCase.java | 81 + .../sca/common/xml/stax/StAXHelperTestCase.java | 112 ++ .../stax/reader/XmlTreeStreamReaderTestCase.java | 207 +++ .../sca/common/xml/xpath/XPathHelperTestCase.java | 120 ++ .../apache/tuscany/sca/common/xml/stax/test.wsdl | 60 + .../apache/tuscany/sca/common/xml/stax/test.xsd | 30 + .../java/dynamic/modules/contribution-osgi/LICENSE | 205 +++ .../modules/contribution-osgi/META-INF/MANIFEST.MF | 24 + .../java/dynamic/modules/contribution-osgi/NOTICE | 6 + .../java/dynamic/modules/contribution-osgi/pom.xml | 72 + .../sca/contribution/osgi/BundleReference.java | 136 ++ .../osgi/impl/OSGiBundleActivator.java | 152 ++ .../osgi/impl/OSGiBundleContributionScanner.java | 222 +++ .../osgi/impl/OSGiBundleProcessor.java | 75 + .../impl/OSGiBundleReferenceModelResolver.java | 117 ++ .../osgi/impl/OSGiClassReferenceModelResolver.java | 73 + ...tuscany.sca.contribution.resolver.ModelResolver | 19 + ...ny.sca.contribution.scanner.ContributionScanner | 22 + .../java/dynamic/modules/contribution/LICENSE | 205 +++ .../modules/contribution/META-INF/MANIFEST.MF | 59 + .../java/dynamic/modules/contribution/NOTICE | 6 + .../java/dynamic/modules/contribution/pom.xml | 69 + .../apache/tuscany/sca/contribution/Artifact.java | 75 + .../tuscany/sca/contribution/ContentType.java | 40 + .../tuscany/sca/contribution/Contribution.java | 126 ++ .../sca/contribution/ContributionFactory.java | 66 + .../sca/contribution/ContributionMetadata.java | 70 + .../contribution/DefaultContributionFactory.java | 32 + .../tuscany/sca/contribution/DefaultExport.java | 30 + .../tuscany/sca/contribution/DefaultImport.java | 31 + .../apache/tuscany/sca/contribution/Export.java | 48 + .../apache/tuscany/sca/contribution/Import.java | 58 + .../tuscany/sca/contribution/PackageType.java | 57 + .../sca/contribution/impl/ArtifactImpl.java | 94 ++ .../contribution/impl/ContributionFactoryImpl.java | 60 + .../sca/contribution/impl/ContributionImpl.java | 158 ++ .../impl/ContributionMetadataImpl.java | 74 + .../sca/contribution/impl/DefaultExportImpl.java | 46 + .../sca/contribution/impl/DefaultImportImpl.java | 56 + .../java/DefaultJavaImportExportFactory.java | 30 + .../tuscany/sca/contribution/java/JavaExport.java | 43 + .../tuscany/sca/contribution/java/JavaImport.java | 58 + .../contribution/java/JavaImportExportFactory.java | 42 + .../java/impl/ClassLoaderModelResolver.java | 174 +++ .../java/impl/ContributionClassLoader.java | 386 +++++ .../contribution/java/impl/ContributionHelper.java | 96 ++ .../sca/contribution/java/impl/JavaExportImpl.java | 59 + .../java/impl/JavaExportModelResolver.java | 77 + .../java/impl/JavaExportProcessor.java | 147 ++ .../java/impl/JavaImportExportFactoryImpl.java | 41 + .../sca/contribution/java/impl/JavaImportImpl.java | 111 ++ .../java/impl/JavaImportModelResolver.java | 63 + .../java/impl/JavaImportProcessor.java | 153 ++ .../DefaultNamespaceImportExportFactory.java | 30 + .../contribution/namespace/NamespaceExport.java | 46 + .../contribution/namespace/NamespaceImport.java | 60 + .../namespace/NamespaceImportExportFactory.java | 42 + .../namespace/impl/NamespaceExportImpl.java | 55 + .../impl/NamespaceExportModelResolver.java | 55 + .../namespace/impl/NamespaceExportProcessor.java | 172 +++ .../impl/NamespaceImportExportFactoryImpl.java | 41 + .../namespace/impl/NamespaceImportImpl.java | 93 ++ .../namespace/impl/NamespaceImportProcessor.java | 178 +++ .../contribution/processor/ArtifactProcessor.java | 48 + .../processor/BaseStAXArtifactProcessor.java | 532 +++++++ .../processor/ContributionException.java | 46 + .../processor/ContributionReadException.java | 96 ++ .../processor/ContributionResolveException.java | 43 + .../processor/ContributionRuntimeException.java | 45 + .../processor/ContributionWriteException.java | 63 + .../DefaultArtifactProcessorExtensionPoint.java | 66 + ...DefaultStAXArtifactProcessorExtensionPoint.java | 325 ++++ ...efaultStAXAttributeProcessorExtensionPoint.java | 292 ++++ .../DefaultURLArtifactProcessorExtensionPoint.java | 320 ++++ .../DefaultValidatingXMLInputFactory.java | 435 ++++++ .../DefaultValidationSchemaExtensionPoint.java | 123 ++ .../processor/ExtendedArtifactProcessor.java | 41 + .../processor/ExtendedURLArtifactProcessor.java | 30 + .../processor/ExtensibleStAXArtifactProcessor.java | 283 ++++ .../ExtensibleStAXAttributeProcessor.java | 259 ++++ .../processor/ExtensibleURLArtifactProcessor.java | 145 ++ .../contribution/processor/ProcessorContext.java | 95 ++ .../processor/StAXArtifactProcessor.java | 62 + .../StAXArtifactProcessorExtensionPoint.java | 57 + .../processor/StAXAttributeProcessor.java | 64 + .../StAXAttributeProcessorExtensionPoint.java | 56 + .../processor/URLArtifactProcessor.java | 52 + .../URLArtifactProcessorExtensionPoint.java | 66 + .../processor/UnrecognizedElementException.java | 48 + .../processor/UnsupportedContentTypeException.java | 43 + .../processor/UnsupportedPackageTypeException.java | 40 + .../processor/ValidatingXMLInputFactory.java | 49 + .../processor/ValidatingXMLStreamReader.java | 409 +++++ .../processor/ValidationSchemaExtensionPoint.java | 63 + .../impl/ContributionContentProcessor.java | 306 ++++ .../processor/xml/AnyAttributeProcessor.java | 79 + .../processor/xml/AnyElementProcessor.java | 96 ++ .../sca/contribution/resolver/ClassReference.java | 108 ++ .../resolver/DefaultDelegatingModelResolver.java | 69 + .../resolver/DefaultImportAllModelResolver.java | 81 + .../resolver/DefaultImportModelResolver.java | 70 + .../resolver/DefaultModelResolver.java | 89 ++ .../DefaultModelResolverExtensionPoint.java | 131 ++ .../resolver/ExtensibleModelResolver.java | 179 +++ .../sca/contribution/resolver/ModelResolver.java | 75 + .../resolver/ModelResolverExtensionPoint.java | 52 + .../contribution/resolver/ResolverExtension.java | 46 + .../contribution/resolver/ResourceReference.java | 103 ++ .../contribution/scanner/ContributionScanner.java | 55 + .../scanner/ContributionScannerExtensionPoint.java | 50 + .../DefaultContributionScannerExtensionPoint.java | 131 ++ .../scanner/impl/DirectoryContributionScanner.java | 148 ++ .../scanner/impl/JarContributionScanner.java | 143 ++ ...ributionGeneratedMetadataDocumentProcessor.java | 48 + .../xml/ContributionMetadataDocumentProcessor.java | 127 ++ .../xml/ContributionMetadataProcessor.java | 270 ++++ .../xml/ContributionModelResolver.java | 73 + ...he.tuscany.sca.contribution.ContributionFactory | 18 + ...y.sca.contribution.java.JavaImportExportFactory | 19 + ...ribution.namespace.NamespaceImportExportFactory | 19 + ...ca.contribution.processor.StAXArtifactProcessor | 25 + ...n.processor.StAXArtifactProcessorExtensionPoint | 19 + ...a.contribution.processor.StAXAttributeProcessor | 20 + ....processor.StAXAttributeProcessorExtensionPoint | 19 + ...sca.contribution.processor.URLArtifactProcessor | 22 + ...on.processor.URLArtifactProcessorExtensionPoint | 19 + ...ontribution.processor.ValidatingXMLInputFactory | 17 + ...bution.processor.ValidationSchemaExtensionPoint | 19 + ...tuscany.sca.contribution.resolver.ModelResolver | 20 + ...ntribution.resolver.ModelResolverExtensionPoint | 19 + ...ution.scanner.ContributionScannerExtensionPoint | 19 + ...ontribution-java-validation-messages.properties | 23 + ...bution-namespace-validation-messages.properties | 23 + .../contribution-validation-messages.properties | 34 + ...contribution-xml-validation-messages.properties | 25 + .../java/impl/ContributionClassLoaderTestCase.java | 262 ++++ .../java/impl/JavaExportProcessorTestCase.java | 103 ++ .../java/impl/JavaImportProcessorTestCase.java | 106 ++ .../impl/NamespaceExportProcessorTestCase.java | 106 ++ .../impl/NamespaceImportProcessorTestCase.java | 110 ++ ...URLartifactProcessorExtensionPointTestCase.java | 116 ++ .../resolver/DefaultModelResolverTestCase.java | 94 ++ .../resolver/ExtensibleModelResolverTestCase.java | 137 ++ .../contribution/resolver/TestModelResolver.java | 59 + .../xml/ContributionMetadataProcessorTestCase.java | 156 ++ .../resources/deployables/sample-calculator.jar | Bin 0 -> 26901 bytes .../resources/repository/sample-calculator.jar | Bin 0 -> 29164 bytes .../contribution/src/test/resources/test.composite | 22 + .../java/dynamic/modules/core-databinding/LICENSE | 205 +++ .../modules/core-databinding/META-INF/MANIFEST.MF | 30 + .../java/dynamic/modules/core-databinding/NOTICE | 6 + .../java/dynamic/modules/core-databinding/pom.xml | 91 ++ .../DataBindingJavaInterfaceProcessor.java | 131 ++ .../processor/WrapperJavaInterfaceProcessor.java | 126 ++ .../transformers/Array2ArrayTransformer.java | 104 ++ .../Collection2CollectionTransformer.java | 108 ++ .../Exception2ExceptionTransformer.java | 112 ++ .../transformers/Input2InputTransformer.java | 270 ++++ .../transformers/Map2MapTransformer.java | 108 ++ .../transformers/Output2OutputTransformer.java | 251 +++ .../wire/DataBindingRuntimeWireProcessor.java | 184 +++ .../wire/DataTransformationInterceptor.java | 98 ++ .../databinding/wire/PassByValueInterceptor.java | 80 + ....apache.tuscany.sca.databinding.PullTransformer | 30 + ...terfacedef.java.introspect.JavaInterfaceVisitor | 19 + ...apache.tuscany.sca.runtime.RuntimeWireProcessor | 17 + .../java/dynamic/modules/core-spi/LICENSE | 205 +++ .../dynamic/modules/core-spi/META-INF/MANIFEST.MF | 48 + .../sebastien/java/dynamic/modules/core-spi/NOTICE | 6 + .../java/dynamic/modules/core-spi/pom.xml | 118 ++ .../modules/core-spi/src/doc/Context Model.emx | 673 +++++++++ .../sca/context/ComponentContextFactory.java | 38 + .../tuscany/sca/context/CompositeContext.java | 152 ++ .../sca/context/ContextFactoryExtensionPoint.java | 51 + .../DefaultContextFactoryExtensionPoint.java | 115 ++ .../tuscany/sca/context/PropertyValueFactory.java | 42 + .../tuscany/sca/context/RequestContextFactory.java | 35 + .../tuscany/sca/context/ThreadMessageContext.java | 57 + .../sca/invocation/DataExchangeSemantics.java | 34 + .../apache/tuscany/sca/invocation/Interceptor.java | 41 + .../tuscany/sca/invocation/InvocationChain.java | 108 ++ .../org/apache/tuscany/sca/invocation/Invoker.java | 37 + .../org/apache/tuscany/sca/invocation/Message.java | 129 ++ .../tuscany/sca/invocation/MessageFactory.java | 37 + .../org/apache/tuscany/sca/invocation/Phase.java | 60 + .../tuscany/sca/invocation/PhasedInterceptor.java | 32 + .../tuscany/sca/management/ConfigAttributes.java | 26 + .../tuscany/sca/management/ManagementService.java | 39 + .../tuscany/sca/provider/BasePolicyProvider.java | 186 +++ .../sca/provider/BindingPolicyProvider.java | 37 + .../sca/provider/BindingProviderFactory.java | 51 + .../DefaultProviderFactoryExtensionPoint.java | 500 ++++++ .../tuscany/sca/provider/EndpointProvider.java | 35 + .../sca/provider/EndpointReferenceProvider.java | 36 + .../sca/provider/ImplementationProvider.java | 57 + .../provider/ImplementationProviderFactory.java | 43 + .../sca/provider/OperationSelectorProvider.java | 40 + .../provider/OperationSelectorProviderFactory.java | 44 + .../tuscany/sca/provider/PolicyImplementor.java | 38 + .../tuscany/sca/provider/PolicyProvider.java | 55 + .../sca/provider/PolicyProviderFactory.java | 52 + .../tuscany/sca/provider/ProviderFactory.java | 36 + .../provider/ProviderFactoryExtensionPoint.java | 74 + .../sca/provider/ReferenceBindingProvider.java | 64 + .../tuscany/sca/provider/RuntimeProvider.java | 35 + .../sca/provider/ServiceBindingProvider.java | 53 + .../tuscany/sca/provider/WireFormatProvider.java | 55 + .../sca/provider/WireFormatProviderFactory.java | 44 + .../tuscany/sca/runtime/ActivationException.java | 37 + .../sca/runtime/BaseDomainRegistryFactory.java | 115 ++ .../tuscany/sca/runtime/BaseEndpointRegistry.java | 141 ++ .../tuscany/sca/runtime/CompositeActivator.java | 159 ++ ...DefaultDomainRegistryFactoryExtensionPoint.java | 103 ++ .../DefaultWireProcessorExtensionPoint.java | 127 ++ .../tuscany/sca/runtime/DomainRegistryFactory.java | 61 + .../DomainRegistryFactoryExtensionPoint.java | 51 + .../tuscany/sca/runtime/DomainRegistryURI.java | 168 +++ .../tuscany/sca/runtime/EndpointListener.java | 46 + .../sca/runtime/EndpointReferenceBinder.java | 52 + .../tuscany/sca/runtime/EndpointRegistry.java | 71 + .../tuscany/sca/runtime/EndpointSerializer.java | 36 + .../runtime/ExtensibleDomainRegistryFactory.java | 133 ++ .../org/apache/tuscany/sca/runtime/Invocable.java | 137 ++ .../tuscany/sca/runtime/ReferenceParameters.java | 59 + .../tuscany/sca/runtime/RuntimeComponent.java | 84 ++ .../sca/runtime/RuntimeComponentContext.java | 70 + .../sca/runtime/RuntimeComponentReference.java | 38 + .../sca/runtime/RuntimeComponentService.java | 33 + .../tuscany/sca/runtime/RuntimeEndpoint.java | 75 + .../sca/runtime/RuntimeEndpointReference.java | 72 + .../tuscany/sca/runtime/RuntimeProperties.java | 31 + .../tuscany/sca/runtime/RuntimeWireProcessor.java | 39 + .../RuntimeWireProcessorExtensionPoint.java | 53 + .../org/apache/tuscany/sca/runtime/Version.java | 47 + .../tuscany/sca/work/NotificationListener.java | 67 + .../org/apache/tuscany/sca/work/WorkScheduler.java | 54 + .../tuscany/sca/work/WorkSchedulerException.java | 59 + ...uscany.sca.context.ContextFactoryExtensionPoint | 19 + ...cany.sca.provider.ProviderFactoryExtensionPoint | 19 + ...sca.runtime.DomainRegistryFactoryExtensionPoint | 17 + ....sca.runtime.RuntimeWireProcessorExtensionPoint | 19 + .../apache/tuscany/sca/runtime/revision.properties | 30 + ...efaultContextFactoryExtensionPointTestCase.java | 207 +++ .../tuscany/sca/runtime/ConfigURITestCase.java | 107 ++ .../tuscany/sca/runtime/VersionTestCase.java | 36 + .../sebastien/java/dynamic/modules/core/LICENSE | 205 +++ .../java/dynamic/modules/core/META-INF/MANIFEST.MF | 66 + sandbox/sebastien/java/dynamic/modules/core/NOTICE | 6 + .../sebastien/java/dynamic/modules/core/pom.xml | 89 ++ .../sca/core/assembly/RuntimeAssemblyFactory.java | 75 + .../core/assembly/impl/CompositeActivatorImpl.java | 607 ++++++++ .../core/assembly/impl/EndpointRegistryImpl.java | 119 ++ .../core/assembly/impl/EndpointSerializerImpl.java | 106 ++ .../assembly/impl/LocalDomainRegistryFactory.java | 49 + .../assembly/impl/ReferenceParameterProcessor.java | 98 ++ .../assembly/impl/ReferenceParametersImpl.java | 121 ++ .../core/assembly/impl/RuntimeComponentImpl.java | 111 ++ .../impl/RuntimeComponentReferenceImpl.java | 66 + .../assembly/impl/RuntimeComponentServiceImpl.java | 40 + .../core/assembly/impl/RuntimeEndpointImpl.java | 820 ++++++++++ .../impl/RuntimeEndpointReferenceImpl.java | 617 ++++++++ .../context/DefaultComponentContextFactory.java | 43 + .../core/context/DefaultRequestContextFactory.java | 40 + .../sca/core/context/ServiceReferenceExt.java | 41 + .../context/impl/CallbackServiceReferenceImpl.java | 124 ++ .../core/context/impl/ComponentContextImpl.java | 494 ++++++ .../sca/core/context/impl/RequestContextImpl.java | 123 ++ .../core/context/impl/ServiceReferenceImpl.java | 424 ++++++ .../tuscany/sca/core/factory/InstanceWrapper.java | 49 + .../sca/core/factory/ObjectCreationException.java | 48 + .../tuscany/sca/core/factory/ObjectFactory.java | 36 + .../sca/core/invocation/AsyncFaultWrapper.java | 102 ++ .../core/invocation/AsyncResponseException.java | 47 + .../sca/core/invocation/AsyncResponseHandler.java | 49 + .../invocation/CallableReferenceObjectFactory.java | 58 + .../invocation/CallbackInterfaceInterceptor.java | 60 + .../invocation/CallbackReferenceObjectFactory.java | 50 + .../core/invocation/CallbackWireObjectFactory.java | 48 + .../sca/core/invocation/CglibProxyFactory.java | 152 ++ .../DefaultProxyFactoryExtensionPoint.java | 95 ++ .../core/invocation/ExtensibleProxyFactory.java | 125 ++ .../core/invocation/ExtensibleWireProcessor.java | 51 + .../core/invocation/NonBlockingInterceptor.java | 185 +++ .../core/invocation/ProxyCreationException.java | 48 + .../tuscany/sca/core/invocation/ProxyFactory.java | 88 ++ .../invocation/ProxyFactoryExtensionPoint.java | 54 + .../sca/core/invocation/RuntimeInvoker.java | 97 ++ .../sca/core/invocation/WireObjectFactory.java | 56 + .../invocation/impl/AsyncInvocationFutureImpl.java | 239 +++ .../invocation/impl/AsyncJDKInvocationHandler.java | 556 +++++++ .../sca/core/invocation/impl/AsyncResponse.java | 68 + .../invocation/impl/AsyncResponseHandlerImpl.java | 193 +++ .../core/invocation/impl/InvocationChainImpl.java | 208 +++ .../impl/JDKCallbackInvocationHandler.java | 77 + .../core/invocation/impl/JDKInvocationHandler.java | 311 ++++ .../sca/core/invocation/impl/JDKProxyFactory.java | 202 +++ .../core/invocation/impl/MessageFactoryImpl.java | 36 + .../sca/core/invocation/impl/MessageImpl.java | 114 ++ .../impl/NoMethodForOperationException.java | 45 + .../sca/core/invocation/impl/PhaseManager.java | 313 ++++ .../sca/core/invocation/impl/PhaseSorter.java | 236 +++ .../runtime/impl/EndpointReferenceBinderImpl.java | 807 ++++++++++ .../core/runtime/impl/RuntimePropertiesImpl.java | 38 + .../sca/core/scope/AbstractScopeContainer.java | 196 +++ .../sca/core/scope/DefaultScopeRegistry.java | 40 + .../org/apache/tuscany/sca/core/scope/Scope.java | 63 + .../tuscany/sca/core/scope/ScopeContainer.java | 160 ++ .../sca/core/scope/ScopeContainerFactory.java | 32 + .../tuscany/sca/core/scope/ScopeRegistry.java | 43 + .../core/scope/ScopedImplementationProvider.java | 56 + .../sca/core/scope/ScopedRuntimeComponent.java | 41 + .../sca/core/scope/TargetDestructionException.java | 45 + .../core/scope/TargetInitializationException.java | 45 + .../sca/core/scope/TargetNotFoundException.java | 44 + .../sca/core/scope/TargetResolutionException.java | 45 + .../core/scope/impl/CompositeScopeContainer.java | 87 ++ .../scope/impl/CompositeScopeContainerFactory.java | 40 + .../sca/core/scope/impl/ScopeRegistryImpl.java | 70 + .../core/scope/impl/StatelessScopeContainer.java | 61 + .../scope/impl/StatelessScopeContainerFactory.java | 40 + .../sca/core/work/impl/DefaultWorkScheduler.java | 204 +++ .../sca/core/work/impl/ThreadPoolWorkManager.java | 228 +++ .../apache/tuscany/sca/core/work/impl/Work.java | 65 + .../tuscany/sca/core/work/impl/WorkEvent.java | 80 + .../tuscany/sca/core/work/impl/WorkItem.java | 167 ++ .../tuscany/sca/core/work/impl/WorkListener.java | 32 + ...org.apache.tuscany.sca.assembly.AssemblyFactory | 18 + ...che.tuscany.sca.context.ComponentContextFactory | 17 + ...pache.tuscany.sca.context.RequestContextFactory | 17 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + ....sca.core.invocation.ProxyFactoryExtensionPoint | 19 + ...org.apache.tuscany.sca.core.scope.ScopeRegistry | 19 + ...rg.apache.tuscany.sca.invocation.MessageFactory | 19 + ...g.apache.tuscany.sca.runtime.CompositeActivator | 19 + ...pache.tuscany.sca.runtime.DomainRegistryFactory | 17 + ...che.tuscany.sca.runtime.EndpointReferenceBinder | 18 + ...g.apache.tuscany.sca.runtime.EndpointSerializer | 17 + ...rg.apache.tuscany.sca.runtime.RuntimeProperties | 18 + .../org.apache.tuscany.sca.work.WorkScheduler | 17 + .../endpoint-validation-messages.properties | 23 + .../impl/InvocationChainImplTestCase.java | 93 ++ .../core/invocation/impl/PhaseManagerTestCase.java | 50 + .../core/invocation/impl/PhaseSorterTestCase.java | 67 + .../tuscany/sca/core/work/impl/FailingWork.java | 54 + .../core/work/impl/JSR237MyFailingRunnable.java | 43 + .../sca/core/work/impl/JSR237MyRunnable.java | 71 + .../sca/core/work/impl/JSR237MyRunnerListener.java | 154 ++ .../work/impl/Jsr237WorkSchedulerTestCase.java | 240 +++ .../sca/core/work/impl/TestWorkListener.java | 153 ++ .../work/impl/ThreadPoolWorkManagerTestCase.java | 227 +++ .../tuscany/sca/core/work/impl/TimeDelayWork.java | 86 ++ .../apache/tuscany/sca/scope/ScopeTestCase.java | 66 + .../org.apache.tuscany.sca.invocation.PhaseTest | 24 + .../java/dynamic/modules/data-api/LICENSE | 205 +++ .../dynamic/modules/data-api/META-INF/MANIFEST.MF | 14 + .../sebastien/java/dynamic/modules/data-api/NOTICE | 6 + .../java/dynamic/modules/data-api/pom.xml | 38 + .../tuscany/sca/data/collection/Collection.java | 79 + .../apache/tuscany/sca/data/collection/Entry.java | 86 ++ .../apache/tuscany/sca/data/collection/Item.java | 159 ++ .../sca/data/collection/ItemCollection.java | 30 + .../sca/data/collection/LocalItemCollection.java | 28 + .../sca/data/collection/NotFoundException.java | 45 + .../java/dynamic/modules/databinding-axiom/LICENSE | 205 +++ .../modules/databinding-axiom/META-INF/MANIFEST.MF | 29 + .../java/dynamic/modules/databinding-axiom/NOTICE | 6 + .../java/dynamic/modules/databinding-axiom/pom.xml | 112 ++ .../sca/databinding/axiom/AxiomDataBinding.java | 66 + .../tuscany/sca/databinding/axiom/AxiomHelper.java | 142 ++ .../sca/databinding/axiom/Exception2OMElement.java | 95 ++ .../axiom/Externalizable2OMElement.java | 77 + .../sca/databinding/axiom/OMElement2Exception.java | 79 + .../axiom/OMElement2Externalizable.java | 69 + .../sca/databinding/axiom/OMElement2Object.java | 50 + .../sca/databinding/axiom/OMElement2String.java | 64 + .../axiom/OMElement2XMLStreamReader.java | 66 + .../databinding/axiom/OMElementWrapperHandler.java | 251 +++ .../sca/databinding/axiom/Object2OMElement.java | 63 + .../sca/databinding/axiom/String2OMElement.java | 64 + .../axiom/XMLStreamReader2OMElement.java | 70 + .../org.apache.tuscany.sca.databinding.DataBinding | 21 + ....apache.tuscany.sca.databinding.PullTransformer | 31 + .../sca/databinding/axiom/OMElementTestCase.java | 129 ++ .../databinding-axiom/src/test/resources/ipo.xml | 51 + .../databinding-axiom/src/test/resources/ipo.xsd | 137 ++ .../src/test/resources/order.wsdl | 76 + .../dynamic/modules/databinding-jaxb-axiom/LICENSE | 205 +++ .../databinding-jaxb-axiom/META-INF/MANIFEST.MF | 38 + .../dynamic/modules/databinding-jaxb-axiom/NOTICE | 6 + .../dynamic/modules/databinding-jaxb-axiom/pom.xml | 175 +++ .../sca/databinding/jaxb/axiom/AxiomHelper.java | 140 ++ .../sca/databinding/jaxb/axiom/JAXB2OMElement.java | 84 ++ .../sca/databinding/jaxb/axiom/JAXBDataSource.java | 128 ++ .../sca/databinding/jaxb/axiom/OMElement2JAXB.java | 106 ++ .../jaxb/axiom/ext/JAXBCustomBuilder.java | 114 ++ .../databinding/jaxb/axiom/ext/JAXBDSContext.java | 191 +++ .../jaxb/axiom/ext/JAXBDataSourceExt.java | 144 ++ .../jaxb/axiom/ext/SourceDataSource.java | 123 ++ .../jaxb/axiom/ext/XMLStreamWriterWithOS.java | 246 +++ .../jaxb/axiom/ext/XMLStringDataSource.java | 84 ++ ....apache.tuscany.sca.databinding.PullTransformer | 27 + .../databinding/jaxb/axiom/JAXB2OMTestCase.java | 113 ++ .../jaxb/axiom/OMElement2JAXBTestCase.java | 72 + .../src/test/resources/ipo.xsd | 136 ++ .../java/dynamic/modules/databinding-jaxb/LICENSE | 205 +++ .../modules/databinding-jaxb/META-INF/MANIFEST.MF | 53 + .../java/dynamic/modules/databinding-jaxb/NOTICE | 6 + .../java/dynamic/modules/databinding-jaxb/pom.xml | 175 +++ .../sca/databinding/jaxb/AnyTypeXmlAdapter.java | 39 + .../sca/databinding/jaxb/DOMElementXmlAdapter.java | 57 + .../sca/databinding/jaxb/DataConverter.java | 378 +++++ .../jaxb/DefaultXMLAdapterExtensionPoint.java | 60 + .../tuscany/sca/databinding/jaxb/JAXB2Node.java | 85 ++ .../tuscany/sca/databinding/jaxb/JAXB2SAX.java | 77 + .../tuscany/sca/databinding/jaxb/JAXB2String.java | 82 + .../sca/databinding/jaxb/JAXBContextCache.java | 561 +++++++ .../sca/databinding/jaxb/JAXBContextHelper.java | 492 ++++++ .../sca/databinding/jaxb/JAXBDataBinding.java | 148 ++ .../databinding/jaxb/JAXBPropertyDescriptor.java | 302 ++++ .../sca/databinding/jaxb/JAXBTypeHelper.java | 244 +++ .../sca/databinding/jaxb/JAXBWrapperException.java | 56 + .../sca/databinding/jaxb/JAXBWrapperHandler.java | 151 ++ .../sca/databinding/jaxb/JAXBWrapperHelper.java | 166 ++ .../tuscany/sca/databinding/jaxb/Node2JAXB.java | 75 + .../tuscany/sca/databinding/jaxb/Reader2JAXB.java | 79 + .../tuscany/sca/databinding/jaxb/String2JAXB.java | 86 ++ .../databinding/jaxb/XMLAdapterExtensionPoint.java | 52 + .../sca/databinding/jaxb/XMLRootElementUtil.java | 299 ++++ .../sca/databinding/jaxb/XMLStreamReader2JAXB.java | 80 + .../tuscany/sca/databinding/jaxb/package.html | 29 + .../org.apache.tuscany.sca.databinding.DataBinding | 20 + ....apache.tuscany.sca.databinding.PullTransformer | 33 + ...y.sca.databinding.jaxb.XMLAdapterExtensionPoint | 17 + .../java/com/example/stock/StockQuoteOffer.java | 45 + .../databinding/jaxb/JAXBContextCacheTestCase.java | 122 ++ .../databinding/jaxb/JAXBDataBindingTestCase.java | 131 ++ .../databinding/jaxb/JAXBReflectionTestCase.java | 39 + .../tuscany/sca/databinding/jaxb/JAXBTestCase.java | 148 ++ .../jaxb/JAXBWrapperHandlerTestCase.java | 90 ++ .../tuscany/sca/databinding/jaxb/MyBean.java | 162 ++ .../tuscany/sca/databinding/jaxb/MyInterface.java | 29 + .../sca/databinding/jaxb/MyInterfaceImpl.java | 67 + .../tuscany/sca/databinding/jaxb/MyJaxbBean.java | 64 + .../tuscany/sca/databinding/jaxb/MySubBean.java | 35 + .../tuscany/sca/databinding/jaxb/POJOTestCase.java | 238 +++ .../databinding-jaxb/src/test/resources/ipo.xsd | 144 ++ .../java/dynamic/modules/databinding-json/LICENSE | 202 +++ .../modules/databinding-json/META-INF/MANIFEST.MF | 37 + .../java/dynamic/modules/databinding-json/NOTICE | 6 + .../java/dynamic/modules/databinding-json/pom.xml | 140 ++ .../sca/databinding/json/JSON2JavaBean.java | 72 + .../tuscany/sca/databinding/json/JSON2String.java | 61 + .../sca/databinding/json/JSON2XMLStreamReader.java | 65 + .../sca/databinding/json/JSONDataBinding.java | 78 + .../tuscany/sca/databinding/json/JSONHelper.java | 106 ++ .../sca/databinding/json/JavaBean2JSON.java | 81 + .../sca/databinding/json/JavaBean2JSONObject.java | 142 ++ .../tuscany/sca/databinding/json/String2JSON.java | 64 + .../sca/databinding/json/XMLStreamReader2JSON.java | 83 + .../sca/databinding/json/axiom/JSON2OMElement.java | 94 ++ .../json/axiom/JSONBadgerfishDataSource.java | 57 + .../sca/databinding/json/axiom/JSONDataSource.java | 176 +++ .../databinding/json/jackson/InputStream2JSON.java | 49 + .../sca/databinding/json/jackson/JSON2Object.java | 76 + .../json/jackson/JSON2OutputStream.java | 65 + .../databinding/json/jackson/JacksonHelper.java | 128 ++ .../sca/databinding/json/jackson/Object2JSON.java | 83 + .../org.apache.tuscany.sca.databinding.DataBinding | 20 + ....apache.tuscany.sca.databinding.PullTransformer | 34 + ....apache.tuscany.sca.databinding.PushTransformer | 17 + .../databinding/json/JSONTransformerTestCase.java | 140 ++ .../databinding/json/JavaBean2JSONTestCase.java | 170 +++ .../tuscany/sca/databinding/json/MyBean.java | 158 ++ .../tuscany/sca/databinding/json/MyInterface.java | 29 + .../sca/databinding/json/MyInterfaceImpl.java | 67 + .../tuscany/sca/databinding/json/POJOTestCase.java | 92 ++ .../databinding/json/jackson/JacksonTestCase.java | 95 ++ .../json/jackson/Object2JSONTestCase.java | 169 +++ .../databinding-json/src/test/resources/ipo.xsd | 136 ++ .../dynamic/modules/databinding-sdo-axiom/LICENSE | 205 +++ .../databinding-sdo-axiom/META-INF/MANIFEST.MF | 21 + .../dynamic/modules/databinding-sdo-axiom/NOTICE | 6 + .../dynamic/modules/databinding-sdo-axiom/pom.xml | 148 ++ .../sca/databinding/sdo2om/AxiomHelper.java | 142 ++ .../databinding/sdo2om/DataObject2OMElement.java | 86 ++ .../sca/databinding/sdo2om/SDODataSource.java | 89 ++ .../databinding/sdo2om/XMLDocument2OMElement.java | 65 + ....apache.tuscany.sca.databinding.PullTransformer | 20 + .../sdo2om/DataObject2OMElementTestCase.java | 78 + .../sdo2om/SDOTransformerTestCaseBase.java | 86 ++ .../sdo2om/XMLDocument2OMElementTestCase.java | 63 + .../src/test/resources/ipo.xsd | 136 ++ .../src/test/resources/stock.xsd | 33 + .../java/dynamic/modules/databinding-sdo/LICENSE | 205 +++ .../modules/databinding-sdo/META-INF/MANIFEST.MF | 37 + .../java/dynamic/modules/databinding-sdo/NOTICE | 6 + .../java/dynamic/modules/databinding-sdo/pom.xml | 157 ++ .../sca/databinding/sdo/DataObject2Node.java | 75 + .../sca/databinding/sdo/DataObject2String.java | 64 + .../sdo/DataObject2XMLStreamReader.java | 82 + .../tuscany/sca/databinding/sdo/ImportSDO.java | 79 + .../sca/databinding/sdo/ImportSDOProcessor.java | 215 +++ .../sca/databinding/sdo/Node2DataObject.java | 76 + .../sca/databinding/sdo/SDOContextHelper.java | 258 ++++ .../sca/databinding/sdo/SDODataBinding.java | 150 ++ .../sca/databinding/sdo/SDOSimpleTypeMapper.java | 82 + .../tuscany/sca/databinding/sdo/SDOTypeHelper.java | 253 ++++ .../tuscany/sca/databinding/sdo/SDOTypes.java | 107 ++ .../sca/databinding/sdo/SDOWrapperHandler.java | 192 +++ .../sca/databinding/sdo/String2DataObject.java | 61 + .../sca/databinding/sdo/XMLDocument2String.java | 65 + .../sdo/XMLDocument2XMLStreamReader.java | 69 + .../sdo/XMLStreamReader2DataObject.java | 72 + .../sdo/XMLStreamReader2XMLDocument.java | 66 + .../databinding/sdo/xml/SDOTypesModelResolver.java | 234 +++ .../sca/databinding/sdo/xml/SDOTypesProcessor.java | 109 ++ ...ca.contribution.processor.StAXArtifactProcessor | 19 + ...tuscany.sca.contribution.resolver.ModelResolver | 17 + .../org.apache.tuscany.sca.databinding.DataBinding | 19 + ....apache.tuscany.sca.databinding.PullTransformer | 27 + .../databinding-sdo-validation-messages.properties | 23 + .../sdo/fault/InvalidSymbolFault_Exception.java | 70 + .../databinding/sdo/DataObject2NodeTestCase.java | 61 + .../databinding/sdo/DataObject2StringTestCase.java | 65 + .../sdo/DataObject2XMLStreamReaderTestCase.java | 76 + .../sdo/ImportSDOProcessorTestCase.java | 103 ++ .../databinding/sdo/SDOContextHelperTestCase.java | 55 + .../databinding/sdo/SDODataBindingTestCase.java | 115 ++ .../sdo/SDOTransformerTestCaseBase.java | 84 ++ .../databinding/sdo/SDOWrapperHandlerTestCase.java | 85 ++ .../sca/databinding/sdo/TestModelResolver.java | 64 + .../sdo/XMLDocument2XMLStreamReaderTestCase.java | 64 + .../databinding-sdo/src/test/resources/ipo.xsd | 136 ++ .../databinding-sdo/src/test/resources/stock.xsd | 33 + .../databinding-sdo/src/test/resources/wrapper.xml | 27 + .../databinding-sdo/src/test/resources/wrapper.xsd | 38 + .../java/dynamic/modules/databinding/LICENSE | 244 +++ .../modules/databinding/META-INF/MANIFEST.MF | 71 + .../java/dynamic/modules/databinding/NOTICE | 6 + .../java/dynamic/modules/databinding/pom.xml | 97 ++ .../tuscany/sca/databinding/BaseDataBinding.java | 108 ++ .../tuscany/sca/databinding/BaseTransformer.java | 52 + .../tuscany/sca/databinding/DataBinding.java | 94 ++ .../sca/databinding/DataBindingContext.java | 95 ++ .../sca/databinding/DataBindingExtensionPoint.java | 75 + .../apache/tuscany/sca/databinding/DataPipe.java | 46 + .../sca/databinding/DataPipeTransformer.java | 29 + .../DefaultDataBindingExtensionPoint.java | 261 ++++ .../DefaultTransformerExtensionPoint.java | 321 ++++ .../apache/tuscany/sca/databinding/Mediator.java | 204 +++ .../tuscany/sca/databinding/PullTransformer.java | 39 + .../tuscany/sca/databinding/PushTransformer.java | 36 + .../tuscany/sca/databinding/SimpleTypeMapper.java | 70 + .../sca/databinding/TransformationContext.java | 89 ++ .../sca/databinding/TransformationException.java | 66 + .../tuscany/sca/databinding/Transformer.java | 51 + .../sca/databinding/TransformerExtensionPoint.java | 81 + .../tuscany/sca/databinding/WrapperHandler.java | 79 + .../tuscany/sca/databinding/XMLTypeHelper.java | 69 + .../sca/databinding/annotation/DataBinding.java | 56 + .../sca/databinding/annotation/DataType.java | 43 + .../externalizable/ExternalizableDataBinding.java | 39 + .../sca/databinding/impl/DirectedGraph.java | 469 ++++++ .../databinding/impl/Group2GroupTransformer.java | 91 ++ .../sca/databinding/impl/GroupDataBinding.java | 104 ++ .../impl/Java2SimpleTypeTransformer.java | 72 + .../tuscany/sca/databinding/impl/MediatorImpl.java | 629 ++++++++ .../sca/databinding/impl/PipedTransformer.java | 70 + .../impl/SimpleType2JavaTransformer.java | 91 ++ .../sca/databinding/impl/SimpleTypeMapperImpl.java | 402 +++++ .../impl/TransformationContextImpl.java | 102 ++ .../sca/databinding/impl/XSDDataTypeConverter.java | 951 ++++++++++++ .../javabeans/DOMNode2JavaBeanTransformer.java | 98 ++ .../javabeans/Java2XMLMapperException.java | 69 + .../javabeans/JavaBean2DOMNodeTransformer.java | 76 + .../JavaBean2XMLStreamReaderTransformer.java | 68 + .../javabeans/JavaBean2XMLTransformer.java | 262 ++++ .../javabeans/JavaBeansDataBinding.java | 166 ++ .../javabeans/JavaExceptionDataBinding.java | 35 + .../javabeans/SimpleJavaDataBinding.java | 89 ++ .../javabeans/XML2JavaBeanTransformer.java | 329 ++++ .../javabeans/XML2JavaMapperException.java | 76 + .../sca/databinding/util/DataTypeHelper.java | 165 ++ .../databinding/xml/BeanXMLStreamReaderImpl.java | 300 ++++ .../sca/databinding/xml/DOMDataBinding.java | 131 ++ .../sca/databinding/xml/DOMWrapperHandler.java | 138 ++ .../sca/databinding/xml/InputSource2Node.java | 74 + .../sca/databinding/xml/InputSource2SAX.java | 65 + .../sca/databinding/xml/InputStream2Node.java | 76 + .../sca/databinding/xml/InputStream2SAX.java | 64 + .../sca/databinding/xml/Node2OutputStream.java | 75 + .../sca/databinding/xml/Node2SimpleJavaType.java | 45 + .../databinding/xml/Node2SourceTransformer.java | 61 + .../tuscany/sca/databinding/xml/Node2String.java | 68 + .../tuscany/sca/databinding/xml/Node2Writer.java | 74 + .../sca/databinding/xml/Node2XMLStreamReader.java | 65 + .../tuscany/sca/databinding/xml/Reader2Node.java | 73 + .../tuscany/sca/databinding/xml/Reader2SAX.java | 60 + .../tuscany/sca/databinding/xml/SAX2DOMPipe.java | 78 + .../sca/databinding/xml/SimpleJavaType2Node.java | 66 + .../databinding/xml/Source2NodeTransformer.java | 70 + .../databinding/xml/Source2ResultTransformer.java | 71 + .../databinding/xml/Source2StringTransformer.java | 76 + .../sca/databinding/xml/StAXDataBinding.java | 53 + .../sca/databinding/xml/StreamDataPipe.java | 65 + .../tuscany/sca/databinding/xml/String2Node.java | 60 + .../tuscany/sca/databinding/xml/String2SAX.java | 61 + .../databinding/xml/String2SourceTransformer.java | 62 + .../databinding/xml/String2XMLStreamReader.java | 62 + .../sca/databinding/xml/Writer2ReaderDataPipe.java | 63 + .../sca/databinding/xml/XMLGroupDataBinding.java | 57 + .../sca/databinding/xml/XMLStreamReader2Node.java | 81 + .../sca/databinding/xml/XMLStreamReader2SAX.java | 77 + .../databinding/xml/XMLStreamReader2String.java | 64 + .../sca/databinding/xml/XMLStringDataBinding.java | 51 + .../org.apache.tuscany.sca.databinding.DataBinding | 26 + ...scany.sca.databinding.DataBindingExtensionPoint | 19 + .../org.apache.tuscany.sca.databinding.Mediator | 17 + ....apache.tuscany.sca.databinding.PullTransformer | 41 + ....apache.tuscany.sca.databinding.PushTransformer | 27 + ...apache.tuscany.sca.databinding.SimpleTypeMapper | 17 + ...scany.sca.databinding.TransformerExtensionPoint | 19 + .../extension/DataBindingExtensionTestCase.java | 83 + .../SimpleTypeMapperExtensionTestCase.java.fixme | 124 ++ .../TransformerExtensionTestCase.java.fixme | 77 + .../extension/XSDDataTypeConverterTestCase.java | 58 + .../sca/databinding/impl/DataBindingTestCase.java | 48 + .../databinding/impl/DirectedGraphTestCase.java | 127 ++ .../sca/databinding/impl/MediatorImplTestCase.java | 125 ++ .../impl/XMLDocumentStreamReaderTestCase.java | 60 + .../xml/BeanXMLStreamReaderTestCase.java | 188 +++ .../sca/databinding/xml/DOM2StAXTestCase.java | 116 ++ .../sca/databinding/xml/DataPipeTestCase.java | 98 ++ .../xml/JavaBean2XMLStreamReaderTestCase.java | 137 ++ .../sca/databinding/xml/Node2StringTestCase.java | 43 + .../xml/PushTransformationTestCase.java | 81 + .../databinding/xml/TraxTransformerTestCase.java | 102 ++ .../apache/tuscany/sca/databinding/impl/ipo.xsd | 136 ++ .../apache/tuscany/sca/databinding/impl/order.wsdl | 76 + .../org/apache/tuscany/sca/databinding/xml/foo.xml | 22 + .../java/dynamic/modules/deployment/LICENSE | 205 +++ .../modules/deployment/META-INF/MANIFEST.MF | 51 + .../java/dynamic/modules/deployment/NOTICE | 6 + .../java/dynamic/modules/deployment/pom.xml | 83 + .../tuscany/sca/deployment/DefaultDeployer.java | 42 + .../apache/tuscany/sca/deployment/Deployer.java | 207 +++ .../tuscany/sca/deployment/impl/Contributions.java | 160 ++ .../tuscany/sca/deployment/impl/DeployerImpl.java | 721 +++++++++ .../org.apache.tuscany.sca.deployment.Deployer | 18 + .../deployer-impl-validation-messages.properties | 22 + .../src/test/java/hello/deployer/HelloWorld.java | 30 + .../test/java/hello/deployer/HelloWorldImpl.java | 30 + .../sca/deployment/impl/DeployerImplTestCase.java | 135 ++ .../test/resources/META-INF/sca-contribution.xml | 24 + .../sca/deployment/impl/HelloWorld.composite | 29 + .../java/dynamic/modules/domain-node/LICENSE | 205 +++ .../modules/domain-node/META-INF/MANIFEST.MF | 21 + .../java/dynamic/modules/domain-node/NOTICE | 6 + .../java/dynamic/modules/domain-node/pom.xml | 61 + .../apache/tuscany/sca/domain/node/DomainNode.java | 179 +++ .../tuscany/sca/domain/node/DomainNodeMain.java | 67 + .../java/org/apache/tuscany/sca/node2/Node.java | 259 ++++ .../org/apache/tuscany/sca/node2/NodeFactory.java | 166 ++ .../tuscany/sca/node2/impl/DeployedComposite.java | 140 ++ .../sca/node2/impl/InstalledContribution.java | 65 + .../apache/tuscany/sca/node2/impl/NodeImpl.java | 335 +++++ .../src/test/java/itest/nodes/Helloworld.java | 29 + .../sca/domain/node/GetServiceTestCase.java | 84 ++ .../domain/node/MultipleNodesPerJVMTestCase.java | 87 ++ .../tuscany/sca/domain/node/OneNodeTestCase.java | 105 ++ .../sca/domain/node/StopStartNodesTestCase.java | 82 + .../apache/tuscany/sca/node2/DeployerTestCase.java | 77 + .../org/apache/tuscany/sca/node2/NodeTestCase.java | 143 ++ .../src/test/java/sample/Helloworld.java | 24 + .../src/test/resources/helloworld2.composite | 29 + .../itest-nodes-helloworld-client-2.0-SNAPSHOT.jar | Bin 0 -> 4708 bytes ...itest-nodes-helloworld-service-2.0-SNAPSHOT.jar | Bin 0 -> 4515 bytes .../resources/sample-helloworld-nodeployable.jar | Bin 0 -> 4761 bytes .../src/test/resources/sample-helloworld.jar | Bin 0 -> 4753 bytes .../test/resources/sca-contribution-generated.xml | 23 + .../endpoint-hazelcast-client/META-INF/MANIFEST.MF | 18 + .../modules/endpoint-hazelcast-client/pom.xml | 45 + .../HazelcastClientDomainRegistryFactory.java | 49 + .../client/HazelcastClientEndpointRegistry.java | 120 ++ ...pache.tuscany.sca.runtime.DomainRegistryFactory | 17 + .../endpoint-hazelcast/META-INF/MANIFEST.MF | 19 + .../dynamic/modules/endpoint-hazelcast/pom.xml | 63 + .../hazelcast/HazelcastDomainRegistryFactory.java | 49 + .../hazelcast/HazelcastEndpointRegistry.java | 370 +++++ .../sca/endpoint/hazelcast/RegistryConfig.java | 179 +++ ...pache.tuscany.sca.runtime.DomainRegistryFactory | 17 + .../sca/endpoint/hazelcast/MultiRegTestCase.java | 163 ++ .../sca/endpoint/hazelcast/RegistryTestCase.java | 142 ++ .../modules/endpoint-tribes/META-INF/MANIFEST.MF | 28 + .../java/dynamic/modules/endpoint-tribes/pom.xml | 65 + .../sca/endpoint/tribes/AbstractReplicatedMap.java | 1564 +++++++++++++++++++ .../endpoint/tribes/DisableMcastInterceptor.java | 41 + .../tuscany/sca/endpoint/tribes/MapStore.java | 83 + .../tribes/ReplicatedEndpointRegistry.java | 420 ++++++ .../tuscany/sca/endpoint/tribes/ReplicatedMap.java | 163 ++ .../tribes/TribesDomainRegistryFactory.java | 49 + ...pache.tuscany.sca.runtime.DomainRegistryFactory | 17 + .../sca/endpoint/tribes/MultiRegTestCase.java | 168 +++ .../tribes/ReplicatedEndpointRegistryTestCase.java | 83 + .../dynamic/modules/extensibility-equinox/LICENSE | 205 +++ .../extensibility-equinox/META-INF/MANIFEST.MF | 30 + .../dynamic/modules/extensibility-equinox/NOTICE | 5 + .../dynamic/modules/extensibility-equinox/pom.xml | 66 + .../equinox/EquinoxServiceDiscoverer.java | 326 ++++ .../equinox/EquinoxServiceDiscoveryActivator.java | 49 + .../equinox/OSGiExtensionPointRegistry.java | 106 ++ .../extensibility/equinox/EquinoxHostTestCase.java | 95 ++ .../equinox/EquinoxServiceDiscovererTestCase.java | 132 ++ .../sca/extensibility/equinox/TestEquinoxHost.java | 77 + .../src/test/resources/test-bundle-v1.jar | Bin 0 -> 2801 bytes .../src/test/resources/test-bundle-v2.jar | Bin 0 -> 2805 bytes .../java/dynamic/modules/extensibility/LICENSE | 205 +++ .../modules/extensibility/META-INF/MANIFEST.MF | 18 + .../java/dynamic/modules/extensibility/NOTICE | 10 + .../java/dynamic/modules/extensibility/pom.xml | 31 + .../sca/core/DefaultExtensionPointRegistry.java | 193 +++ .../sca/core/DefaultFactoryExtensionPoint.java | 162 ++ .../core/DefaultModuleActivatorExtensionPoint.java | 154 ++ .../sca/core/DefaultUtilityExtensionPoint.java | 219 +++ .../tuscany/sca/core/ExtensionPointRegistry.java | 66 + .../tuscany/sca/core/FactoryExtensionPoint.java | 55 + .../apache/tuscany/sca/core/LifeCycleListener.java | 37 + .../apache/tuscany/sca/core/ModuleActivator.java | 72 + .../sca/core/ModuleActivatorExtensionPoint.java | 53 + .../tuscany/sca/core/UtilityExtensionPoint.java | 74 + .../sca/extensibility/ClassLoaderContext.java | 213 +++ .../ContextClassLoaderServiceDiscoverer.java | 179 +++ .../sca/extensibility/ServiceDeclaration.java | 82 + .../extensibility/ServiceDeclarationParser.java | 375 +++++ .../sca/extensibility/ServiceDiscoverer.java | 54 + .../sca/extensibility/ServiceDiscovery.java | 288 ++++ .../tuscany/sca/extensibility/ServiceHelper.java | 226 +++ .../extensibility/impl/ClassLoaderDelegate.java | 89 ++ .../extensibility/impl/InvalidSyntaxException.java | 86 ++ .../tuscany/sca/extensibility/impl/LDAPFilter.java | 1373 +++++++++++++++++ ...g.apache.tuscany.sca.core.FactoryExtensionPoint | 19 + ....tuscany.sca.core.ModuleActivatorExtensionPoint | 19 + ...g.apache.tuscany.sca.core.UtilityExtensionPoint | 19 + ...ontextClassLoaderServiceDiscovererTestCase.java | 81 + .../DefaultExtensionPointRegistryTestCase.java | 58 + .../DefaultUtilityExtensionPointTestCase.java | 118 ++ .../extensibility/ServiceDiscoveryTestCase.java | 101 ++ .../sca/extensibility/ServiceHelperTestCase.java | 79 + .../tuscany/sca/extensibility/test/DummyImpl.java | 31 + .../tuscany/sca/extensibility/test/Test2Impl.java | 103 ++ .../tuscany/sca/extensibility/test/TestImpl.java | 42 + .../sca/extensibility/test/TestInterface.java | 30 + ...he.tuscany.sca.extensibility.test.TestInterface | 19 + .../java/dynamic/modules/host-corba-jee/LICENSE | 205 +++ .../modules/host-corba-jee/META-INF/MANIFEST.MF | 23 + .../java/dynamic/modules/host-corba-jee/NOTICE | 6 + .../java/dynamic/modules/host-corba-jee/pom.xml | 44 + .../tuscany/sca/host/corba/jee/JEECorbaHost.java | 164 ++ .../org.apache.tuscany.sca.host.corba.CorbaHost | 17 + .../corba/jee/testing/JEECorbaHostTestCase.java | 208 +++ .../sca/host/corba/jee/testing/TestContext.java | 174 +++ .../jee/testing/TestInitialContextFactory.java | 37 + .../corba/jee/testing/general/TestInterface.java | 29 + .../jee/testing/general/TestInterfaceHelper.java | 99 ++ .../jee/testing/general/TestInterfaceHolder.java | 50 + .../testing/general/TestInterfaceOperations.java | 30 + .../testing/general/_TestInterfaceImplBase.java | 73 + .../jee/testing/general/_TestInterfaceStub.java | 72 + .../jee/testing/servants/TestInterfaceServant.java | 35 + .../host-corba-jee/src/test/resources/general.idl | 45 + .../dynamic/modules/host-corba-jse-tns/LICENSE | 205 +++ .../host-corba-jse-tns/META-INF/MANIFEST.MF | 21 + .../java/dynamic/modules/host-corba-jse-tns/NOTICE | 6 + .../dynamic/modules/host-corba-jse-tns/pom.xml | 53 + .../host/corba/jse/tns/TnsDefaultCorbaHost.java | 120 ++ .../org.apache.tuscany.sca.host.corba.CorbaHost | 17 + .../corba/testing/TnsDefaultCorbaHostTestCase.java | 99 ++ .../java/dynamic/modules/host-corba-jse/LICENSE | 205 +++ .../modules/host-corba-jse/META-INF/MANIFEST.MF | 32 + .../java/dynamic/modules/host-corba-jse/NOTICE | 6 + .../java/dynamic/modules/host-corba-jse/pom.xml | 38 + .../sca/host/corba/jse/DefaultCorbaHost.java | 185 +++ .../sca/host/corba/naming/NamingContextBase.java | 863 +++++++++++ .../sca/host/corba/naming/TransientNameServer.java | 134 ++ .../host/corba/naming/TransientNameService.java | 200 +++ .../host/corba/naming/TransientNamingContext.java | 440 ++++++ .../corba/naming/TransientServiceException.java | 44 + .../org.apache.tuscany.sca.host.corba.CorbaHost | 17 + .../corba/testing/DefaultCorbaHostTestCase.java | 253 ++++ .../host/corba/testing/general/TestInterface.java | 29 + .../corba/testing/general/TestInterfaceHelper.java | 97 ++ .../corba/testing/general/TestInterfaceHolder.java | 50 + .../testing/general/TestInterfaceOperations.java | 30 + .../testing/general/_TestInterfaceImplBase.java | 73 + .../corba/testing/general/_TestInterfaceStub.java | 72 + .../testing/servants/TestInterfaceServant.java | 35 + .../host-corba-jse/src/test/resources/general.idl | 43 + .../java/dynamic/modules/host-corba/LICENSE | 205 +++ .../modules/host-corba/META-INF/MANIFEST.MF | 17 + .../java/dynamic/modules/host-corba/NOTICE | 6 + .../java/dynamic/modules/host-corba/pom.xml | 38 + .../apache/tuscany/sca/host/corba/CorbaHost.java | 56 + .../tuscany/sca/host/corba/CorbaHostException.java | 47 + .../sca/host/corba/CorbaHostExtensionPoint.java | 51 + .../tuscany/sca/host/corba/CorbaHostUtils.java | 61 + .../tuscany/sca/host/corba/CorbanameURL.java | 202 +++ .../host/corba/DefaultCorbaHostExtensionPoint.java | 80 + .../sca/host/corba/ExtensibleCorbaHost.java | 62 + .../apache/tuscany/sca/host/corba/SocketUtil.java | 226 +++ ....tuscany.sca.host.corba.CorbaHostExtensionPoint | 18 + .../tuscany/sca/host/corba/UtilsTestCase.java | 145 ++ .../java/dynamic/modules/host-http/LICENSE | 205 +++ .../dynamic/modules/host-http/META-INF/MANIFEST.MF | 19 + .../java/dynamic/modules/host-http/NOTICE | 6 + .../java/dynamic/modules/host-http/pom.xml | 46 + .../sca/host/http/DefaultResourceServlet.java | 86 ++ .../http/DefaultServletHostExtensionPoint.java | 194 +++ .../sca/host/http/ExtensibleServletHost.java | 134 ++ .../tuscany/sca/host/http/SecurityContext.java | 64 + .../apache/tuscany/sca/host/http/ServletHost.java | 140 ++ .../sca/host/http/ServletHostExtensionPoint.java | 62 + .../tuscany/sca/host/http/ServletHostHelper.java | 36 + .../sca/host/http/ServletMappingException.java | 44 + .../apache/tuscany/sca/host/http/UserContext.java | 68 + ...tuscany.sca.host.http.ServletHostExtensionPoint | 19 + .../java/dynamic/modules/host-jetty/LICENSE | 205 +++ .../modules/host-jetty/META-INF/MANIFEST.MF | 27 + .../java/dynamic/modules/host-jetty/NOTICE | 6 + .../java/dynamic/modules/host-jetty/pom.xml | 69 + .../sca/http/jetty/JettyDefaultServlet.java | 90 ++ .../apache/tuscany/sca/http/jetty/JettyLogger.java | 107 ++ .../apache/tuscany/sca/http/jetty/JettyServer.java | 582 +++++++ .../org.apache.tuscany.sca.host.http.ServletHost | 18 + .../sca/http/jetty/JettyServerTestCase.java | 358 +++++ .../src/test/resources/content/test.html | 21 + .../host-jetty/src/test/resources/tuscany.keyStore | Bin 0 -> 1265 bytes .../java/dynamic/modules/host-rmi/LICENSE | 205 +++ .../dynamic/modules/host-rmi/META-INF/MANIFEST.MF | 15 + .../sebastien/java/dynamic/modules/host-rmi/NOTICE | 6 + .../java/dynamic/modules/host-rmi/pom.xml | 39 + .../tuscany/sca/host/rmi/DefaultRMIHost.java | 177 +++ .../sca/host/rmi/DefaultRMIHostExtensionPoint.java | 67 + .../tuscany/sca/host/rmi/ExtensibleRMIHost.java | 62 + .../org/apache/tuscany/sca/host/rmi/RMIHost.java | 61 + .../tuscany/sca/host/rmi/RMIHostException.java | 45 + .../sca/host/rmi/RMIHostExtensionPoint.java | 51 + .../sca/host/rmi/RMIHostRuntimeException.java | 46 + .../tuscany/sca/host/rmi/RMISocketFactoryImpl.java | 57 + ...ache.tuscany.sca.host.rmi.RMIHostExtensionPoint | 19 + .../tuscany/sca/host/rmi/RMIHostImplTestCase.java | 90 ++ .../java/dynamic/modules/host-webapp/LICENSE | 205 +++ .../modules/host-webapp/META-INF/MANIFEST.MF | 23 + .../java/dynamic/modules/host-webapp/NOTICE | 7 + .../java/dynamic/modules/host-webapp/pom.xml | 73 + .../sca/host/webapp/TuscanyContextListener.java | 59 + .../sca/host/webapp/TuscanyServletFilter.java | 109 ++ .../tuscany/sca/host/webapp/WebAppHelper.java | 230 +++ .../sca/host/webapp/WebAppRequestDispatcher.java | 117 ++ .../tuscany/sca/host/webapp/WebAppServletHost.java | 338 +++++ .../org.apache.tuscany.sca.host.http.ServletHost | 18 + .../modules/implementation-bpel-runtime/LICENSE | 251 +++ .../META-INF/MANIFEST.MF | 52 + .../modules/implementation-bpel-runtime/NOTICE | 17 + .../modules/implementation-bpel-runtime/pom.xml | 495 ++++++ .../implementation/bpel/ode/BPELODEDeployFile.java | 233 +++ .../bpel/ode/DeploymentWorkspace.java | 233 +++ .../implementation/bpel/ode/EmbeddedODEServer.java | 563 +++++++ .../implementation/bpel/ode/GeronimoTxFactory.java | 48 + .../implementation/bpel/ode/ODEBindingContext.java | 91 ++ .../sca/implementation/bpel/ode/ODEDeployment.java | 55 + .../bpel/ode/ODEDeploymentException.java | 41 + .../bpel/ode/ODEEndpointReference.java | 96 ++ .../sca/implementation/bpel/ode/ODEEprContext.java | 75 + .../bpel/ode/ODEExternalService.java | 370 +++++ .../bpel/ode/ODEInitializationException.java | 41 + .../bpel/ode/ODEMessageExchangeContext.java | 57 + .../bpel/ode/ODEShutdownException.java | 41 + .../sca/implementation/bpel/ode/TuscanyEPR.java | 49 + .../sca/implementation/bpel/ode/TuscanyPRC.java | 62 + .../bpel/ode/TuscanyProcessConfImpl.java | 823 ++++++++++ .../ode/provider/BPELImplementationProvider.java | 187 +++ .../BPELImplementationProviderFactory.java | 69 + .../bpel/ode/provider/BPELInvoker.java | 286 ++++ .../bpel/ode/provider/ODEInvocationException.java | 33 + ...cany.sca.provider.ImplementationProviderFactory | 20 + .../bpel/ode/EmbeddedODEServerTestCase.java | 124 ++ .../src/test/resources/helloworld/deploy.xml | 30 + .../src/test/resources/helloworld/greetings.wsdl | 87 ++ .../src/test/resources/helloworld/helloworld.bpel | 81 + .../src/test/resources/helloworld/helloworld.wsdl | 82 + .../src/test/resources/log4j.properties | 36 + .../dynamic/modules/implementation-bpel/LICENSE | 251 +++ .../implementation-bpel/META-INF/MANIFEST.MF | 32 + .../dynamic/modules/implementation-bpel/NOTICE | 17 + .../dynamic/modules/implementation-bpel/pom.xml | 64 + .../sca/implementation/bpel/BPELFactory.java | 42 + .../implementation/bpel/BPELImplementation.java | 109 ++ .../implementation/bpel/BPELProcessDefinition.java | 115 ++ .../implementation/bpel/impl/BPELFactoryImpl.java | 44 + .../bpel/impl/BPELImplementationImpl.java | 152 ++ .../bpel/impl/BPELProcessDefinitionImpl.java | 128 ++ .../bpel/xml/BPELDocumentModelResolver.java | 401 +++++ .../bpel/xml/BPELDocumentProcessor.java | 355 +++++ .../bpel/xml/BPELImplementationProcessor.java | 452 ++++++ .../implementation/bpel/xml/BPELImportElement.java | 65 + .../bpel/xml/BPELPartnerLinkElement.java | 132 ++ .../bpel/xml/BPELPartnerLinkTypeElement.java | 118 ++ .../bpel/xml/BPELProcessorConstants.java | 61 + ...ca.contribution.processor.StAXArtifactProcessor | 19 + ...sca.contribution.processor.URLArtifactProcessor | 19 + ...tuscany.sca.contribution.resolver.ModelResolver | 19 + ...che.tuscany.sca.implementation.bpel.BPELFactory | 19 + .../impl-bpel-validation-messages.properties | 34 + .../bpel/BPELDocumentProcessorTestCase.java | 62 + .../bpel/BPELImplementationProcessorTestCase.java | 102 ++ .../src/test/resources/helloworld/helloworld.bpel | 66 + .../src/test/resources/helloworld/helloworld.wsdl | 82 + .../modules/implementation-java-runtime/LICENSE | 205 +++ .../META-INF/MANIFEST.MF | 60 + .../modules/implementation-java-runtime/NOTICE | 6 + .../modules/implementation-java-runtime/pom.xml | 57 + .../java/context/InstanceFactory.java | 43 + .../java/context/InstanceFactoryProvider.java | 49 + .../java/context/ReflectiveInstanceFactory.java | 93 ++ .../java/context/ReflectiveInstanceWrapper.java | 64 + .../databinding/PropertyDataTypeProcessor.java | 80 + .../injection/ArrayMultiplicityObjectFactory.java | 54 + .../java/injection/ContextInjector.java | 32 + .../java/injection/FieldInjector.java | 67 + .../java/injection/InjectionRuntimeException.java | 47 + .../implementation/java/injection/Injector.java | 35 + .../java/injection/InvalidAccessorException.java | 43 + .../injection/JavaPropertyValueObjectFactory.java | 319 ++++ .../injection/ListMultiplicityObjectFactory.java | 50 + .../java/injection/MethodInjector.java | 64 + .../injection/RequestContextObjectFactory.java | 44 + .../java/injection/ResourceHost.java | 46 + .../java/injection/ResourceNotFoundException.java | 47 + .../java/injection/ResourceObjectFactory.java | 86 ++ .../injection/ResourceResolutionException.java | 43 + .../java/invocation/EventInvocationException.java | 47 + .../java/invocation/EventInvoker.java | 34 + .../InvalidConversationSequenceException.java | 45 + .../invocation/JavaAsyncImplementationInvoker.java | 130 ++ .../JavaCallbackRuntimeWireProcessor.java | 125 ++ .../invocation/JavaComponentContextFactory.java | 40 + .../invocation/JavaComponentContextProvider.java | 383 +++++ .../java/invocation/JavaComponentNameFactory.java | 40 + .../java/invocation/JavaImplementationInvoker.java | 152 ++ .../invocation/JavaImplementationProvider.java | 169 +++ .../JavaImplementationProviderFactory.java | 108 ++ .../invocation/JavaInstanceFactoryProvider.java | 182 +++ .../java/invocation/MethodEventInvoker.java | 56 + .../NoConversationalContractException.java | 33 + .../java/invocation/ResponseDispatchImpl.java | 217 +++ ...apache.tuscany.sca.context.PropertyValueFactory | 17 + ....apache.tuscany.sca.definitions.xml.Definitions | 17 + ...implementation.java.introspect.JavaClassVisitor | 20 + ...cany.sca.provider.ImplementationProviderFactory | 20 + ...apache.tuscany.sca.runtime.RuntimeWireProcessor | 17 + .../java/definitions/definitions.xml | 30 + .../java/context/MultiplicityTestCase.java | 36 + .../ReflectiveInstanceWrapperTestCase.java.fixme | 84 ++ .../CallbackWireObjectFactoryTestCase.java.fixme | 54 + .../java/injection/FieldInjectorTestCase.java | 52 + ...vaPropertyValueObjectFactoryTestCase.java.fixme | 449 ++++++ .../java/injection/MethodEventInvokerTestCase.java | 79 + .../java/injection/MethodInjectorTestCase.java | 83 + .../ResourceObjectFactoryTestCase.java.fixme | 89 ++ .../java/injection/SingletonObjectFactory.java | 39 + .../injection/SingletonObjectFactoryTestCase.java | 36 + .../java/injection/TestObjectFactory.java | 120 ++ .../java/injection/TestObjectFactoryTestCase.java | 82 + .../sca/implementation/java/util/Bean1.java | 50 + .../sca/implementation/java/util/Bean2.java | 49 + .../sca/implementation/java/util/Entry.java | 32 + .../java/util/JavaIntrospectionHelperTestCase.java | 189 +++ .../sca/implementation/java/util/SuperBean.java | 48 + .../dynamic/modules/implementation-java/LICENSE | 205 +++ .../implementation-java/META-INF/MANIFEST.MF | 46 + .../dynamic/modules/implementation-java/NOTICE | 6 + .../dynamic/modules/implementation-java/pom.xml | 99 ++ .../java/BaseJavaImplementation.java | 59 + .../java/DefaultJavaImplementationFactory.java | 40 + .../java/IntrospectionException.java | 60 + .../implementation/java/JavaConstructorImpl.java | 56 + .../sca/implementation/java/JavaElementImpl.java | 222 +++ .../implementation/java/JavaImplementation.java | 164 ++ .../java/JavaImplementationFactory.java | 75 + .../sca/implementation/java/JavaParameterImpl.java | 36 + .../sca/implementation/java/JavaResourceImpl.java | 86 ++ .../sca/implementation/java/JavaScopeImpl.java | 62 + .../java/impl/BaseJavaImplementationImpl.java | 92 ++ .../java/impl/JavaClassIntrospectorImpl.java | 125 ++ .../java/impl/JavaImplementationFactoryImpl.java | 135 ++ .../java/impl/JavaImplementationImpl.java | 144 ++ .../java/introspect/BaseJavaClassVisitor.java | 74 + .../java/introspect/JavaClassVisitor.java | 126 ++ .../java/introspect/JavaIntrospectionHelper.java | 622 ++++++++ .../introspect/impl/AbstractPropertyProcessor.java | 257 ++++ .../impl/AllowsPassByReferenceProcessor.java | 57 + .../impl/AmbiguousConstructorException.java | 40 + .../introspect/impl/ComponentNameProcessor.java | 87 ++ .../java/introspect/impl/ConstructorProcessor.java | 110 ++ .../java/introspect/impl/ContextProcessor.java | 89 ++ .../java/introspect/impl/DestroyProcessor.java | 63 + .../impl/DuplicateConstructorException.java | 41 + .../impl/DuplicateDestructorException.java | 35 + .../introspect/impl/DuplicateInitException.java | 35 + .../impl/DuplicatePropertyException.java | 34 + .../impl/DuplicateReferenceException.java | 35 + .../impl/DuplicateResourceException.java | 36 + .../java/introspect/impl/EagerInitProcessor.java | 63 + .../introspect/impl/HeuristicPojoProcessor.java | 694 +++++++++ .../impl/IllegalCallbackReferenceException.java | 40 + .../introspect/impl/IllegalContextException.java | 40 + .../impl/IllegalDestructorException.java | 40 + .../java/introspect/impl/IllegalInitException.java | 40 + .../introspect/impl/IllegalPropertyException.java | 40 + .../introspect/impl/IllegalReferenceException.java | 40 + .../introspect/impl/IllegalResourceException.java | 40 + .../impl/IllegalServiceDefinitionException.java | 35 + .../java/introspect/impl/InitProcessor.java | 67 + .../impl/InvalidConstructorException.java | 36 + ...validConversationalImplementationException.java | 39 + .../introspect/impl/InvalidPropertyException.java | 35 + .../introspect/impl/InvalidReferenceException.java | 42 + .../introspect/impl/InvalidResourceException.java | 40 + .../impl/InvalidServiceTypeException.java | 48 + .../introspect/impl/NoConstructorException.java | 37 + .../java/introspect/impl/PolicyProcessor.java | 303 ++++ .../java/introspect/impl/PropertyProcessor.java | 50 + .../java/introspect/impl/ReferenceProcessor.java | 274 ++++ .../java/introspect/impl/Resource.java | 49 + .../java/introspect/impl/ResourceProcessor.java | 153 ++ .../java/introspect/impl/ScopeProcessor.java | 68 + .../java/introspect/impl/ServiceProcessor.java | 238 +++ .../impl/ServiceTypeNotFoundException.java | 35 + .../impl/UnknownContextTypeException.java | 33 + .../tuscany/sca/implementation/java/package.html | 29 + .../java/xml/JavaImplementationConstants.java | 35 + .../java/xml/JavaImplementationProcessor.java | 334 ++++ ...ca.contribution.processor.StAXArtifactProcessor | 20 + ...a.implementation.java.JavaImplementationFactory | 19 + ...implementation.java.introspect.JavaClassVisitor | 33 + .../impl-javaxml-validation-messages.properties | 23 + .../src/test/java/calculator/AddService.java | 30 + .../src/test/java/calculator/AddServiceImpl.java | 37 + .../test/java/calculator/CalculatorService.java | 36 + .../java/calculator/CalculatorServiceImpl.java | 73 + .../src/test/java/calculator/DivideService.java | 30 + .../test/java/calculator/DivideServiceImpl.java | 35 + .../src/test/java/calculator/MultiplyService.java | 30 + .../test/java/calculator/MultiplyServiceImpl.java | 35 + .../src/test/java/calculator/SubtractService.java | 30 + .../test/java/calculator/SubtractServiceImpl.java | 35 + .../introspect/impl/AbstractProcessorTest.java | 80 + .../AllowsPassByReferenceProcessorTestCase.java | 74 + .../impl/ConstructorProcessorTestCase.java | 206 +++ .../impl/ConstructorPropertyTestCase.java | 174 +++ .../impl/ConstructorReferenceTestCase.java | 188 +++ .../impl/ConstructorResourceTestCase.java | 164 ++ .../introspect/impl/ContextProcessorTestCase.java | 216 +++ .../introspect/impl/DestroyProcessorTestCase.java | 150 ++ .../impl/EagerInitProcessorTestCase.java | 60 + .../impl/HeuristicAndPropertyTestCase.java | 72 + .../impl/HeuristicConstructorTestCase.java | 330 ++++ .../impl/HeuristicPojoProcessorTestCase.java | 581 +++++++ .../HeutisticExtensibleConstructorTestCase.java | 157 ++ .../introspect/impl/InitProcessorTestCase.java | 153 ++ .../java/introspect/impl/ModelHelper.java | 99 ++ .../introspect/impl/PolicyProcessorTestCase.java | 428 ++++++ .../introspect/impl/PropertyProcessorTestCase.java | 304 ++++ .../impl/ReferenceProcessorTestCase.java | 310 ++++ .../introspect/impl/ResourceProcessorTestCase.java | 128 ++ .../introspect/impl/ScopeProcessorTestCase.java | 80 + .../introspect/impl/ServiceCallbackTestCase.java | 197 +++ .../introspect/impl/ServiceProcessorTestCase.java | 219 +++ .../TestAbstractPropertyProcessorTestCase.java | 180 +++ .../sca/implementation/java/xml/ReadTestCase.java | 241 +++ .../implementation/java/xml/TestModelResolver.java | 89 ++ .../sca/implementation/java/xml/WriteTestCase.java | 71 + .../implementation/java/xml/Calculator.composite | 66 + .../sca/implementation/java/xml/definitions.xml | 100 ++ .../java/xml/definitions_with_policysets.xml | 113 ++ .../modules/implementation-jaxrs-runtime/LICENSE | 241 +++ .../META-INF/MANIFEST.MF | 32 + .../modules/implementation-jaxrs-runtime/NOTICE | 12 + .../modules/implementation-jaxrs-runtime/pom.xml | 154 ++ .../provider/JAXRSImplementationProvider.java | 76 + .../JAXRSImplementationProviderFactory.java | 46 + ...cany.sca.provider.ImplementationProviderFactory | 21 + .../src/test/java/helloworld/jaxrs/HelloWorld.java | 70 + .../test/java/helloworld/jaxrs/HelloWorldApp.java | 64 + .../helloworld/jaxrs/test/HelloWorldTestCase.java | 71 + .../helloworld/jaxrs/HelloWorld.composite | 29 + .../dynamic/modules/implementation-jaxrs/LICENSE | 205 +++ .../implementation-jaxrs/META-INF/MANIFEST.MF | 31 + .../dynamic/modules/implementation-jaxrs/NOTICE | 6 + .../dynamic/modules/implementation-jaxrs/pom.xml | 91 ++ .../implementation/jaxrs/JAXRSImplementation.java | 39 + .../jaxrs/JAXRSImplementationFactory.java | 33 + .../jaxrs/impl/JAXRSImplementationFactoryImpl.java | 37 + .../jaxrs/impl/JAXRSImplementationImpl.java | 85 ++ .../jaxrs/xml/JAXRSImplementationProcessor.java | 162 ++ ...ca.contribution.processor.StAXArtifactProcessor | 20 + ...any.sca.contribution.processor.ValidationSchema | 18 + ...implementation.jaxrs.JAXRSImplementationFactory | 20 + .../jaxrs/tuscany-sca-1.1-implementation-jaxrs.xsd | 38 + .../sca/implementation/jaxrs/xml/ReadTestCase.java | 66 + .../implementation/jaxrs/xml/WriteTestCase.java | 69 + .../implementation/jaxrs/xml/TestJAXRS.composite | 30 + .../modules/implementation-osgi-runtime/LICENSE | 203 +++ .../META-INF/MANIFEST.MF | 29 + .../modules/implementation-osgi-runtime/NOTICE | 6 + .../modules/implementation-osgi-runtime/pom.xml | 78 + .../osgi/runtime/OSGiImplementationProvider.java | 336 +++++ .../runtime/OSGiImplementationProviderFactory.java | 61 + .../osgi/runtime/OSGiTargetInvoker.java | 210 +++ .../src/main/resources/META-INF/definitions.xml | 37 + ...cany.sca.provider.ImplementationProviderFactory | 20 + .../impl-osgi-validation-messages.properties | 25 + .../dynamic/modules/implementation-osgi/LICENSE | 203 +++ .../implementation-osgi/META-INF/MANIFEST.MF | 37 + .../dynamic/modules/implementation-osgi/NOTICE | 6 + .../dynamic/modules/implementation-osgi/pom.xml | 72 + .../osgi/DefaultOSGiImplementationFactory.java | 34 + .../osgi/DefaultServiceDescriptionsFactory.java | 33 + .../implementation/osgi/OSGiImplementation.java | 51 + .../osgi/OSGiImplementationFactory.java | 47 + .../sca/implementation/osgi/OSGiProperty.java | 242 +++ .../tuscany/sca/implementation/osgi/SCAConfig.java | 65 + .../implementation/osgi/ServiceDescription.java | 40 + .../implementation/osgi/ServiceDescriptions.java | 38 + .../osgi/ServiceDescriptionsFactory.java | 31 + .../osgi/impl/OSGiImplementationFactoryImpl.java | 125 ++ .../osgi/impl/OSGiImplementationImpl.java | 124 ++ .../implementation/osgi/impl/OSGiPropertyImpl.java | 69 + .../implementation/osgi/impl/SCAConfigImpl.java | 58 + .../osgi/impl/ServiceDescriptionImpl.java | 51 + .../osgi/impl/ServiceDescriptionsFactoryImpl.java | 48 + .../osgi/impl/ServiceDescriptionsImpl.java | 36 + .../osgi/xml/BluePrintComponentsProcessor.java | 144 ++ .../osgi/xml/OSGiComponentProcessor.java | 174 +++ .../osgi/xml/OSGiImplementationActivator.java | 47 + .../osgi/xml/OSGiImplementationProcessor.java | 342 +++++ .../osgi/xml/OSGiPropertyProcessor.java | 115 ++ .../osgi/xml/SCAConfigProcessor.java | 194 +++ .../xml/ServiceDescriptionsDocumentProcessor.java | 99 ++ .../osgi/xml/ServiceDescriptionsModelResolver.java | 59 + .../osgi/xml/ServiceDescriptionsProcessor.java | 255 ++++ .../src/main/resources/META-INF/definitions.xml | 37 + ...ca.contribution.processor.StAXArtifactProcessor | 22 + ...sca.contribution.processor.URLArtifactProcessor | 20 + ...tuscany.sca.contribution.resolver.ModelResolver | 18 + ...a.implementation.osgi.OSGiImplementationFactory | 19 + ....implementation.osgi.ServiceDescriptionsFactory | 18 + .../impl-osgi-validation-messages.properties | 26 + .../java/calculator/dosgi/CalculatorService.java | 39 + .../calculator/dosgi/operations/AddService.java | 31 + .../calculator/dosgi/operations/DivideService.java | 31 + .../dosgi/operations/MultiplyService.java | 31 + .../dosgi/operations/SubtractService.java | 31 + .../xml/BluePrintComponentsProcessorTestCase.java | 89 ++ .../osgi/xml/OSGiComponentProcessorTestCase.java | 89 ++ .../osgi/xml/OSGiReadImplTestCase.java | 173 +++ .../osgi/xml/ServiceDescriptionsTestCase.java | 110 ++ .../implementation/osgi/xml/TestModelResolver.java | 105 ++ .../resources/OSGI-INF/calculator-component.xml | 36 + .../resources/OSGI-INF/sca/bundle.componentType | 63 + .../src/test/resources/osgitest.composite | 35 + .../modules/implementation-script-runtime/LICENSE | 251 +++ .../META-INF/MANIFEST.MF | 58 + .../modules/implementation-script-runtime/NOTICE | 12 + .../modules/implementation-script-runtime/pom.xml | 189 +++ .../provider/ScriptImplementationProvider.java | 174 +++ .../ScriptImplementationProviderFactory.java | 55 + .../script/provider/ScriptInvoker.java | 84 ++ .../script/provider/ScriptPropertyFactory.java | 225 +++ ...cany.sca.provider.ImplementationProviderFactory | 19 + .../script/itests/AbstractSCATestCase.java | 59 + .../helloworld/AbstractHelloWorldTestCase.java | 38 + .../helloworld/GroovyHelloWorldTestCase.java | 29 + .../script/itests/helloworld/HelloWorld.java | 30 + .../script/itests/helloworld/HelloWorldProxy.java | 37 + .../itests/helloworld/JRubyHelloWorldTestCase.java | 29 + .../helloworld/JavaScriptHelloWorldTestCase.java | 29 + .../helloworld/JythonHelloWorldTestCase.java | 29 + .../properties/AbstractHelloWorldTestCase.java | 38 + .../properties/GroovyHelloWorldTestCase.java | 29 + .../script/itests/properties/HelloWorld.java | 30 + .../script/itests/properties/HelloWorldProxy.java | 37 + .../itests/properties/JRubyHelloWorldTestCase.java | 28 + .../properties/JavaScriptHelloWorldTestCase.java | 29 + .../properties/JythonHelloWorldTestCase.java | 29 + .../itests/references/GroovyReferenceTestCase.java | 29 + .../script/itests/references/HelloWorldTarget.java | 34 + .../itests/references/JRubyReferenceTestCase.java | 29 + .../references/JavaScriptReferenceTestCase.java | 29 + .../itests/references/JythonReferenceTestCase.java | 29 + .../itests/helloworld/GroovyHelloWorld.composite | 33 + .../itests/helloworld/JRubyHelloWorld.composite | 33 + .../helloworld/JavaScriptHelloWorld.composite | 33 + .../itests/helloworld/JythonHelloWorld.composite | 33 + .../itests/helloworld/helloworld.componentType | 30 + .../script/itests/helloworld/helloworld.groovy | 22 + .../script/itests/helloworld/helloworld.js | 23 + .../script/itests/helloworld/helloworld.py | 20 + .../script/itests/helloworld/helloworld.rb | 21 + .../itests/properties/GroovyHelloWorld.composite | 33 + .../itests/properties/JRubyHelloWorld.composite | 33 + .../properties/JavaScriptHelloWorld.composite | 33 + .../itests/properties/JythonHelloWorld.composite | 33 + .../itests/properties/helloworld.componentType | 32 + .../script/itests/properties/helloworld.groovy | 22 + .../script/itests/properties/helloworld.js | 23 + .../script/itests/properties/helloworld.py | 20 + .../script/itests/properties/helloworld.rb | 21 + .../itests/references/GroovyReference.composite | 38 + .../itests/references/JRubyReference.composite | 38 + .../references/JavaScriptReference.composite | 38 + .../itests/references/JythonReference.composite | 38 + .../itests/references/reference.componentType | 31 + .../script/itests/references/reference.groovy | 22 + .../script/itests/references/reference.js | 22 + .../script/itests/references/reference.py | 20 + .../script/itests/references/reference.rb | 21 + .../dynamic/modules/implementation-script/LICENSE | 251 +++ .../implementation-script/META-INF/MANIFEST.MF | 29 + .../dynamic/modules/implementation-script/NOTICE | 12 + .../dynamic/modules/implementation-script/pom.xml | 48 + .../script/ScriptImplementation.java | 46 + .../script/ScriptImplementationFactory.java | 27 + .../impl/ScriptImplementationFactoryImpl.java | 34 + .../script/impl/ScriptImplementationImpl.java | 102 ++ .../script/xml/ScriptImplementationProcessor.java | 167 ++ ...ca.contribution.processor.StAXArtifactProcessor | 19 + ...plementation.script.ScriptImplementationFactory | 17 + .../modules/implementation-spring-runtime/LICENSE | 205 +++ .../META-INF/MANIFEST.MF | 24 + .../modules/implementation-spring-runtime/NOTICE | 6 + .../modules/implementation-spring-runtime/README | 9 + .../modules/implementation-spring-runtime/pom.xml | 70 + .../namespace/SCANamespaceHandlerResolver.java | 53 + .../spring/namespace/ScaNamespaceHandler.java | 38 + .../namespace/ScaPropertyBeanDefinitionParser.java | 35 + .../ScaReferenceBeanDefinitionParser.java | 36 + .../namespace/ScaServiceBeanDefinitionParser.java | 36 + .../ComponentNameAnnotationProcessor.java | 150 ++ .../spring/processor/ComponentStub.java | 54 + .../processor/ConstructorAnnotationProcessor.java | 115 ++ .../processor/InitDestroyAnnotationProcessor.java | 75 + .../processor/PropertyAnnotationProcessor.java | 161 ++ .../spring/processor/PropertyValueStub.java | 55 + .../processor/ReferenceAnnotationProcessor.java | 164 ++ .../context/SCAGenericApplicationContext.java | 47 + .../context/SCAParentApplicationContext.java | 202 +++ .../spring/runtime/context/SpringContextTie.java | 133 ++ .../runtime/context/SpringImplementationStub.java | 129 ++ .../src/main/resources/META-INF/spring.handlers | 1 + .../src/main/resources/META-INF/spring.schemas | 1 + .../org/springframework/sca/xml/spring-sca.xsd | 84 ++ .../dynamic/modules/implementation-spring/LICENSE | 205 +++ .../implementation-spring/META-INF/MANIFEST.MF | 53 + .../dynamic/modules/implementation-spring/NOTICE | 6 + .../dynamic/modules/implementation-spring/README | 9 + .../dynamic/modules/implementation-spring/pom.xml | 69 + .../implementation/spring/SpringBeanElement.java | 117 ++ .../spring/SpringConstructorArgElement.java | 77 + .../spring/SpringImplementation.java | 258 ++++ .../spring/SpringImplementationBuilder.java | 41 + .../spring/SpringImplementationConstants.java | 73 + .../spring/SpringPropertyElement.java | 60 + .../spring/SpringSCAPropertyElement.java | 52 + .../spring/SpringSCAReferenceElement.java | 78 + .../spring/SpringSCAServiceElement.java | 78 + .../spring/introspect/SpringBeanIntrospector.java | 99 ++ .../spring/introspect/SpringBeanPojoProcessor.java | 660 ++++++++ .../introspect/SpringXMLComponentTypeLoader.java | 1153 ++++++++++++++ .../spring/invocation/ComponentTie.java | 41 + .../spring/invocation/PropertyValueTie.java | 53 + .../spring/invocation/SpringContextStub.java | 134 ++ .../invocation/SpringImplementationProvider.java | 85 ++ .../SpringImplementationProviderFactory.java | 75 + .../spring/invocation/SpringImplementationTie.java | 147 ++ .../invocation/SpringInvocationException.java | 40 + .../spring/invocation/SpringInvoker.java | 124 ++ .../spring/xml/SpringImplementationProcessor.java | 231 +++ ...cany.sca.assembly.builder.ImplementationBuilder | 18 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + ....apache.tuscany.sca.definitions.xml.Definitions | 17 + ...cany.sca.provider.ImplementationProviderFactory | 20 + .../impl-spring-validation-messages.properties | 28 + .../sca/implementation/spring/definitions.xml | 30 + .../modules/implementation-web-client/LICENSE | 241 +++ .../implementation-web-client/META-INF/MANIFEST.MF | 31 + .../modules/implementation-web-client/NOTICE | 12 + .../modules/implementation-web-client/pom.xml | 68 + .../implementation/web/client/ClientServlet.java | 259 ++++ .../web/client/JSClientExtensionPointImpl.java | 70 + ...implementation.web.runtime.ClientExtensionPoint | 22 + .../modules/implementation-web-runtime/LICENSE | 241 +++ .../META-INF/MANIFEST.MF | 28 + .../modules/implementation-web-runtime/NOTICE | 12 + .../modules/implementation-web-runtime/pom.xml | 89 ++ .../web/runtime/ClientExtensionPoint.java | 30 + .../web/runtime/ComponentContextProxy.java | 85 ++ .../runtime/WebImplementationProviderFactory.java | 71 + .../web/runtime/jsp/ReferenceTEI.java | 45 + .../web/runtime/jsp/ReferenceTag.java | 97 ++ .../web/runtime/utils/ContextHelper.java | 133 ++ .../src/main/resources/META-INF/sca.tld | 49 + ...cany.sca.provider.ImplementationProviderFactory | 21 + .../dynamic/modules/implementation-web/LICENSE | 205 +++ .../implementation-web/META-INF/MANIFEST.MF | 28 + .../java/dynamic/modules/implementation-web/NOTICE | 6 + .../dynamic/modules/implementation-web/pom.xml | 73 + .../sca/implementation/web/WebImplementation.java | 47 + .../web/WebImplementationFactory.java | 34 + .../web/impl/WebImplementationBuilder.java | 43 + .../web/impl/WebImplementationFactoryImpl.java | 37 + .../web/impl/WebImplementationImpl.java | 156 ++ .../web/xml/WebImplementationProcessor.java | 126 ++ ...cany.sca.assembly.builder.ImplementationBuilder | 18 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + ...sca.implementation.web.WebImplementationFactory | 20 + .../sca/implementation/web/xml/ReadTestCase.java | 64 + .../sca/implementation/web/xml/WriteTestCase.java | 69 + .../sca/implementation/web/xml/TestWeb.composite | 29 + .../implementation-widget-runtime-dojo/LICENSE | 205 +++ .../META-INF/MANIFEST.MF | 15 + .../implementation-widget-runtime-dojo/NOTICE | 6 + .../implementation-widget-runtime-dojo/pom.xml | 52 + .../dojo/DojoJavaScriptComponentGeneratorImpl.java | 267 ++++ ...sca.web.javascript.ComponentJavaScriptGenerator | 19 + .../modules/implementation-widget-runtime/LICENSE | 205 +++ .../META-INF/MANIFEST.MF | 33 + .../modules/implementation-widget-runtime/NOTICE | 6 + .../modules/implementation-widget-runtime/pom.xml | 71 + .../provider/WidgetComponentScriptServlet.java | 62 + .../provider/WidgetImplementationInvoker.java | 101 ++ .../provider/WidgetImplementationProvider.java | 157 ++ .../WidgetImplementationProviderFactory.java | 65 + ...cany.sca.provider.ImplementationProviderFactory | 19 + .../src/main/resources/atomModel.js | 1590 ++++++++++++++++++++ .../src/main/resources/binding-http.js | 105 ++ .../dynamic/modules/implementation-widget/LICENSE | 205 +++ .../implementation-widget/META-INF/MANIFEST.MF | 31 + .../dynamic/modules/implementation-widget/NOTICE | 6 + .../dynamic/modules/implementation-widget/pom.xml | 64 + .../tuscany/sca/implementation/widget/Widget.java | 38 + .../widget/WidgetImplementation.java | 59 + .../widget/WidgetImplementationFactory.java | 35 + .../widget/WidgetImplementationIntrospector.java | 150 ++ .../widget/WidgetImplementationProcessor.java | 188 +++ .../impl/WidgetImplementationFactoryImpl.java | 43 + .../widget/impl/WidgetImplementationImpl.java | 134 ++ .../WidgetImplementationJavascriptProvider.java | 34 + ...ca.contribution.processor.StAXArtifactProcessor | 19 + ...plementation.widget.WidgetImplementationFactory | 19 + .../impl-widget-validation-messages.properties | 23 + .../dynamic/modules/interface-java-jaxrs/LICENSE | 205 +++ .../interface-java-jaxrs/META-INF/MANIFEST.MF | 18 + .../dynamic/modules/interface-java-jaxrs/NOTICE | 6 + .../dynamic/modules/interface-java-jaxrs/pom.xml | 64 + .../java/jaxrs/CodeGenerationHelper.java | 280 ++++ .../java/jaxrs/GeneratedClassLoader.java | 70 + .../java/jaxrs/JAXRSJavaInterfaceProcessor.java | 116 ++ .../java/jaxrs/RootResourceClassGenerator.java | 210 +++ ...terfacedef.java.introspect.JavaInterfaceVisitor | 17 + .../tuscany/sca/interfacedef/java/jaxrs/Bean.java | 31 + .../jaxrs/JAXRSInterfaceProcessorTestCase.java | 66 + .../interfacedef/java/jaxrs/MockedResource.java | 44 + .../sca/interfacedef/java/jaxrs/Resource.java | 44 + .../interfacedef/java/jaxrs/ResourceWrapper.java | 54 + .../jaxrs/RootResourceClassGeneratorTestCase.java | 69 + .../dynamic/modules/interface-java-jaxws/LICENSE | 205 +++ .../interface-java-jaxws/META-INF/MANIFEST.MF | 48 + .../dynamic/modules/interface-java-jaxws/NOTICE | 6 + .../dynamic/modules/interface-java-jaxws/pom.xml | 281 ++++ .../interfacedef/java/jaxws/BaseBeanGenerator.java | 542 +++++++ .../java/jaxws/CodeGenerationHelper.java | 280 ++++ .../java/jaxws/FaultBeanGenerator.java | 147 ++ .../java/jaxws/GeneratedClassLoader.java | 70 + .../java/jaxws/GeneratedDataTypeImpl.java | 143 ++ .../java/jaxws/JAXWSAsyncInterfaceProcessor.java | 276 ++++ .../java/jaxws/JAXWSFaultExceptionMapper.java | 403 +++++ .../java/jaxws/JAXWSJavaInterfaceProcessor.java | 393 +++++ .../java/jaxws/WebServiceInterfaceProcessor.java | 49 + .../java/jaxws/WrapperBeanGenerator.java | 238 +++ ...e.tuscany.sca.interfacedef.FaultExceptionMapper | 17 + ...terfacedef.java.introspect.JavaInterfaceVisitor | 19 + .../tuscany/sca/interfacedef/java/jaxws/Bean.java | 27 + .../tuscany/sca/interfacedef/java/jaxws/Bean1.java | 40 + .../tuscany/sca/interfacedef/java/jaxws/Bean2.java | 40 + .../sca/interfacedef/java/jaxws/BeanInterface.java | 28 + .../interfacedef/java/jaxws/BeanInterfaceImpl.java | 35 + .../java/jaxws/FaultBeanGeneratorTestCase.java | 65 + .../JAXWSAsyncInterfaceProcessorTestCase.java | 67 + .../jaxws/JAXWSJavaInterfaceProcessorTestCase.java | 121 ++ .../java/jaxws/JavaReflectionHelperTestCase.java | 47 + .../sca/interfacedef/java/jaxws/MyException.java | 62 + .../sca/interfacedef/java/jaxws/MyServiceImpl.java | 52 + .../sca/interfacedef/java/jaxws/StockQuote.java | 44 + .../sca/interfacedef/java/jaxws/TestAdapter.java | 39 + .../interfacedef/java/jaxws/TestGenericClass.java | 40 + .../sca/interfacedef/java/jaxws/TestInterface.java | 70 + .../java/jaxws/WrapperBeanGeneratorTestCase.java | 80 + .../src/test/resources/wsdl/Stock.wsdl | 142 ++ .../test/resources/wsdl/StockExceptionTest.wsdl | 171 +++ .../java/dynamic/modules/interface-java/LICENSE | 205 +++ .../modules/interface-java/META-INF/MANIFEST.MF | 43 + .../java/dynamic/modules/interface-java/NOTICE | 6 + .../java/dynamic/modules/interface-java/pom.xml | 58 + .../java/DefaultJavaInterfaceFactory.java | 100 ++ .../sca/interfacedef/java/JavaInterface.java | 89 ++ .../interfacedef/java/JavaInterfaceContract.java | 33 + .../interfacedef/java/JavaInterfaceFactory.java | 91 ++ .../sca/interfacedef/java/JavaOperation.java | 70 + .../java/impl/JavaInterfaceContractImpl.java | 53 + .../java/impl/JavaInterfaceFactoryImpl.java | 95 ++ .../interfacedef/java/impl/JavaInterfaceImpl.java | 325 ++++ .../java/impl/JavaInterfaceIntrospectorImpl.java | 309 ++++ .../interfacedef/java/impl/JavaInterfaceUtil.java | 223 +++ .../interfacedef/java/impl/JavaOperationImpl.java | 100 ++ .../java/impl/PolicyJavaInterfaceVisitor.java | 210 +++ .../java/introspect/JavaInterfaceVisitor.java | 39 + .../tuscany/sca/interfacedef/java/package.html | 30 + .../sca/interfacedef/java/xml/JavaConstants.java | 36 + .../java/xml/JavaInterfaceProcessor.java | 364 +++++ ...ca.contribution.processor.StAXArtifactProcessor | 20 + ...cany.sca.interfacedef.java.JavaInterfaceFactory | 18 + ...terfacedef.java.introspect.JavaInterfaceVisitor | 18 + ...nterface-javaxml-validation-messages.properties | 27 + ...avaInterfaceUtilDuplicateRemotableTestCase.java | 317 ++++ .../java/impl/JavaInterfaceUtilTestCase.java | 123 ++ ...terfaceProcessorRegistryImplTestCase.java.fixme | 107 ++ .../impl/PolicyProcessorTestCase.java | 119 ++ .../sca/interfacedef/java/xml/ReadTestCase.java | 81 + .../sca/interfacedef/java/xml/WriteTestCase.java | 80 + .../sca/interfacedef/java/xml/Calculator.composite | 53 + .../java/xml/CalculatorImpl.componentType | 31 + .../java/dynamic/modules/interface-wsdl/LICENSE | 205 +++ .../modules/interface-wsdl/META-INF/MANIFEST.MF | 47 + .../java/dynamic/modules/interface-wsdl/NOTICE | 6 + .../java/dynamic/modules/interface-wsdl/pom.xml | 86 ++ .../interfacedef/wsdl/BPELPartnerLinkTypeExt.java | 79 + .../sca/interfacedef/wsdl/DefaultWSDLFactory.java | 35 + .../sca/interfacedef/wsdl/WSDLDefinition.java | 190 +++ .../tuscany/sca/interfacedef/wsdl/WSDLFactory.java | 71 + .../sca/interfacedef/wsdl/WSDLInterface.java | 81 + .../interfacedef/wsdl/WSDLInterfaceContract.java | 43 + .../tuscany/sca/interfacedef/wsdl/WSDLObject.java | 54 + .../sca/interfacedef/wsdl/WSDLOperation.java | 40 + .../wsdl/impl/InvalidWSDLException.java | 35 + .../interfacedef/wsdl/impl/WSDLDefinitionImpl.java | 321 ++++ .../interfacedef/wsdl/impl/WSDLFactoryImpl.java | 80 + .../wsdl/impl/WSDLInterfaceContractImpl.java | 56 + .../interfacedef/wsdl/impl/WSDLInterfaceImpl.java | 124 ++ .../wsdl/impl/WSDLInterfaceIntrospectorImpl.java | 135 ++ .../sca/interfacedef/wsdl/impl/WSDLObjectImpl.java | 61 + .../interfacedef/wsdl/impl/WSDLOperationImpl.java | 81 + .../wsdl/impl/WSDLOperationIntrospectorImpl.java | 605 ++++++++ .../tuscany/sca/interfacedef/wsdl/package.html | 31 + .../wsdl/xml/BPELExtensionHandler.java | 142 ++ .../sca/interfacedef/wsdl/xml/WSDLConstants.java | 39 + .../wsdl/xml/WSDLDocumentProcessor.java | 235 +++ .../wsdl/xml/WSDLInterfaceProcessor.java | 398 +++++ .../interfacedef/wsdl/xml/WSDLModelResolver.java | 675 +++++++++ ...ca.contribution.processor.StAXArtifactProcessor | 20 + ...sca.contribution.processor.URLArtifactProcessor | 20 + ...tuscany.sca.contribution.resolver.ModelResolver | 19 + ...pache.tuscany.sca.interfacedef.wsdl.WSDLFactory | 18 + ...nterface-wsdlxml-validation-messages.properties | 27 + .../WSDLInterfaceIntrospectorTestCase.java | 85 ++ .../WSDLOperationIntrospectorTestCase.java | 125 ++ ...licyAnnotatedInterfaceIntrospectorTestCase.java | 80 + .../introspect/WrapperStyleOperationTestCase.java | 74 + .../wsdl/xml/AbstractWSDLTestCase.java | 65 + .../sca/interfacedef/wsdl/xml/ReadTestCase.java | 77 + .../wsdl/xml/WSDLDocumentProcessorTestCase.java | 68 + .../sca/interfacedef/wsdl/xml/WSDLTestCase.java | 126 ++ .../sca/interfacedef/wsdl/xml/WriteTestCase.java | 82 + .../sca/interfacedef/wsdl/xml/Calculator.composite | 55 + .../wsdl/xml/CalculatorImpl.componentType | 33 + .../tuscany/sca/interfacedef/wsdl/xml/example.wsdl | 26 + .../interfacedef/wsdl/xml/invalid-stockquote.wsdl | 58 + .../tuscany/sca/interfacedef/wsdl/xml/ipo.xsd | 136 ++ .../sca/interfacedef/wsdl/xml/stockquote.wsdl | 58 + .../tuscany/sca/interfacedef/wsdl/xml/test1.wsdl | 45 + .../tuscany/sca/interfacedef/wsdl/xml/test1.xsd | 33 + .../tuscany/sca/interfacedef/wsdl/xml/test2.wsdl | 63 + .../wsdl/xml/unwrapped-stockquote.wsdl | 76 + .../test/resources/policy/stockquote_policy.wsdl | 62 + .../test/resources/wsdl/helloworld-interface.wsdl | 67 + .../test/resources/wsdl/helloworld-service.wsdl | 49 + .../src/test/resources/xsd/greeting.xsd | 29 + .../src/test/resources/xsd/helloworld.xsd | 22 + .../interface-wsdl/src/test/resources/xsd/name.xsd | 29 + .../java/dynamic/modules/launcher/LICENSE | 205 +++ .../dynamic/modules/launcher/META-INF/MANIFEST.MF | 14 + .../sebastien/java/dynamic/modules/launcher/NOTICE | 6 + .../java/dynamic/modules/launcher/pom.xml | 35 + .../apache/tuscany/sca/launcher/LauncherMain.java | 346 +++++ .../sebastien/java/dynamic/modules/monitor/LICENSE | 205 +++ .../dynamic/modules/monitor/META-INF/MANIFEST.MF | 14 + .../sebastien/java/dynamic/modules/monitor/NOTICE | 6 + .../sebastien/java/dynamic/modules/monitor/pom.xml | 33 + .../tuscany/sca/monitor/DefaultMonitorFactory.java | 60 + .../org/apache/tuscany/sca/monitor/Monitor.java | 364 +++++ .../apache/tuscany/sca/monitor/MonitorFactory.java | 61 + .../org/apache/tuscany/sca/monitor/Problem.java | 54 + .../tuscany/sca/monitor/ValidationException.java | 40 + .../tuscany/sca/monitor/impl/MonitorImpl.java | 144 ++ .../tuscany/sca/monitor/impl/ProblemImpl.java | 181 +++ .../org.apache.tuscany.sca.monitor.MonitorFactory | 19 + .../tuscany/sca/monitor/MonitorTestCase.java | 98 ++ .../tuscany-monitor-test-messages.properties | 24 + .../tuscany-monitor-test-messages_it.properties | 24 + .../sebastien/java/dynamic/modules/myfaces/LICENSE | 241 +++ .../dynamic/modules/myfaces/META-INF/MANIFEST.MF | 18 + .../sebastien/java/dynamic/modules/myfaces/NOTICE | 12 + .../sebastien/java/dynamic/modules/myfaces/pom.xml | 76 + .../TuscanyAnnotationLifecycleProvider.java | 69 + .../sca/myfaces/TuscanyAnnotationProcessor.java | 53 + .../java/dynamic/modules/node-api/LICENSE | 205 +++ .../dynamic/modules/node-api/META-INF/MANIFEST.MF | 18 + .../sebastien/java/dynamic/modules/node-api/NOTICE | 6 + .../java/dynamic/modules/node-api/pom.xml | 41 + .../org/apache/tuscany/sca/node/Contribution.java | 54 + .../sca/node/ContributionLocationHelper.java | 160 ++ .../java/org/apache/tuscany/sca/node/Node.java | 86 ++ .../org/apache/tuscany/sca/node/NodeFactory.java | 623 ++++++++ .../org/apache/tuscany/sca/node/NodeMain2.java | 55 + .../node/configuration/BindingConfiguration.java | 55 + .../configuration/ContributionConfiguration.java | 102 ++ .../DefaultNodeConfigurationFactory.java | 46 + .../node/configuration/DeploymentComposite.java | 64 + .../sca/node/configuration/NodeConfiguration.java | 108 ++ .../configuration/NodeConfigurationFactory.java | 50 + .../impl/BindingConfigurationImpl.java | 54 + .../impl/ContributionConfigurationImpl.java | 155 ++ .../impl/DeploymentCompositeImpl.java | 64 + .../impl/NodeConfigurationFactoryImpl.java | 63 + .../configuration/impl/NodeConfigurationImpl.java | 176 +++ .../java/dynamic/modules/node-impl-osgi/LICENSE | 205 +++ .../modules/node-impl-osgi/META-INF/MANIFEST.MF | 53 + .../java/dynamic/modules/node-impl-osgi/NOTICE | 9 + .../java/dynamic/modules/node-impl-osgi/pom.xml | 121 ++ .../tuscany/sca/node/osgi/impl/NodeActivator.java | 129 ++ .../tuscany/sca/node/osgi/impl/NodeManager.java | 143 ++ .../sca/node/osgi/impl/OSGiNodeFactoryImpl.java | 142 ++ .../impl/AbstractOSGiServiceHandler.java | 97 ++ .../remoteserviceadmin/impl/EndpointHelper.java | 109 ++ .../impl/EndpointIntrospector.java | 550 +++++++ .../remoteserviceadmin/impl/EndpointMatcher.java | 273 ++++ .../impl/ExportReferenceImpl.java | 73 + .../impl/ExportRegistrationImpl.java | 80 + .../impl/ImportReferenceImpl.java | 72 + .../impl/ImportRegistrationImpl.java | 70 + .../osgi/remoteserviceadmin/impl/OSGiHelper.java | 234 +++ .../impl/OSGiServiceExporter.java | 163 ++ .../impl/OSGiServiceImporter.java | 114 ++ .../impl/RemoteServiceAdminImpl.java | 346 +++++ .../impl/TopologyManagerImpl.java | 400 +++++ .../discovery/impl/AbstractDiscoveryService.java | 265 ++++ .../sca/osgi/service/discovery/impl/Discovery.java | 66 + .../service/discovery/impl/DiscoveryActivator.java | 57 + .../discovery/impl/DomainDiscoveryService.java | 140 ++ .../discovery/impl/LocalDiscoveryService.java | 262 ++++ .../remoteserviceadmin/EndpointDescription.java | 682 +++++++++ .../remoteserviceadmin/EndpointListener.java | 126 ++ .../remoteserviceadmin/EndpointPermission.java | 693 +++++++++ .../remoteserviceadmin/ExportReference.java | 45 + .../remoteserviceadmin/ExportRegistration.java | 71 + .../remoteserviceadmin/ImportReference.java | 44 + .../remoteserviceadmin/ImportRegistration.java | 67 + .../remoteserviceadmin/RemoteConstants.java | 216 +++ .../remoteserviceadmin/RemoteServiceAdmin.java | 124 ++ .../RemoteServiceAdminEvent.java | 178 +++ .../RemoteServiceAdminListener.java | 44 + ...any.sca.contribution.processor.ValidationSchema | 18 + .../org.apache.tuscany.sca.node.NodeFactory | 17 + .../remoteserviceadmin/osgi-remoteserviceadmin.xsd | 92 ++ .../java/calculator/dosgi/CalculatorService.java | 36 + .../calculator/dosgi/impl/CalculatorActivator.java | 75 + .../dosgi/impl/CalculatorServiceDSImpl.java | 114 ++ .../dosgi/impl/CalculatorServiceImpl.java | 96 ++ .../calculator/dosgi/operations/AddService.java | 31 + .../calculator/dosgi/operations/DivideService.java | 31 + .../dosgi/operations/MultiplyService.java | 31 + .../dosgi/operations/SubtractService.java | 31 + .../dosgi/operations/impl/AddServiceImpl.java | 37 + .../dosgi/operations/impl/DivideServiceImpl.java | 37 + .../dosgi/operations/impl/MultiplyServiceImpl.java | 37 + .../dosgi/operations/impl/OperationsActivator.java | 88 ++ .../dosgi/operations/impl/SubtractServiceImpl.java | 37 + .../dosgi/test/CalculatorOSGiNodeTestCase.java | 156 ++ .../dosgi/test/CalculatorOSGiTestCase.java | 99 ++ .../calculator/dosgi/test/OSGiTestBundles.java | 362 +++++ .../calculator/dosgi/META-INF/MANIFEST.MF | 20 + .../calculator/dosgi/META-INF/sca-contribution.xml | 24 + .../dosgi/OSGI-INF/blueprint/calculator-module.xml | 43 + .../dosgi/OSGI-INF/calculator-component.xml | 36 + .../calculator-service-descriptions.xml | 55 + .../calculator/dosgi/bundle.componentType | 63 + .../calculator/dosgi/calculator.composite | 53 + .../dosgi/operations/META-INF/MANIFEST.MF | 22 + .../dosgi/operations/META-INF/sca-contribution.xml | 23 + .../dosgi/operations/OSGI-INF/add-component.xml | 25 + .../OSGI-INF/blueprint/operations-module.xml | 40 + .../dosgi/operations/OSGI-INF/divide-component.xml | 25 + .../operations/OSGI-INF/multiply-component.xml | 25 + .../operations/OSGI-INF/subtract-component.xml | 25 + .../dosgi/operations/bundle.componentType | 54 + .../dosgi/operations/operations.composite | 43 + .../calculator/dosgi/sca/META-INF/MANIFEST.MF | 12 + .../dosgi/sca/META-INF/sca-contribution.xml | 24 + .../dosgi/sca/OSGI-INF/sca/calculator.composite | 70 + .../java/dynamic/modules/node-impl/LICENSE | 205 +++ .../dynamic/modules/node-impl/META-INF/MANIFEST.MF | 40 + .../java/dynamic/modules/node-impl/NOTICE | 6 + .../java/dynamic/modules/node-impl/pom.xml | 108 ++ .../xml/NodeConfigurationATOMProcessor.java | 160 ++ .../xml/NodeConfigurationProcessor.java | 237 +++ .../tuscany/sca/node/impl/NodeFactoryImpl.java | 524 +++++++ .../org/apache/tuscany/sca/node/impl/NodeImpl.java | 382 +++++ .../org/apache/tuscany/sca/node/impl/NodeUtil.java | 43 + .../tuscany/sca/node/management/NodeManager.java | 65 + .../sca/node/management/NodeManagerMBean.java | 30 + ...ca.contribution.processor.StAXArtifactProcessor | 18 + .../org.apache.tuscany.sca.node.NodeFactory | 18 + ...sca.node.configuration.NodeConfigurationFactory | 18 + .../impl/node-impl-validation-messages.properties | 22 + .../node-impl/src/test/java/hello/HelloWorld.java | 30 + .../src/test/java/hello/HelloWorldImpl.java | 30 + .../xml/NodeConfigurationProcessorTestCase.java | 86 ++ .../tuscany/sca/node/impl/NodeImplTestCase.java | 218 +++ .../tuscany/sca/node/impl/NodeUtilTestCase.java | 48 + .../src/test/resources/HelloWorld.composite | 30 + .../test/resources/META-INF/sca-contribution.xml | 24 + .../tuscany/sca/node/configuration/node1.xml | 58 + .../node/configuration/test-node-factory.config | 19 + .../node-impl/src/test/resources/test.properties | 22 + .../dynamic/modules/node-launcher-equinox/LICENSE | 205 +++ .../node-launcher-equinox/META-INF/MANIFEST.MF | 21 + .../dynamic/modules/node-launcher-equinox/NOTICE | 6 + .../dynamic/modules/node-launcher-equinox/pom.xml | 126 ++ .../sca/node/equinox/launcher/Contribution.java | 48 + .../launcher/ContributionLocationHelper.java | 66 + .../equinox/launcher/DomainManagerLauncher.java | 173 +++ .../sca/node/equinox/launcher/EquinoxHost.java | 658 ++++++++ .../node/equinox/launcher/FrameworkLauncher.java | 254 ++++ .../node/equinox/launcher/LauncherException.java | 55 + .../node/equinox/launcher/NodeDaemonLauncher.java | 160 ++ .../sca/node/equinox/launcher/NodeLauncher.java | 375 +++++ .../sca/node/equinox/launcher/NodeLauncher2.java | 217 +++ .../node/equinox/launcher/NodeLauncherCommand.java | 57 + .../node/equinox/launcher/NodeLauncherUtil.java | 1362 +++++++++++++++++ .../sca/node/equinox/launcher/NodeMain.java | 62 + .../sca/node/equinox/launcher/J2SE-1.5.profile | 150 ++ .../sca/node/equinox/launcher/JavaSE-1.6.profile | 185 +++ .../sca/node/equinox/launcher/axiom-api-1.2.7.MF | 47 + .../sca/node/equinox/launcher/axiom-api-1.2.8.MF | 49 + .../node/equinox/launcher/axis2-kernel-1.4.1.MF | 2 + .../node/equinox/launcher/axis2-kernel-1.5.1.MF | 39 + .../equinox/launcher/axis2-transport-http-1.5.1.MF | 12 + .../sca/node/equinox/launcher/ode-agents-1.3.2.MF | 7 + .../node/equinox/launcher/ode-bpel-api-1.3.2.MF | 58 + .../equinox/launcher/ode-bpel-compiler-1.3.2.MF | 170 +++ .../node/equinox/launcher/ode-bpel-dao-1.3.2.MF | 23 + .../node/equinox/launcher/ode-bpel-epr-1.3.2.MF | 79 + .../node/equinox/launcher/ode-bpel-obj-1.3.2.MF | 40 + .../equinox/launcher/ode-bpel-runtime-1.3.2.MF | 256 ++++ .../equinox/launcher/ode-bpel-schemas-1.3.2.MF | 40 + .../node/equinox/launcher/ode-bpel-store-1.3.2.MF | 97 ++ .../equinox/launcher/ode-dao-hibernate-1.3.2.MF | 83 + .../sca/node/equinox/launcher/ode-dao-jpa-1.3.2.MF | 44 + .../sca/node/equinox/launcher/ode-jacob-1.3.2.MF | 46 + .../node/equinox/launcher/ode-jacob-ap-1.3.2.MF | 19 + .../equinox/launcher/ode-scheduler-simple-1.3.2.MF | 24 + .../sca/node/equinox/launcher/ode-utils-1.3.2.MF | 134 ++ .../node/equinox/launcher/woden-impl-dom-1.0M8.MF | 226 +++ .../sca/node/equinox/launcher/xercesImpl-2.9.0.MF | 421 ++++++ .../java/dynamic/modules/node-launcher/LICENSE | 205 +++ .../modules/node-launcher/META-INF/MANIFEST.MF | 15 + .../java/dynamic/modules/node-launcher/NOTICE | 6 + .../java/dynamic/modules/node-launcher/pom.xml | 64 + .../tuscany/sca/node/launcher/Contribution.java | 48 + .../sca/node/launcher/DomainManagerLauncher.java | 180 +++ .../sca/node/launcher/LauncherException.java | 55 + .../sca/node/launcher/NodeDaemonLauncher.java | 169 +++ .../tuscany/sca/node/launcher/NodeLauncher.java | 364 +++++ .../sca/node/launcher/NodeLauncherUtil.java | 567 +++++++ .../apache/tuscany/sca/node/launcher/NodeMain.java | 62 + .../sca/node/launcher/NodeServletFilter.java | 130 ++ .../node/launcher/ServiceInvocationTestCase.java | 77 + .../java/dynamic/modules/policy-logging/LICENSE | 205 +++ .../modules/policy-logging/META-INF/MANIFEST.MF | 28 + .../java/dynamic/modules/policy-logging/NOTICE | 6 + .../java/dynamic/modules/policy-logging/pom.xml | 53 + .../apache/tuscany/sca/policy/logging/Logging.java | 46 + .../JDKLoggingImplementationPolicyProvider.java | 48 + .../sca/policy/logging/jdk/JDKLoggingPolicy.java | 97 ++ .../logging/jdk/JDKLoggingPolicyBuilder.java | 84 ++ .../logging/jdk/JDKLoggingPolicyInterceptor.java | 171 +++ .../logging/jdk/JDKLoggingPolicyProcessor.java | 135 ++ .../jdk/JDKLoggingPolicyProviderFactory.java | 68 + .../jdk/JDKLoggingReferencePolicyProvider.java | 45 + .../jdk/JDKLoggingServicePolicyProvider.java | 44 + ...ache.tuscany.sca.assembly.builder.PolicyBuilder | 17 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + ....apache.tuscany.sca.definitions.xml.Definitions | 17 + ...ache.tuscany.sca.provider.PolicyProviderFactory | 20 + .../tuscany/sca/policy/logging/definitions.xml | 38 + .../sca/policy/logging/jdk/PolicyReadTestCase.java | 94 ++ .../sca/policy/logging/jdk/mock_policies.xml | 23 + .../java/dynamic/modules/policy-security/LICENSE | 205 +++ .../modules/policy-security/META-INF/MANIFEST.MF | 88 ++ .../java/dynamic/modules/policy-security/NOTICE | 6 + .../java/dynamic/modules/policy-security/pom.xml | 52 + .../basic/BasicAuthenticationPolicy.java | 65 + .../basic/BasicAuthenticationPolicyProcessor.java | 123 ++ .../basic/BasicAuthenticationPrincipal.java | 80 + .../authentication/token/TokenPrincipal.java | 75 + .../policy/authorization/AuthorizationPolicy.java | 83 + .../AuthorizationPolicyProcessor.java | 150 ++ ...ityIdentityImplementationPolicyInterceptor.java | 83 + ...curityIdentityImplementationPolicyProvider.java | 89 ++ .../policy/identity/SecurityIdentityPolicy.java | 75 + .../identity/SecurityIdentityPolicyProcessor.java | 131 ++ .../SecurityIdentityPolicyProviderFactory.java | 56 + .../tuscany/sca/policy/security/SecurityUtil.java | 65 + .../sca/policy/security/http/ssl/HTTPSPolicy.java | 130 ++ .../security/http/ssl/HTTPSPolicyProcessor.java | 156 ++ ...AuthenticationImplementationPolicyProvider.java | 91 ++ .../jaas/JaasAuthenticationInterceptor.java | 81 + .../security/jaas/JaasAuthenticationPolicy.java | 71 + .../jaas/JaasAuthenticationPolicyHandler.java | 71 + .../jaas/JaasAuthenticationPolicyProcessor.java | 148 ++ .../JaasAuthenticationPolicyProviderFactory.java | 60 + ...ca.contribution.processor.StAXArtifactProcessor | 29 + ....apache.tuscany.sca.definitions.xml.Definitions | 18 + ...ache.tuscany.sca.provider.PolicyProviderFactory | 21 + .../tuscany/sca/policy/security/definitions.xml | 35 + .../sca/policy/security/tuscany_definitions.xml | 30 + .../policy-security-validation-messages.properties | 28 + .../policy/security/PolicyProcessorTestCase.java | 88 ++ .../policy/security/mock_policy_definitions.xml | 80 + .../META-INF/MANIFEST.MF | 35 + .../policy-transaction-runtime-geronimo/pom.xml | 70 + .../geronimo/GeronimoTransactionManagerHelper.java | 36 + .../geronimo/TransactionManagerWrapper.java | 90 ++ .../geronimo/TransactionModuleActivator.java | 89 ++ .../org.apache.tuscany.sca.core.ModuleActivator | 18 + ...cy.transaction.runtime.TransactionManagerHelper | 17 + .../TransactionManagerHelperTestCaseOFF.java | 196 +++ .../META-INF/MANIFEST.MF | 33 + .../modules/policy-transaction-runtime/pom.xml | 63 + .../runtime/IncompatibleIntentException.java | 44 + .../TransactionImplementationPolicyProvider.java | 51 + .../transaction/runtime/TransactionIntent.java | 34 + .../runtime/TransactionInterceptor.java | 151 ++ .../runtime/TransactionManagerHelper.java | 252 ++++ .../runtime/TransactionPolicyProviderFactory.java | 60 + .../TransactionReferencePolicyProvider.java | 51 + .../runtime/TransactionServicePolicyProvider.java | 51 + .../transaction/runtime/TransactionalAction.java | 31 + ...ache.tuscany.sca.provider.PolicyProviderFactory | 19 + .../dynamic/modules/policy-transaction/LICENSE | 205 +++ .../policy-transaction/META-INF/MANIFEST.MF | 31 + .../java/dynamic/modules/policy-transaction/NOTICE | 6 + .../dynamic/modules/policy-transaction/pom.xml | 51 + .../sca/policy/transaction/TransactionPolicy.java | 49 + .../transaction/TransactionPolicyFactory.java | 34 + .../transaction/TransactionPolicyProcessor.java | 103 ++ .../impl/TransactionPolicyFactoryImpl.java | 36 + .../transaction/impl/TransactionPolicyImpl.java | 61 + ...ca.contribution.processor.StAXArtifactProcessor | 19 + ....apache.tuscany.sca.definitions.xml.Definitions | 17 + ...sca.policy.transaction.TransactionPolicyFactory | 19 + .../src/main/resources/log4j.properties | 29 + .../tuscany/sca/policy/transaction/definitions.xml | 57 + .../sca/policy/transaction/PolicyReadTestCase.java | 58 + .../java/dynamic/modules/policy-wspolicy/LICENSE | 205 +++ .../modules/policy-wspolicy/META-INF/MANIFEST.MF | 39 + .../java/dynamic/modules/policy-wspolicy/NOTICE | 6 + .../java/dynamic/modules/policy-wspolicy/pom.xml | 136 ++ .../tuscany/sca/policy/wspolicy/WSPolicy.java | 74 + .../sca/policy/wspolicy/WSPolicyBuilder.java | 173 +++ .../sca/policy/wspolicy/xml/WSPolicyProcessor.java | 180 +++ ...ache.tuscany.sca.assembly.builder.PolicyBuilder | 17 + ...ca.contribution.processor.StAXArtifactProcessor | 20 + .../sca/policy/wspolicy/TestModelResolver.java | 64 + .../policy/wspolicy/TuscanyWSPolicyAssertion.java | 40 + .../TuscanyWSPolicyAssertionProcessor.java | 60 + .../sca/policy/wspolicy/WSPolicyTestCase.java | 199 +++ .../wspolicy/xml/WSPolicyProcessorTestCase.java | 140 ++ .../sca/policy/wspolicy/test_definitions.xml | 192 +++ sandbox/sebastien/java/dynamic/modules/pom.xml | 204 +++ .../sebastien/java/dynamic/modules/sca-api/LICENSE | 261 ++++ .../dynamic/modules/sca-api/META-INF/MANIFEST.MF | 16 + .../sebastien/java/dynamic/modules/sca-api/NOTICE | 9 + .../sebastien/java/dynamic/modules/sca-api/pom.xml | 35 + .../java/org/oasisopen/sca/ComponentContext.java | 194 +++ .../src/main/java/org/oasisopen/sca/Constants.java | 90 ++ .../org/oasisopen/sca/InvalidServiceException.java | 60 + .../org/oasisopen/sca/NoSuchDomainException.java | 56 + .../org/oasisopen/sca/NoSuchServiceException.java | 56 + .../java/org/oasisopen/sca/RequestContext.java | 71 + .../java/org/oasisopen/sca/ResponseDispatch.java | 46 + .../java/org/oasisopen/sca/ServiceReference.java | 36 + .../org/oasisopen/sca/ServiceRuntimeException.java | 55 + .../oasisopen/sca/ServiceUnavailableException.java | 62 + .../sca/annotation/AllowsPassByReference.java | 39 + .../org/oasisopen/sca/annotation/AsyncFault.java | 27 + .../oasisopen/sca/annotation/AsyncInvocation.java | 29 + .../oasisopen/sca/annotation/Authentication.java | 51 + .../oasisopen/sca/annotation/Authorization.java | 32 + .../org/oasisopen/sca/annotation/Callback.java | 29 + .../oasisopen/sca/annotation/ComponentName.java | 21 + .../oasisopen/sca/annotation/Confidentiality.java | 50 + .../org/oasisopen/sca/annotation/Constructor.java | 22 + .../java/org/oasisopen/sca/annotation/Context.java | 26 + .../java/org/oasisopen/sca/annotation/Destroy.java | 22 + .../org/oasisopen/sca/annotation/EagerInit.java | 22 + .../java/org/oasisopen/sca/annotation/Init.java | 22 + .../org/oasisopen/sca/annotation/Integrity.java | 51 + .../java/org/oasisopen/sca/annotation/Intent.java | 38 + .../sca/annotation/ManagedSharedTransaction.java | 32 + .../sca/annotation/ManagedTransaction.java | 50 + .../sca/annotation/MutualAuthentication.java | 32 + .../sca/annotation/NoManagedTransaction.java | 32 + .../java/org/oasisopen/sca/annotation/OneWay.java | 23 + .../org/oasisopen/sca/annotation/PolicySets.java | 30 + .../org/oasisopen/sca/annotation/Property.java | 58 + .../org/oasisopen/sca/annotation/Qualifier.java | 24 + .../org/oasisopen/sca/annotation/Reference.java | 56 + .../org/oasisopen/sca/annotation/Remotable.java | 23 + .../org/oasisopen/sca/annotation/Requires.java | 32 + .../java/org/oasisopen/sca/annotation/Scope.java | 36 + .../java/org/oasisopen/sca/annotation/Service.java | 45 + .../java/org/oasisopen/sca/annotation/package.html | 3 + .../org/oasisopen/sca/client/SCAClientFactory.java | 152 ++ .../sca/client/SCAClientFactoryFinder.java | 35 + .../client/impl/SCAClientFactoryFinderImpl.java | 289 ++++ .../src/main/java/org/oasisopen/sca/package.html | 3 + .../java/dynamic/modules/sca-client-impl/LICENSE | 205 +++ .../modules/sca-client-impl/META-INF/MANIFEST.MF | 24 + .../java/dynamic/modules/sca-client-impl/NOTICE | 6 + .../java/dynamic/modules/sca-client-impl/pom.xml | 47 + .../client/impl/SCAClientFactoryFinderImpl.java | 49 + .../sca/client/impl/SCAClientFactoryImpl.java | 202 +++ .../sca/client/impl/SCAClientFactoryImpl2.java | 77 + .../tuscany/sca/client/impl/SCAClientHandler.java | 210 +++ .../sca/client/impl/SCAClientModuleActivator.java | 37 + .../sca/client/impl/SCAClientProxyHandler.java | 76 + .../org.apache.tuscany.sca.core.ModuleActivator | 18 + .../org.oasisopen.sca.client.SCAClientFactory | 18 + .../dynamic/modules/shell/META-INF/MANIFEST.MF | 21 + .../sebastien/java/dynamic/modules/shell/pom.xml | 50 + .../java/org/apache/tuscany/sca/shell/Shell.java | 550 +++++++ .../sca/shell/jline/CompositeURICompletor.java | 66 + .../tuscany/sca/shell/jline/ICURICompletor.java | 47 + .../org/apache/tuscany/sca/shell/jline/JLine.java | 88 ++ .../tuscany/sca/shell/jline/TShellCompletor.java | 166 ++ .../sebastien/java/dynamic/modules/stripes/LICENSE | 241 +++ .../dynamic/modules/stripes/META-INF/MANIFEST.MF | 29 + .../sebastien/java/dynamic/modules/stripes/NOTICE | 12 + .../sebastien/java/dynamic/modules/stripes/pom.xml | 60 + .../apache/tuscany/sca/stripes/TuscanyHelper.java | 298 ++++ .../tuscany/sca/stripes/TuscanyInterceptor.java | 73 + .../sca/stripes/TuscanyInterceptorSupport.java | 57 + .../java/dynamic/modules/tracing-aspectj/LICENSE | 205 +++ .../modules/tracing-aspectj/META-INF/MANIFEST.MF | 13 + .../java/dynamic/modules/tracing-aspectj/NOTICE | 6 + .../modules/tracing-aspectj/maven-eclipse.xml | 8 + .../java/dynamic/modules/tracing-aspectj/pom.xml | 75 + .../apache/tuscany/sca/aspectj/LoggingAspect.java | 102 ++ .../tuscany/sca/aspectj/SimpleTracingAspect.java | 85 ++ .../apache/tuscany/sca/aspectj/TimingAspect.java | 53 + .../apache/tuscany/sca/aspectj/TracingAspect.java | 92 ++ .../tuscany/sca/aspectj/UserTimingAspect.java | 45 + .../src/main/resources/META-INF/aop.xml | 42 + .../tuscany/sca/aspectj/TracingTestCase.java | 41 + .../dynamic/modules/web-javascript-dojo/LICENSE | 238 +++ .../web-javascript-dojo/META-INF/MANIFEST.MF | 26 + .../dynamic/modules/web-javascript-dojo/NOTICE | 11 + .../modules/web-javascript-dojo/build-dojo.xml | 64 + .../dynamic/modules/web-javascript-dojo/pom.xml | 120 ++ .../web/javascript/dojo/DojoResourceServlet.java | 95 ++ .../dojo/DojoWidgetJavascriptProvider.java | 106 ++ ...vascript.WidgetImplementationJavascriptProvider | 19 + .../src/main/resources/tuscany/AtomService.js | 141 ++ .../java/dynamic/modules/web-javascript/LICENSE | 205 +++ .../modules/web-javascript/META-INF/MANIFEST.MF | 19 + .../java/dynamic/modules/web-javascript/NOTICE | 6 + .../java/dynamic/modules/web-javascript/pom.xml | 46 + .../javascript/ComponentJavaScriptGenerator.java | 60 + ...ComponentJavaScriptGeneratorExtensionPoint.java | 57 + ...ComponentJavaScriptGeneratorExtensionPoint.java | 158 ++ ...efaultJavascriptProxyFactoryExtensionPoint.java | 231 +++ .../sca/web/javascript/JavascriptProxyFactory.java | 79 + .../JavascriptProxyFactoryExtensionPoint.java | 57 + ...ript.ComponentJavaScriptGeneratorExtensionPoint | 18 + ...javascript.JavascriptProxyFactoryExtensionPoint | 18 + .../web-javascript-validation-messages.properties | 21 + .../sebastien/java/dynamic/modules/wink/LICENSE | 241 +++ .../java/dynamic/modules/wink/META-INF/MANIFEST.MF | 18 + sandbox/sebastien/java/dynamic/modules/wink/NOTICE | 12 + .../sebastien/java/dynamic/modules/wink/pom.xml | 69 + .../tuscany/sca/wink/PropertyInjectable.java | 66 + .../tuscany/sca/wink/ReferenceInjectable.java | 66 + .../sca/wink/TuscanyDeploymentConfiguration.java | 38 + .../tuscany/sca/wink/TuscanyInjectableFactory.java | 52 + sandbox/sebastien/java/dynamic/modules/xsd/LICENSE | 205 +++ .../java/dynamic/modules/xsd/META-INF/MANIFEST.MF | 46 + sandbox/sebastien/java/dynamic/modules/xsd/NOTICE | 6 + sandbox/sebastien/java/dynamic/modules/xsd/pom.xml | 65 + .../apache/tuscany/sca/xsd/DefaultXSDFactory.java | 30 + .../org/apache/tuscany/sca/xsd/XSDFactory.java | 36 + .../org/apache/tuscany/sca/xsd/XSDefinition.java | 118 ++ .../tuscany/sca/xsd/impl/XSDFactoryImpl.java | 35 + .../tuscany/sca/xsd/impl/XSDefinitionImpl.java | 232 +++ .../tuscany/sca/xsd/xml/XSDDocumentProcessor.java | 106 ++ .../tuscany/sca/xsd/xml/XSDModelResolver.java | 391 +++++ ...sca.contribution.processor.URLArtifactProcessor | 20 + ...tuscany.sca.contribution.resolver.ModelResolver | 19 + .../services/org.apache.tuscany.sca.xsd.XSDFactory | 18 + .../xsd-xml-validation-messages.properties | 23 + .../sca/xsd/xml/XSDDocumentProcessorTestCase.java | 96 ++ .../xsd/src/test/resources/xsd/greeting.xsd | 29 + .../modules/xsd/src/test/resources/xsd/name.xsd | 29 + 3204 files changed, 327006 insertions(+) create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConfiguredOperationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/DefaultBeanModelProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/EndpointProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/EndpointReferenceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Messages.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/PolicySubjectProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/SCABindingProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsDocumentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/Messages.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ExtensionTypeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/Messages.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunction.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunctionResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd03.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/assembly/xml/assembly-xml-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/definitions/xml/definitions-xml-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/policy/xml/policy-xml-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/MultiplicityReadWriteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadAllTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteLocalCompositeTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolveTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/StripURISpacesTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestSCABindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestSCABindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteNamespacesTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/MockPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/ReadDocumentTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/TestPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunctionResolverTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/ReadDocumentTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/TestPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/Calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorImpl.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorURISpaces.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/Multiplicity.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/NestedCalculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllCalculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllDivide.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllPolicyCalculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/another_test_definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/local.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/test_definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/definitions/xml/test_definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/Calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/java/org/apache/tuscany/sca/assembly/xsd/Constants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/XMLSchema.dtd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/datatypes.dtd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-secext-1.0.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-utility-1.0.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/ws-addr.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/ws-policy.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/wsdli.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/xml.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/xmldsig-core-schema.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-1.1-cd05.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ejb-1.1-cd01.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-jca-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-jms-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-sca-1.1-cd05.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ws-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ws-callback-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-1.1-cd05.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-c-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-cpp-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-java-1.1-cd02.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-core-1.1-cd05.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-definitions-1.1-cd05.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-bpel-1.1-cd03.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-c-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-composite-1.1-cd05.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-cpp-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-java-1.1-cd02.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-spring-1.1-cd01.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-c-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-cpp-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-java-1.1-cd04.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-wsdl-1.1-cd05.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-jee-1.1-wd03.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-policy-1.1-cd03.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-policy-1.1-intents-definitions-cd03.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-atom.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-dwr.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-http.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jms.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jsonrpc.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rest.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rmi.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rss.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-osgi.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-script.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-widget.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractContract.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractProperty.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AssemblyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Base.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Binding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Callback.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Component.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentProperty.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Composite.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/CompositeReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/CompositeService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ConfiguredOperation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Contract.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DefaultAssemblyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/EndpointReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extension.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Implementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Multiplicity.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/OperationSelector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/OperationsConfigurator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Property.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Reference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/SCABinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/SCABindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Service.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Wire.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/WireFormat.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BindingBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ContractBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ImplementationBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/Messages.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/PolicyBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/WireBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractPropertyImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AssemblyFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/BaseImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/BindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CallbackImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentPropertyImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ConfiguredOperationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ContractImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ImplementationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/PropertyImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/WireImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefaultDefinitionsFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/Definitions.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsBuilderException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/impl/DefinitionsBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/impl/DefinitionsImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/util/DefinitionsUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/Compatibility.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/IncompatibleInterfaceContractException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContract.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidAnnotationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidCallbackException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidInterfaceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidOperationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/OverloadedOperationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/util/ElementInfo.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/util/FaultException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/util/TypeInfo.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/util/XMLType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/BindingType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/DefaultPolicyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/ExtensionType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/ImplementationType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/Intent.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/IntentMap.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/PolicyAttachment.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/PolicyContainer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/PolicyExpression.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/PolicyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/PolicySubject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/Qualifier.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/impl/BindingTypeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/impl/ExtensionTypeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/impl/ImplementationTypeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/impl/IntentMapImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyExpressionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/impl/QualifierImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/policy/util/PolicyHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.AssemblyFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.SCABindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.BuilderExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.DefinitionsFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.InterfaceContractMapper create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.PolicyFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/org/apache/tuscany/sca/assembly/builder/assembly-conformance-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/org/apache/tuscany/sca/assembly/builder/assembly-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/org/apache/tuscany/sca/assembly/builder/assembly-validation-messages_it.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/main/resources/org/apache/tuscany/sca/assembly/builder/definitions-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/AssemblyFactoryTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestInterfaceContract.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestOperation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/test/java/org/apache/tuscany/sca/interfacedef/impl/ContractCompatibilityTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/test/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/assembly/src/test/java/org/apache/tuscany/sca/policy/PolicyFactoryTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-js-dojo/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-js-dojo/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-js-dojo/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-js-dojo/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-js-dojo/src/main/java/org/apache/tuscany/sca/binding/atom/js/dojo/AtomBindingJavascriptProxyFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-js-dojo/src/main/resources/META-INF/services/org.apache.tuscany.sca.web.javascript.JavascriptProxyFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/collection/Collection.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/collection/MediaCollection.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/collection/NotFoundException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/AbstractProviderConsumerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/AtomDeleteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/AtomFeedNonCollectionTest.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/AtomGetTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/AtomPostTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/AtomPutTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/Consumer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/ConsumerProviderAtomTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/ContentNegotiationTest.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/CustomerClient.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/CustomerClientImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/CustomerCollectionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/CustomerNonCollectionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/MediaCollectionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/MediaCollectionTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/Provider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/ProviderEntryEntityTagsTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/ProviderFeedEntityTagsTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/ProviderServiceDocumentTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/aggregator/Aggregator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/aggregator/AggregatorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/aggregator/AggregatorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/aggregator/Sort.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/aggregator/SortImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/news/Headline.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/news/NewsService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/news/NewsServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/news/NewsServiceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/java/org/apache/tuscany/sca/binding/atom/util/AtomTestCaseUtils.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/resources/ReceiptToms.gif create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/resources/ReceiptValue.jpg create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/resources/org/apache/tuscany/sca/binding/atom/Consumer.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/resources/org/apache/tuscany/sca/binding/atom/Provider.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/resources/org/apache/tuscany/sca/binding/atom/ProviderNonCollection.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/resources/org/apache/tuscany/sca/binding/atom/ReceiptProvider.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/resources/org/apache/tuscany/sca/binding/atom/aggregator/FeedAggregator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom-runtime/src/test/resources/org/apache/tuscany/sca/binding/atom/news/news.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/META-INF/services/org.apache.tuscany.sca.binding.atom.AtomBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/src/main/java/org/apache/tuscany/sca/binding/atom/AtomBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/src/main/java/org/apache/tuscany/sca/binding/atom/AtomBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/src/main/java/org/apache/tuscany/sca/binding/atom/impl/AtomBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/src/main/java/org/apache/tuscany/sca/binding/atom/impl/AtomBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.atom.AtomBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-atom/src/test/java/org/apache/tuscany/sca/binding/atom/AtomBindingProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/CorbaBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/CorbaInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/CorbaReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/CorbaServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/exceptions/CorbaException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/exceptions/RequestConfigurationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/meta/CorbaArray.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/meta/CorbaUnionElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/meta/CorbaUnionElementType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/reference/DynaCorbaRequest.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/reference/DynaCorbaResponse.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/reference/InterfaceInstanceCreator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/reference/InterfaceMethodInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/ComponentInvocationProxy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/DynaCorbaServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/InvocationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/InvocationProxy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/OperationTypes.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/AnnotationAttributes.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/NodeType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/TypeTree.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/TypeTreeCreator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/TypeTreeNode.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/UnionAttributes.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/ArrayTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/BooleanTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/ByteTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/CharTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/DoubleTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/EnumTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/FloatTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/IntTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/LongTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/ReferenceTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/SequenceTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/ShortTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/StringTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/StructTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/TypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/TypeHelpersProxy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/UnionTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/types/util/Utils.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/util/MethodFinder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/util/OperationMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/CorbaServantTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/CorbaTypesTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/MappingTestInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/MethodFinderTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/OperationMappingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/TestConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/ArraysUnionsTests.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/ArraysUnionsTestsHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/ArraysUnionsTestsHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/ArraysUnionsTestsOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/InnerUnion.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/InnerUnionHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/InnerUnionHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/RichUnion.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/RichUnionHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/RichUnionHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/StringArrayHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/StringArrayHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/TestStruct.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/TestStructHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/TestStructHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/_ArraysUnionsTestsImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/arrays_unions/_ArraysUnionsTestsStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/enums/Color.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/enums/ColorHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/enums/ColorHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/enums/EnumManager.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/enums/EnumManagerHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/enums/EnumManagerHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/enums/EnumManagerOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/enums/_EnumManagerImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/enums/_EnumManagerStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/Calc.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcPackage/Arguments.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcPackage/ArgumentsHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcPackage/ArgumentsHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcPackage/DivByZero.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcPackage/DivByZeroHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcPackage/DivByZeroHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcPackage/NotSupported.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcPackage/NotSupportedHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/CalcPackage/NotSupportedHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/_CalcImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/exceptions/_CalcStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/ArraysSetter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/ArraysSetterHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/ArraysSetterHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/ArraysSetterOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/PrimitivesSetter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/PrimitivesSetterHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/PrimitivesSetterHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/PrimitivesSetterOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/RemoteObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/RemoteObjectHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/RemoteObjectHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/RemoteObjectOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/SimpleStruct.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/SimpleStructHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/SimpleStructHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/SomeStruct.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/SomeStructHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/SomeStructHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/TestObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/TestObjectHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/TestObjectHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/TestObjectOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/_ArraysSetterImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/_ArraysSetterStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/_PrimitivesSetterImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/_PrimitivesSetterStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/_RemoteObjectImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/_RemoteObjectStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/_TestObjectImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/_TestObjectStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/boolean_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/boolean_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/char_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/char_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/double_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/double_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/float_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/float_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_long_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_long_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_seq1Helper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_seq1Holder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_seq2Helper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_seq2Holder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_seq3Helper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/long_seq3Holder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/octet_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/octet_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/remote_object_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/remote_object_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/short_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/short_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/string_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/string_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/unsigned_long_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/unsigned_long_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/unsigned_long_long_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/unsigned_long_long_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/unsigned_short_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/unsigned_short_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/wchar_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/wchar_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/wstring_listHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/generated/wstring_listHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/ArraysTestStruct.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/Calc.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/DummyObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InnerUnion.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidCorbaArray.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidEnum1.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidEnum2.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidEnum3.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidStruct1.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidStruct2.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidStruct3.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidUnion1.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidUnion2.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidUnion3.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidUnion4.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/InvalidUnion5.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/NonCorbaException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/RichUnion.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/SimpleStruct.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/hierarchy/SomeStruct.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/DummyObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/DummyObjectHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/DummyObjectHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/DummyObjectOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/ObjectManager.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/ObjectManagerHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/ObjectManagerHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/ObjectManagerOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/_DummyObjectImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/_DummyObjectStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/_ObjectManagerImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/references/_ObjectManagerStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/ArraysSetterServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/ArraysUnionsServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/ArraysUnionsTuscanyServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/CalcServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/DummyObjectServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/EnumManagerServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/InvalidTestObjectServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/InvalidTypesServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/NonCorbaServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/ObjectManagerServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/PrimitivesSetterServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/servants/TestObjectServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestDataType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestInterfaceContract.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestOperation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestRuntimeComponentService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestRuntimeWire.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/resources/arrays_unions.idl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/resources/enums.idl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/resources/exceptions.idl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/resources/general_tests.idl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba-runtime/src/test/resources/references.idl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.corba.CorbaBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-corba/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/corba/ClassLoadingUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/corba/DynamicStubClassLoader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/corba/Java2IDLUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/corba/ObjectInputStreamExt.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/corba/StubMethodInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/corba/UtilInitializer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/provider/EJBBindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/provider/EJBBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/provider/EJBBindingReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBLocator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBStubHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/util/InterfaceInfo.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/util/JavaReflectionAdapter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/util/MethodInfo.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/java/org/apache/tuscany/sca/binding/ejb/util/NamingEndpoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/main/resources/binding-ejb-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/account/BankManagerFacade.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/account/Customer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/account/CustomerImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/calculator/AddService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/calculator/AddServiceHome.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/org/apache/geronimo/samples/bank/ejb/BankManagerFacade.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/org/apache/geronimo/samples/bank/ejb/BankManagerFacadeHome.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/EJBReferenceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/MockServer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/SocketTracer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb-runtime/src/test/resources/account/account.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/EJBBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/EJBBindingException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/EJBBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/impl/EJBBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/impl/EJBBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/impl/EJBBindingProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.ejb.EJBBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/resources/binding-ejb-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ejb/src/main/resources/org/apache/tuscany/sca/binding/ejb/policy/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/main/java/org/apache/tuscany/sca/binding/hazelcast/EndpointStash.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/main/java/org/apache/tuscany/sca/binding/hazelcast/HazelcastBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/main/java/org/apache/tuscany/sca/binding/hazelcast/HazelcastBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/main/java/org/apache/tuscany/sca/binding/hazelcast/HazelcastReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/main/java/org/apache/tuscany/sca/binding/hazelcast/HazelcastServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/main/java/org/apache/tuscany/sca/binding/hazelcast/ReferenceInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/main/java/org/apache/tuscany/sca/binding/hazelcast/ServiceInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/test/java/org/apache/tuscany/sca/binding/hazelcast/BadStringException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/test/java/org/apache/tuscany/sca/binding/hazelcast/ComplexType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/test/java/org/apache/tuscany/sca/binding/hazelcast/HazelcastBindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/test/java/org/apache/tuscany/sca/binding/hazelcast/TestService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/test/java/org/apache/tuscany/sca/binding/hazelcast/TestServiceClient.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/test/java/org/apache/tuscany/sca/binding/hazelcast/TestServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/test/resources/client.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/test/resources/client2.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-hazelcast-runtime/src/test/resources/service.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPGetListenerServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceListenerServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/HTTPBindingCacheTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/HTTPBindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/NotModifiedException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/PreconditionFailedException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/TestBindingCacheImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/TestGetImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/TestServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/resources/content/test.html create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/resources/test.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http-runtime/src/test/resources/testCache.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.http.HTTPBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/host/DefaultJMSHostExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/host/DefaultJMSServiceListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/host/DefaultJMSServiceListenerFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/host/DefaultServiceInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/host/JMSHostExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/host/JMSServiceListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/host/JMSServiceListenerDetails.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/host/JMSServiceListenerFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/runtime/OperationSelectorJMSDefaultProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/runtime/OperationSelectorJMSDefaultServiceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/runtime/OperationSelectorJMSDefaultServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsuserprop/runtime/OperationSelectorJMSUserPropProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsuserprop/runtime/OperationSelectorJMSUserPropServiceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsuserprop/runtime/OperationSelectorJMSUserPropServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/provider/JMSTokenAuthenticationPolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/provider/JMSTokenAuthenticationReferencePolicyInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/provider/JMSTokenAuthenticationReferencePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/provider/JMSTokenAuthenticationServicePolicyInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/provider/JMSTokenAuthenticationServicePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/provider/JMSHeaderPolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/provider/JMSHeaderReferencePolicyInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/provider/JMSHeaderReferencePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/AbstractMessageProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/BytesMessageProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultJMSResourceFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSResourceFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSResourceFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSResourceFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/ObjectMessageProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/RRBJMSBindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/TextMessageProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLBytesMessageProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wire/CallbackDestinationInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wire/OperationPropertiesInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesReferenceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectReferenceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectServiceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstext/runtime/WireFormatJMSTextProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstext/runtime/WireFormatJMSTextReferenceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstext/runtime/WireFormatJMSTextReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstext/runtime/WireFormatJMSTextServiceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstext/runtime/WireFormatJMSTextServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.OperationSelectorProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.WireFormatProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldClientImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/test/java/org/apache/tuscany/sca/binding/jms/HelloWorldServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/test/java/org/apache/tuscany/sca/binding/jms/OperationSelectionTestCaseFIXME.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/test/resources/simple/client.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms-runtime/src/test/resources/simple/service.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/BindingProperty.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBindingConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBindingException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/OperationSelectorJMSDefault.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/OperationSelectorJMSDefaultProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/OperationSelectorJMSUserProp.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/OperationSelectorJMSUserPropProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/JMSHeaderPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/JMSHeaderPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSBytes.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSBytesProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSBytesXML.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSBytesXMLProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSDefault.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSDefaultProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSObjectProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSText.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSTextProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSTextXML.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/WireFormatJMSTextXMLProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.SCADefinitionsProvider create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/resources/binding-jms-policy-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/resources/binding-jms-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/main/resources/org/apache/tuscany/sca/binding/jms/policy/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/JMSBindingProcessorWriteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jms/src/test/java/org/apache/tuscany/sca/binding/jms/policy/PolicyProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonp/runtime/JSONPBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonp/runtime/JSONPInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonp/runtime/JSONPReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonp/runtime/JSONPServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonp/runtime/JSONPServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/test/java/helloworld/HelloWorldClient.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/test/java/helloworld/HelloWorldImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/test/java/helloworld/HelloWorldService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/test/java/test/BindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/test/resources/helloworld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp-runtime/src/test/resources/jquery.html create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/src/main/java/org/apache/tuscany/sca/binding/jsonp/JSONPBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/src/main/java/org/apache/tuscany/sca/binding/jsonp/JSONPBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/src/main/java/org/apache/tuscany/sca/binding/jsonp/impl/JSONPBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/src/main/java/org/apache/tuscany/sca/binding/jsonp/impl/JSONPBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.jsonp.JSONPBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonp/src/main/resources/binding-jsonp.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-js-dojo/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-js-dojo/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-js-dojo/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-js-dojo/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-js-dojo/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/js/dojo/JSONRPCBindingJavascriptProxyFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-js-dojo/src/main/resources/META-INF/services/org.apache.tuscany.sca.web.javascript.JavascriptProxyFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCClientInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCDatabindingHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JavaToSmd.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/main/resources/org/apache/tuscany/sca/binding/jsonrpc/provider/jsonrpc.js create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/bean/TestBean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/echo/Echo.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoBusinessException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoClientImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoComponentImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCDataTypeTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCExceptionTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCReferenceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCSmdTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/resources/JSONRPCBinding.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc-runtime/src/test/resources/JSONRPCReference.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/impl/JSONRPCBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/impl/JSONRPCBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-jsonrpc/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/jaxrs/provider/JAXRSOperationSelectorInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/jaxrs/provider/JAXRSOperationSelectorProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/jaxrs/provider/JAXRSOperationSelectorReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/jaxrs/provider/JAXRSOperationSelectorServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/provider/RPCOperationSelectorInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/provider/RPCOperationSelectorProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/provider/RPCOperationSelectorReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/provider/RPCOperationSelectorServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/DataBindingJAXRSProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/DataBindingJAXRSReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/DataBindingJAXRSWriter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/JAXRSHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTBindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTBindingListenerServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceListenerServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/TuscanyRESTServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/json/provider/JSONWireFormatInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/json/provider/JSONWireFormatProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/json/provider/JSONWireFormatReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/json/provider/JSONWireFormatServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/xml/provider/XMLWireFormatInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/xml/provider/XMLWireFormatProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/xml/provider/XMLWireFormatReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/xml/provider/XMLWireFormatServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.OperationSelectorProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.WireFormatProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/NotModifiedException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/PreconditionFailedException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/RESTBindingCacheTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/RESTBindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/TestBindingCacheImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/TestGetImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/TestServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/rpc/EchoServiceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/wireformat/binary/BinaryServiceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/wireformat/json/CatalogServiceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/org/apache/tuscany/sca/binding/rest/wireformat/xml/CustomerServiceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/binary/BinaryService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/binary/BinaryServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/customer/Customer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/customer/CustomerService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/customer/CustomerServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/echo/Echo.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/echo/EchoImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/store/Catalog.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/store/CurrencyConverter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/store/CurrencyConverterImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/store/FruitsCatalogImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/store/Item.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/java/services/store/Items.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/resources/binary.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/resources/content/test.html create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/resources/customer.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/resources/echo.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/resources/store.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/resources/test.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest-runtime/src/test/resources/testCache.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/RESTBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/RESTBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/impl/RESTBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/impl/RESTBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/jaxrs/JAXRSOperationSelector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/jaxrs/JAXRSOperationSelectorFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/jaxrs/impl/JAXRSOperationSelectorFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/jaxrs/impl/JAXRSOperationSelectorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/RPCOperationSelector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/RPCOperationSelectorFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/impl/RPCOperationSelectorFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/impl/RPCOperationSelectorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/json/JSONWireFormat.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/json/JSONWireFormatFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/json/impl/JSONWireFormatFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/json/impl/JSONWireFormatImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/xml/XMLWireFormat.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/xml/XMLWireFormatFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/xml/impl/XMLWireFormatFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/wireformat/xml/impl/XMLWireFormatImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.rest.RESTBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.rest.operationselector.jaxrs.JAXRSOperationSelectorFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.rest.operationselector.rpc.RPCOperationSelectorFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.rest.wireformat.json.JSONWireFormatFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.rest.wireformat.xml.XMLWireFormatFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/test/java/org/apache/tuscany/sca/binding/rest/operationselector/jaxrs/impl/JAXRSOperationSelectorProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/test/java/org/apache/tuscany/sca/binding/rest/wireformat/json/impl/JSONWireFormatProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rest/src/test/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RemoteInterfaceGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/test/java/helloworld/HelloException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/test/java/helloworld/HelloWorldImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/test/java/helloworld/HelloWorldRmiImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/test/java/helloworld/HelloWorldRmiService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/test/java/helloworld/HelloWorldService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/test/resources/HelloWorldImpl.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/test/resources/HelloWorldRmiImpl.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi-runtime/src/test/resources/RMIBindingTest.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/src/main/java/org/apache/tuscany/sca/binding/rmi/RMIBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/src/main/java/org/apache/tuscany/sca/binding/rmi/RMIBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/src/main/java/org/apache/tuscany/sca/binding/rmi/impl/RMIBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/src/main/java/org/apache/tuscany/sca/binding/rmi/impl/RMIBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.rmi.RMIBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rmi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/main/java/org/apache/tuscany/sca/binding/rss/collection/Collection.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/main/java/org/apache/tuscany/sca/binding/rss/collection/MediaCollection.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/main/java/org/apache/tuscany/sca/binding/rss/collection/NotFoundException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingListenerServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/test/java/org/apache/tuscany/sca/binding/rss/Consumer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerClient.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerClientImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerCollectionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/test/java/org/apache/tuscany/sca/binding/rss/Provider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/test/java/org/apache/tuscany/sca/binding/rss/RSSGetTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/test/resources/org/apache/tuscany/sca/binding/rss/Consumer.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss-runtime/src/test/resources/org/apache/tuscany/sca/binding/rss/Provider.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/src/main/java/org/apache/tuscany/sca/binding/rss/RSSBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/src/main/java/org/apache/tuscany/sca/binding/rss/RSSBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/src/main/java/org/apache/tuscany/sca/binding/rss/impl/RSSBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/src/main/java/org/apache/tuscany/sca/binding/rss/impl/RSSBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.rss.RSSBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-rss/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DefaultSCABindingMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RemoteBindingHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RuntimeSCABindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RuntimeSCAReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RuntimeSCAServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/SCABindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/SCABindingMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.sca.provider.SCABindingMapper create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/main/resources/org/apache/tuscany/sca/binding/sca/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/test/java/org/apace/tuscany/sca/binding/sca/SCABindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/test/java/org/apace/tuscany/sca/binding/sca/xml/ReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/test/java/org/apace/tuscany/sca/binding/sca/xml/WriteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/test/resources/Calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-sca-runtime/src/test/resources/CalculatorServiceImpl.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/basic/BasicAuthenticationPolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/basic/BasicAuthenticationReferencePolicyInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/basic/BasicAuthenticationReferencePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/basic/BasicAuthenticationServicePolicyInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/basic/BasicAuthenticationServicePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/mtom/Axis2MTOMPolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/security/http/ssl/HTTPSPolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/security/http/ssl/HTTPSPolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2BaseBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2BindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2EngineIntegration.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ServiceInMessageReceiver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ServiceInOutSyncMessageReceiver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ServiceServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/TuscanyDispatcher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/TuscanyListingAgent.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/TuscanyServiceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/transport/TransportReferenceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/conf/tuscany-axis2.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/repository/modules/modules.list create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/repository/modules/rampart-1.4.mar create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/repository/services/services.list create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLBindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLBindingURITestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLBindingWSATestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdlbinding/helloworld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdlbindinguri/helloworld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdlbindingwsa/helloworld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/ri/JAXWSBindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/ri/JAXWSReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/ri/JAXWSServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/main/resources/org/apache/tuscany/sca/binding/ws/jaxws/ri/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLPortTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdlport/helloworld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws-ri/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdlport/helloworld.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLContractBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLDefinitionGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLGenerationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLServiceGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WebServiceBindingBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.BindingBuilder create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ContractBuilder create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/main/resources/wsdlgen-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/other/Other.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/other/package-info.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGeneratorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGeneratorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestFault.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestFaultBean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestJavaClass.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestJavaInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/WebServiceBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/WebServiceBindingFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/addressing/EndPointReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/EndPointReferenceHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/resources/META-INF/services/org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/java/org/apache/tuscany/sca/binding/ws/xml/ReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/java/org/apache/tuscany/sca/binding/ws/xml/WriteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/Calculator-bad-wsdlElement.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/Calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/CalculatorImpl.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/PoliciedCalculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/example.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/invalid-stockquote.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/ipo.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/stockquote.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/test1.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/test1.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/test2.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/binding-ws/src/test/resources/org/apache/tuscany/sca/binding/ws/xml/unwrapped-stockquote.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/BindingURIBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentReferenceBindingBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentServiceBindingBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositeCloneBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositeComponentTypeBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositeIncludeBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositeWireApplierImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/EndpointBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/EndpointReferenceBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/IntentValidator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ModelBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/PolicyAppliesToBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/PolicyAttachmentBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/StructuralURIBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/WireBuilderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/WireMatcherImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/main/resources/org/apache/tuscany/sca/builder/builder-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/java/org/apache/tuscany/sca/builder/impl/BuildPolicyTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/java/org/apache/tuscany/sca/builder/impl/CompositeBuilderTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/java/org/apache/tuscany/sca/builder/impl/MockPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/java/org/apache/tuscany/sca/builder/impl/PolicyAttachmentTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/java/org/apache/tuscany/sca/builder/impl/TestPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/resources/org/apache/tuscany/sca/builder/impl/Calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/resources/org/apache/tuscany/sca/builder/impl/Composite1.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/resources/org/apache/tuscany/sca/builder/impl/Composite2.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/resources/org/apache/tuscany/sca/builder/impl/Composite3.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/resources/org/apache/tuscany/sca/builder/impl/Composite4.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/resources/org/apache/tuscany/sca/builder/impl/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/resources/org/apache/tuscany/sca/builder/impl/scenario.odg create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/resources/org/apache/tuscany/sca/builder/impl/scenario.png create mode 100644 sandbox/sebastien/java/dynamic/modules/builder/src/test/resources/org/apache/tuscany/sca/builder/impl/test_definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/common-http/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/common-http/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/common-http/src/main/java/org/apache/tuscany/sca/common/http/HTTPCacheContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-http/src/main/java/org/apache/tuscany/sca/common/http/HTTPConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-http/src/main/java/org/apache/tuscany/sca/common/http/HTTPContentTypeMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-http/src/main/java/org/apache/tuscany/sca/common/http/HTTPContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-http/src/main/java/org/apache/tuscany/sca/common/http/HTTPHeader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-http/src/main/java/org/apache/tuscany/sca/common/http/HTTPUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/classloader/ClassLoaderDelegate.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/collection/CollectionMap.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/collection/CompoundEnumeration.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/collection/CompoundIterator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/collection/LRUCache.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/io/IOHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/reflection/JavaIntrospectionHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/test/java/org/apache/tuscany/sca/common/java/reflection/JavaIntrospectionHelperTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/test/java/org/apache/tuscany/sca/common/java/reflection/SubTestImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/test/java/org/apache/tuscany/sca/common/java/reflection/Test1.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/test/java/org/apache/tuscany/sca/common/java/reflection/Test2.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-java/src/test/java/org/apache/tuscany/sca/common/java/reflection/TestImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/XMLDocumentHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/DOMHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/impl/SAX2DOMAdapter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/sax/SAXHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/StAXHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/impl/StAX2SAXAdapter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/impl/XMLStreamSerializer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/DOMXMLStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/DOMXmlNodeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/DelegatingNamespaceContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/NameValueArrayStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/NameValuePairStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/NamedProperty.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/NamespaceContextImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/NilElementStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/SimpleXmlNodeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/WrappingXMLStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/XMLDocumentStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/XMLFragmentStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/XMLFragmentStreamReaderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/XMLStreamable.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/XmlNode.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/XmlNodeIterator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/reader/XmlTreeStreamReaderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/xpath/XMLCharHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/xpath/XPathHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/dom/DOMHelperTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/stax/StAXHelperTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/stax/reader/XmlTreeStreamReaderTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/xpath/XPathHelperTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/test/resources/org/apache/tuscany/sca/common/xml/stax/test.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/common-xml/src/test/resources/org/apache/tuscany/sca/common/xml/stax/test.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/BundleReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleReferenceModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.scanner.ContributionScanner create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Artifact.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContentType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionMetadata.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultContributionFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultExport.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultImport.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Export.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Import.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/PackageType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ArtifactImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionMetadataImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/DefaultExportImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/DefaultImportImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/DefaultJavaImportExportFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/JavaExport.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/JavaImport.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/JavaImportExportFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportExportFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/DefaultNamespaceImportExportFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/NamespaceExport.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/NamespaceImport.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/NamespaceImportExportFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportExportFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ArtifactProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/BaseStAXArtifactProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionReadException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionResolveException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionRuntimeException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionWriteException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultArtifactProcessorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtendedArtifactProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtendedURLArtifactProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleStAXArtifactProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleStAXAttributeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleURLArtifactProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ProcessorContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/StAXArtifactProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/StAXArtifactProcessorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/StAXAttributeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/StAXAttributeProcessorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/URLArtifactProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/URLArtifactProcessorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/UnrecognizedElementException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/UnsupportedContentTypeException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/UnsupportedPackageTypeException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyElementProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ClassReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultDelegatingModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultImportAllModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultImportModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ModelResolverExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ResolverExtension.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ResourceReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/ContributionScanner.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/ContributionScannerExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/impl/DirectoryContributionScanner.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/impl/JarContributionScanner.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionGeneratedMetadataDocumentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.ContributionFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.java.JavaImportExportFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.namespace.NamespaceImportExportFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessorExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.scanner.ContributionScannerExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/contribution-java-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/contribution-namespace-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/contribution-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/processor/URLartifactProcessorExtensionPointTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/resolver/TestModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/resources/deployables/sample-calculator.jar create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/resources/repository/sample-calculator.jar create mode 100644 sandbox/sebastien/java/dynamic/modules/contribution/src/test/resources/test.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/WrapperJavaInterfaceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/transformers/Array2ArrayTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/transformers/Collection2CollectionTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/transformers/Exception2ExceptionTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/transformers/Input2InputTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/transformers/Map2MapTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/transformers/Output2OutputTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataTransformationInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/PassByValueInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor create mode 100644 sandbox/sebastien/java/dynamic/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.RuntimeWireProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/doc/Context Model.emx create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ComponentContextFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ContextFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/PropertyValueFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/RequestContextFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/ThreadMessageContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/DataExchangeSemantics.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Interceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/InvocationChain.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Invoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Phase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/PhasedInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/management/ConfigAttributes.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/management/ManagementService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/BasePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/BindingPolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/BindingProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/EndpointProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/EndpointReferenceProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ImplementationProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ImplementationProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/OperationSelectorProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/OperationSelectorProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyImplementor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ReferenceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/RuntimeProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ServiceBindingProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/WireFormatProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/WireFormatProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ActivationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/BaseDomainRegistryFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/BaseEndpointRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/CompositeActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultDomainRegistryFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DomainRegistryFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DomainRegistryFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DomainRegistryURI.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointReferenceBinder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointSerializer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/Invocable.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ReferenceParameters.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeComponent.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeComponentContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeComponentReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeComponentService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeEndpoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeEndpointReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeProperties.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeWireProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeWireProcessorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/Version.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/work/NotificationListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/work/WorkScheduler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/java/org/apache/tuscany/sca/work/WorkSchedulerException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/resources/META-INF/services/org.apache.tuscany.sca.context.ContextFactoryExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactoryExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.RuntimeWireProcessorExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/main/resources/org/apache/tuscany/sca/runtime/revision.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/test/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPointTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/test/java/org/apache/tuscany/sca/runtime/ConfigURITestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core-spi/src/test/java/org/apache/tuscany/sca/runtime/VersionTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/core/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/core/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/core/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/RuntimeAssemblyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointSerializerImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/LocalDomainRegistryFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/ReferenceParameterProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/ReferenceParametersImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/context/DefaultComponentContextFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/context/DefaultRequestContextFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ServiceReferenceExt.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallbackServiceReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/RequestContextImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/InstanceWrapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/ObjectCreationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/factory/ObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AsyncFaultWrapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AsyncResponseException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AsyncResponseHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallableReferenceObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackInterfaceInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackReferenceObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CglibProxyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleWireProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyCreationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/WireObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/AsyncInvocationFutureImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/AsyncJDKInvocationHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/AsyncResponse.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/AsyncResponseHandlerImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/JDKCallbackInvocationHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/JDKInvocationHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/JDKProxyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/MessageFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/MessageImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/NoMethodForOperationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManager.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/PhaseSorter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/RuntimePropertiesImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/AbstractScopeContainer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/DefaultScopeRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/Scope.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ScopeContainer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ScopeContainerFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ScopeRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ScopedImplementationProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ScopedRuntimeComponent.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/TargetDestructionException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/TargetInitializationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/TargetNotFoundException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/TargetResolutionException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/impl/CompositeScopeContainer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/impl/CompositeScopeContainerFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/impl/ScopeRegistryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/impl/StatelessScopeContainer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/impl/StatelessScopeContainerFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/DefaultWorkScheduler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManager.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/Work.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/WorkEvent.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/WorkItem.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/WorkListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.AssemblyFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.context.ComponentContextFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.context.RequestContextFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.scope.ScopeRegistry create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.invocation.MessageFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.CompositeActivator create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.EndpointReferenceBinder create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.EndpointSerializer create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.RuntimeProperties create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.work.WorkScheduler create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/main/resources/endpoint-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManagerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseSorterTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/FailingWork.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyFailingRunnable.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnable.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnerListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/Jsr237WorkSchedulerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TestWorkListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManagerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TimeDelayWork.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/java/org/apache/tuscany/sca/scope/ScopeTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/core/src/test/resources/META-INF/services/org.apache.tuscany.sca.invocation.PhaseTest create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/src/main/java/org/apache/tuscany/sca/data/collection/Collection.java create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/src/main/java/org/apache/tuscany/sca/data/collection/Entry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/src/main/java/org/apache/tuscany/sca/data/collection/Item.java create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/src/main/java/org/apache/tuscany/sca/data/collection/ItemCollection.java create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/src/main/java/org/apache/tuscany/sca/data/collection/LocalItemCollection.java create mode 100644 sandbox/sebastien/java/dynamic/modules/data-api/src/main/java/org/apache/tuscany/sca/data/collection/NotFoundException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Exception2OMElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Exception.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Object.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2String.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2XMLStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Object2OMElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/String2OMElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/XMLStreamReader2OMElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/test/java/org/apache/tuscany/sca/databinding/axiom/OMElementTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/test/resources/ipo.xml create mode 100755 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/test/resources/ipo.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-axiom/src/test/resources/order.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/AxiomHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/JAXB2OMElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/JAXBDataSource.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/OMElement2JAXB.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBCustomBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBDSContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBDataSourceExt.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/SourceDataSource.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/XMLStreamWriterWithOS.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/XMLStringDataSource.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/OMElement2JAXBTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb-axiom/src/test/resources/ipo.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/AnyTypeXmlAdapter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/DOMElementXmlAdapter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/DataConverter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/DefaultXMLAdapterExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextCache.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBPropertyDescriptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBWrapperException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBWrapperHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBWrapperHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLAdapterExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLRootElementUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/package.html create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.jaxb.XMLAdapterExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/com/example/stock/StockQuoteOffer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextCacheTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBReflectionTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBWrapperHandlerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/MyBean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/MyInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/MyInterfaceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/MyJaxbBean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/MySubBean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/POJOTestCase.java create mode 100755 sandbox/sebastien/java/dynamic/modules/databinding-jaxb/src/test/resources/ipo.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2JavaBean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2String.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2XMLStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSONDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSONHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JavaBean2JSON.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JavaBean2JSONObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/String2JSON.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/XMLStreamReader2JSON.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSON2OMElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSONBadgerfishDataSource.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSONDataSource.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/InputStream2JSON.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JSON2Object.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JSON2OutputStream.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JacksonHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/Object2JSON.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PushTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/test/java/org/apache/tuscany/sca/databinding/json/JSONTransformerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/test/java/org/apache/tuscany/sca/databinding/json/JavaBean2JSONTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/test/java/org/apache/tuscany/sca/databinding/json/MyBean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/test/java/org/apache/tuscany/sca/databinding/json/MyInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/test/java/org/apache/tuscany/sca/databinding/json/MyInterfaceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/test/java/org/apache/tuscany/sca/databinding/json/POJOTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/test/java/org/apache/tuscany/sca/databinding/json/jackson/JacksonTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/test/java/org/apache/tuscany/sca/databinding/json/jackson/Object2JSONTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-json/src/test/resources/ipo.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/main/java/org/apache/tuscany/sca/databinding/sdo2om/AxiomHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/main/java/org/apache/tuscany/sca/databinding/sdo2om/DataObject2OMElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/main/java/org/apache/tuscany/sca/databinding/sdo2om/SDODataSource.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/main/java/org/apache/tuscany/sca/databinding/sdo2om/XMLDocument2OMElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/test/java/org/apache/tuscany/sca/databinding/sdo2om/DataObject2OMElementTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/test/java/org/apache/tuscany/sca/databinding/sdo2om/SDOTransformerTestCaseBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/test/java/org/apache/tuscany/sca/databinding/sdo2om/XMLDocument2OMElementTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/test/resources/ipo.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo-axiom/src/test/resources/stock.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2String.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2XMLStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDO.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDODataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOSimpleTypeMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOTypes.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/String2DataObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/XMLDocument2String.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/XMLDocument2XMLStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/XMLStreamReader2DataObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/XMLStreamReader2XMLDocument.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/main/resources/databinding-sdo-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/com/example/stock/sdo/fault/InvalidSymbolFault_Exception.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2StringTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2XMLStreamReaderTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelperTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/SDODataBindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/SDOTransformerTestCaseBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandlerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/TestModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/XMLDocument2XMLStreamReaderTestCase.java create mode 100755 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/resources/ipo.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/resources/stock.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/resources/wrapper.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding-sdo/src/test/resources/wrapper.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/BaseDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/BaseTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DataBindingContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DataBindingExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DataPipe.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DataPipeTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/PullTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/PushTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/SimpleTypeMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/TransformationContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/TransformationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Transformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/TransformerExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/WrapperHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/XMLTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/annotation/DataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/annotation/DataType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/externalizable/ExternalizableDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/DirectedGraph.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/Group2GroupTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/GroupDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/Java2SimpleTypeTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/PipedTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/SimpleType2JavaTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/SimpleTypeMapperImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/XSDDataTypeConverter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/DOMNode2JavaBeanTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/Java2XMLMapperException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBean2DOMNodeTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBean2XMLStreamReaderTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBean2XMLTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBeansDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaExceptionDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/SimpleJavaDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/XML2JavaBeanTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/XML2JavaMapperException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/util/DataTypeHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/InputSource2Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/InputSource2SAX.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/InputStream2Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/InputStream2SAX.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Node2OutputStream.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Node2SimpleJavaType.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Node2SourceTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Node2String.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Node2Writer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Node2XMLStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Reader2Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Reader2SAX.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/SAX2DOMPipe.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/SimpleJavaType2Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Source2NodeTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Source2ResultTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Source2StringTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/StAXDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/StreamDataPipe.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/String2Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/String2SAX.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/String2SourceTransformer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/String2XMLStreamReader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Writer2ReaderDataPipe.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLGroupDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLStreamReader2Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLStreamReader2SAX.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLStreamReader2String.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLStringDataBinding.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBindingExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.Mediator create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PushTransformer create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.SimpleTypeMapper create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.TransformerExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/extension/DataBindingExtensionTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/extension/SimpleTypeMapperExtensionTestCase.java.fixme create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/extension/TransformerExtensionTestCase.java.fixme create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/extension/XSDDataTypeConverterTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/impl/DataBindingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/impl/DirectedGraphTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/impl/MediatorImplTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/impl/XMLDocumentStreamReaderTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DOM2StAXTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DataPipeTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/JavaBean2XMLStreamReaderTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/Node2StringTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/PushTransformationTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/TraxTransformerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/resources/org/apache/tuscany/sca/databinding/impl/ipo.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/resources/org/apache/tuscany/sca/databinding/impl/order.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/databinding/src/test/resources/org/apache/tuscany/sca/databinding/xml/foo.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/DefaultDeployer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/Deployer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/Contributions.java create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/main/resources/META-INF/services/org.apache.tuscany.sca.deployment.Deployer create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/main/resources/org/apache/tuscany/sca/deployment/impl/deployer-impl-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/test/java/hello/deployer/HelloWorld.java create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/test/java/hello/deployer/HelloWorldImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/test/java/org/apache/tuscany/sca/deployment/impl/DeployerImplTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/deployment/src/test/resources/org/apache/tuscany/sca/deployment/impl/HelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/main/java/org/apache/tuscany/sca/domain/node/DomainNode.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/main/java/org/apache/tuscany/sca/domain/node/DomainNodeMain.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/DeployedComposite.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/InstalledContribution.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/NodeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/java/itest/nodes/Helloworld.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/java/org/apache/tuscany/sca/domain/node/GetServiceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/java/org/apache/tuscany/sca/domain/node/MultipleNodesPerJVMTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/java/org/apache/tuscany/sca/domain/node/OneNodeTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/java/org/apache/tuscany/sca/domain/node/StopStartNodesTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/java/org/apache/tuscany/sca/node2/DeployerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/java/org/apache/tuscany/sca/node2/NodeTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/java/sample/Helloworld.java create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/resources/helloworld2.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/resources/itest-nodes-helloworld-client-2.0-SNAPSHOT.jar create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/resources/itest-nodes-helloworld-service-2.0-SNAPSHOT.jar create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/resources/sample-helloworld-nodeployable.jar create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/resources/sample-helloworld.jar create mode 100644 sandbox/sebastien/java/dynamic/modules/domain-node/src/test/resources/sca-contribution-generated.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast-client/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast-client/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast-client/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientDomainRegistryFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast-client/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast-client/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastDomainRegistryFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/RegistryConfig.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/MultiRegTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/RegistryTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/AbstractReplicatedMap.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/DisableMcastInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/MapStore.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedMap.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/TribesDomainRegistryFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/src/test/java/org/apache/tuscany/sca/endpoint/tribes/MultiRegTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/endpoint-tribes/src/test/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistryTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoveryActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/OSGiExtensionPointRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/src/test/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxHostTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/src/test/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscovererTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/src/test/java/org/apache/tuscany/sca/extensibility/equinox/TestEquinoxHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/src/test/resources/test-bundle-v1.jar create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility-equinox/src/test/resources/test-bundle-v2.jar create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultModuleActivatorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/FactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/LifeCycleListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/ModuleActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/ModuleActivatorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/UtilityExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ClassLoaderContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDeclaration.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDeclarationParser.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscoverer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/impl/ClassLoaderDelegate.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/impl/InvalidSyntaxException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/impl/LDAPFilter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.FactoryExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.UtilityExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscovererTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultExtensionPointRegistryTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/ServiceDiscoveryTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/ServiceHelperTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/test/DummyImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/test/Test2Impl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/test/TestImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/test/TestInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/extensibility/src/test/resources/META-INF/services/org.apache.tuscany.sca.extensibility.test.TestInterface create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/main/java/org/apache/tuscany/sca/host/corba/jee/JEECorbaHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/main/resources/META-INF/services/org.apache.tuscany.sca.host.corba.CorbaHost create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/JEECorbaHostTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/TestContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/TestInitialContextFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/general/TestInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/general/TestInterfaceHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/general/TestInterfaceHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/general/TestInterfaceOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/general/_TestInterfaceImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/general/_TestInterfaceStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/java/org/apache/tuscany/sca/host/corba/jee/testing/servants/TestInterfaceServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jee/src/test/resources/general.idl create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse-tns/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse-tns/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse-tns/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse-tns/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse-tns/src/main/java/org/apache/tuscany/sca/host/corba/jse/tns/TnsDefaultCorbaHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse-tns/src/main/resources/META-INF/services/org.apache.tuscany.sca.host.corba.CorbaHost create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse-tns/src/test/java/org/apache/tuscany/sca/host/corba/testing/TnsDefaultCorbaHostTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/main/java/org/apache/tuscany/sca/host/corba/jse/DefaultCorbaHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/main/java/org/apache/tuscany/sca/host/corba/naming/NamingContextBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/main/java/org/apache/tuscany/sca/host/corba/naming/TransientNameServer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/main/java/org/apache/tuscany/sca/host/corba/naming/TransientNameService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/main/java/org/apache/tuscany/sca/host/corba/naming/TransientNamingContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/main/java/org/apache/tuscany/sca/host/corba/naming/TransientServiceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/main/resources/META-INF/services/org.apache.tuscany.sca.host.corba.CorbaHost create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/test/java/org/apache/tuscany/sca/host/corba/testing/DefaultCorbaHostTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/test/java/org/apache/tuscany/sca/host/corba/testing/general/TestInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/test/java/org/apache/tuscany/sca/host/corba/testing/general/TestInterfaceHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/test/java/org/apache/tuscany/sca/host/corba/testing/general/TestInterfaceHolder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/test/java/org/apache/tuscany/sca/host/corba/testing/general/TestInterfaceOperations.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/test/java/org/apache/tuscany/sca/host/corba/testing/general/_TestInterfaceImplBase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/test/java/org/apache/tuscany/sca/host/corba/testing/general/_TestInterfaceStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/test/java/org/apache/tuscany/sca/host/corba/testing/servants/TestInterfaceServant.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba-jse/src/test/resources/general.idl create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/src/main/java/org/apache/tuscany/sca/host/corba/CorbaHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/src/main/java/org/apache/tuscany/sca/host/corba/CorbaHostException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/src/main/java/org/apache/tuscany/sca/host/corba/CorbaHostExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/src/main/java/org/apache/tuscany/sca/host/corba/CorbaHostUtils.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/src/main/java/org/apache/tuscany/sca/host/corba/CorbanameURL.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/src/main/java/org/apache/tuscany/sca/host/corba/DefaultCorbaHostExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/src/main/java/org/apache/tuscany/sca/host/corba/ExtensibleCorbaHost.java create mode 100755 sandbox/sebastien/java/dynamic/modules/host-corba/src/main/java/org/apache/tuscany/sca/host/corba/SocketUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/src/main/resources/META-INF/services/org.apache.tuscany.sca.host.corba.CorbaHostExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/host-corba/src/test/java/org/apache/tuscany/sca/host/corba/UtilsTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultResourceServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultServletHostExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ExtensibleServletHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/SecurityContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletHostExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletHostHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletMappingException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/UserContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.host.http.ServletHostExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/src/main/java/org/apache/tuscany/sca/http/jetty/JettyDefaultServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/src/main/java/org/apache/tuscany/sca/http/jetty/JettyLogger.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/src/main/java/org/apache/tuscany/sca/http/jetty/JettyServer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/src/main/resources/META-INF/services/org.apache.tuscany.sca.host.http.ServletHost create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/src/test/java/org/apache/tuscany/sca/http/jetty/JettyServerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/src/test/resources/content/test.html create mode 100644 sandbox/sebastien/java/dynamic/modules/host-jetty/src/test/resources/tuscany.keyStore create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHostExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHostException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHostExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHostRuntimeException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMISocketFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/main/resources/META-INF/services/org.apache.tuscany.sca.host.rmi.RMIHostExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/TuscanyContextListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/TuscanyServletFilter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppRequestDispatcher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/host-webapp/src/main/resources/META-INF/services/org.apache.tuscany.sca.host.http.ServletHost create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/BPELODEDeployFile.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/DeploymentWorkspace.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/EmbeddedODEServer.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/GeronimoTxFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEBindingContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEDeployment.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEDeploymentException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEEndpointReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEEprContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEInitializationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEMessageExchangeContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEShutdownException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyEPR.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyProcessConfImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/provider/BPELImplementationProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/provider/BPELImplementationProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/provider/BPELInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/provider/ODEInvocationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/test/java/org/apache/tuscany/sca/implementation/bpel/ode/EmbeddedODEServerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/test/resources/helloworld/deploy.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/test/resources/helloworld/greetings.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/test/resources/helloworld/helloworld.bpel create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/test/resources/helloworld/helloworld.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel-runtime/src/test/resources/log4j.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/BPELFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/BPELImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/BPELProcessDefinition.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/impl/BPELFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/impl/BPELImplementationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/impl/BPELProcessDefinitionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImplementationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImportElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELPartnerLinkElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELPartnerLinkTypeElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELProcessorConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.bpel.BPELFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/main/resources/impl-bpel-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/test/java/org/apache/tuscany/sca/implementation/bpel/BPELDocumentProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/test/java/org/apache/tuscany/sca/implementation/bpel/BPELImplementationProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/test/resources/helloworld/helloworld.bpel create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-bpel/src/test/resources/helloworld/helloworld.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/context/InstanceFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/context/InstanceFactoryProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/context/ReflectiveInstanceFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/context/ReflectiveInstanceWrapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/databinding/PropertyDataTypeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/ArrayMultiplicityObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/ContextInjector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/FieldInjector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/InjectionRuntimeException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/Injector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/InvalidAccessorException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/ListMultiplicityObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/MethodInjector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/RequestContextObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/ResourceHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/ResourceNotFoundException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/ResourceObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/ResourceResolutionException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/EventInvocationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/EventInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/InvalidConversationSequenceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaAsyncImplementationInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaCallbackRuntimeWireProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentNameFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaImplementationInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaImplementationProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaImplementationProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaInstanceFactoryProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/MethodEventInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/NoConversationalContractException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/ResponseDispatchImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.context.PropertyValueFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.java.introspect.JavaClassVisitor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.RuntimeWireProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/main/resources/org/apache/tuscany/sca/implementation/java/definitions/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/context/MultiplicityTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/context/ReflectiveInstanceWrapperTestCase.java.fixme create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/CallbackWireObjectFactoryTestCase.java.fixme create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/FieldInjectorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactoryTestCase.java.fixme create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/MethodEventInvokerTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/MethodInjectorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/ResourceObjectFactoryTestCase.java.fixme create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/SingletonObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/SingletonObjectFactoryTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/TestObjectFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/injection/TestObjectFactoryTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/util/Bean1.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/util/Bean2.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/util/Entry.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/util/JavaIntrospectionHelperTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/sca/implementation/java/util/SuperBean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/BaseJavaImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/DefaultJavaImplementationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/IntrospectionException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/JavaConstructorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/JavaElementImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/JavaImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/JavaImplementationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/JavaParameterImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/JavaResourceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/JavaScopeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/BaseJavaImplementationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaClassIntrospectorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaImplementationFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaImplementationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/BaseJavaClassVisitor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/JavaClassVisitor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/JavaIntrospectionHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AllowsPassByReferenceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AmbiguousConstructorException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ComponentNameProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ConstructorProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ContextProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DuplicateConstructorException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DuplicateDestructorException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DuplicateInitException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DuplicatePropertyException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DuplicateReferenceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DuplicateResourceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/EagerInitProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/IllegalCallbackReferenceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/IllegalContextException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/IllegalDestructorException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/IllegalInitException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/IllegalPropertyException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/IllegalReferenceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/IllegalResourceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/IllegalServiceDefinitionException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/InitProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/InvalidConstructorException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/InvalidConversationalImplementationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/InvalidPropertyException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/InvalidReferenceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/InvalidResourceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/InvalidServiceTypeException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/NoConstructorException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ReferenceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/Resource.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ResourceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ScopeProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceTypeNotFoundException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/UnknownContextTypeException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/package.html create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.java.JavaImplementationFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.java.introspect.JavaClassVisitor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/main/resources/impl-javaxml-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/AddService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/AddServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/CalculatorService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/CalculatorServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/DivideService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/DivideServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/MultiplyService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/MultiplyServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/SubtractService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/calculator/SubtractServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractProcessorTest.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AllowsPassByReferenceProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ConstructorProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ConstructorPropertyTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ConstructorReferenceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ConstructorResourceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ContextProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/EagerInitProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicAndPropertyTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicConstructorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeutisticExtensibleConstructorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/InitProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ModelHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PolicyProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ReferenceProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ResourceProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ScopeProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceCallbackTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/xml/ReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/xml/TestModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/xml/WriteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/resources/org/apache/tuscany/sca/implementation/java/xml/Calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/resources/org/apache/tuscany/sca/implementation/java/xml/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-java/src/test/resources/org/apache/tuscany/sca/implementation/java/xml/definitions_with_policysets.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/src/main/java/org/apache/tuscany/sca/implementation/jaxrs/provider/JAXRSImplementationProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/src/main/java/org/apache/tuscany/sca/implementation/jaxrs/provider/JAXRSImplementationProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorld.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorldApp.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/test/HelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs-runtime/src/test/resources/helloworld/jaxrs/HelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/main/java/org/apache/tuscany/sca/implementation/jaxrs/JAXRSImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/main/java/org/apache/tuscany/sca/implementation/jaxrs/JAXRSImplementationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/main/java/org/apache/tuscany/sca/implementation/jaxrs/impl/JAXRSImplementationFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/main/java/org/apache/tuscany/sca/implementation/jaxrs/impl/JAXRSImplementationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/main/java/org/apache/tuscany/sca/implementation/jaxrs/xml/JAXRSImplementationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.jaxrs.JAXRSImplementationFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/main/resources/org/apache/tuscany/sca/implementation/jaxrs/tuscany-sca-1.1-implementation-jaxrs.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/test/java/org/apache/tuscany/sca/implementation/jaxrs/xml/ReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/test/java/org/apache/tuscany/sca/implementation/jaxrs/xml/WriteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-jaxrs/src/test/resources/org/apache/tuscany/sca/implementation/jaxrs/xml/TestJAXRS.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/src/main/java/org/apache/tuscany/sca/implementation/osgi/runtime/OSGiImplementationProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/src/main/java/org/apache/tuscany/sca/implementation/osgi/runtime/OSGiImplementationProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/src/main/java/org/apache/tuscany/sca/implementation/osgi/runtime/OSGiTargetInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/src/main/resources/META-INF/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi-runtime/src/main/resources/impl-osgi-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/LICENSE create mode 100755 sandbox/sebastien/java/dynamic/modules/implementation-osgi/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/DefaultOSGiImplementationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/DefaultServiceDescriptionsFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/OSGiImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/OSGiImplementationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/OSGiProperty.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/SCAConfig.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/ServiceDescription.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/ServiceDescriptions.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/ServiceDescriptionsFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/OSGiImplementationFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/OSGiImplementationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/OSGiPropertyImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/SCAConfigImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/ServiceDescriptionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/ServiceDescriptionsFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/ServiceDescriptionsImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/BluePrintComponentsProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiComponentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiPropertyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/SCAConfigProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/ServiceDescriptionsDocumentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/ServiceDescriptionsModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/ServiceDescriptionsProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/resources/META-INF/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.osgi.OSGiImplementationFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.osgi.ServiceDescriptionsFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/main/resources/impl-osgi-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/calculator/dosgi/CalculatorService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/calculator/dosgi/operations/AddService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/calculator/dosgi/operations/DivideService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/calculator/dosgi/operations/MultiplyService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/calculator/dosgi/operations/SubtractService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/BluePrintComponentsProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiComponentProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/ServiceDescriptionsTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/TestModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/resources/OSGI-INF/calculator-component.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/resources/OSGI-INF/sca/bundle.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-osgi/src/test/resources/osgitest.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/main/java/org/apache/tuscany/sca/implementation/script/provider/ScriptImplementationProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/main/java/org/apache/tuscany/sca/implementation/script/provider/ScriptImplementationProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/main/java/org/apache/tuscany/sca/implementation/script/provider/ScriptInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/main/java/org/apache/tuscany/sca/implementation/script/provider/ScriptPropertyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/AbstractSCATestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/helloworld/AbstractHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/helloworld/GroovyHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/helloworld/HelloWorld.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/helloworld/HelloWorldProxy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/helloworld/JRubyHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/helloworld/JavaScriptHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/helloworld/JythonHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/properties/AbstractHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/properties/GroovyHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/properties/HelloWorld.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/properties/HelloWorldProxy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/properties/JRubyHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/properties/JavaScriptHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/properties/JythonHelloWorldTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/references/GroovyReferenceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/references/HelloWorldTarget.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/references/JRubyReferenceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/references/JavaScriptReferenceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/references/JythonReferenceTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/helloworld/GroovyHelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/helloworld/JRubyHelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/helloworld/JavaScriptHelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/helloworld/JythonHelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/helloworld/helloworld.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/helloworld/helloworld.groovy create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/helloworld/helloworld.js create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/helloworld/helloworld.py create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/helloworld/helloworld.rb create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/properties/GroovyHelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/properties/JRubyHelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/properties/JavaScriptHelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/properties/JythonHelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/properties/helloworld.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/properties/helloworld.groovy create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/properties/helloworld.js create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/properties/helloworld.py create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/properties/helloworld.rb create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/references/GroovyReference.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/references/JRubyReference.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/references/JavaScriptReference.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/references/JythonReference.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/references/reference.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/references/reference.groovy create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/references/reference.js create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/references/reference.py create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script-runtime/src/test/resources/org/apache/tuscany/sca/implementation/script/itests/references/reference.rb create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/impl/ScriptImplementationFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/impl/ScriptImplementationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/xml/ScriptImplementationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-script/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.script.ScriptImplementationFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/README create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/SCANamespaceHandlerResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaNamespaceHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaPropertyBeanDefinitionParser.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaReferenceBeanDefinitionParser.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/namespace/ScaServiceBeanDefinitionParser.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ComponentNameAnnotationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ComponentStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ConstructorAnnotationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/InitDestroyAnnotationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/PropertyAnnotationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/PropertyValueStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/processor/ReferenceAnnotationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SCAGenericApplicationContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SCAParentApplicationContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringContextTie.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringImplementationStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.handlers create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.schemas create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring-runtime/src/main/resources/org/springframework/sca/xml/spring-sca.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/README create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringBeanElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringConstructorArgElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringPropertyElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAPropertyElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAReferenceElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringSCAServiceElement.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringBeanIntrospector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringBeanPojoProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/introspect/SpringXMLComponentTypeLoader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/ComponentTie.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/PropertyValueTie.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringContextStub.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationTie.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringInvocationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringImplementationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/resources/impl-spring-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-spring/src/main/resources/org/apache/tuscany/sca/implementation/spring/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-client/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-client/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-client/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-client/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-client/src/main/java/org/apache/tuscany/sca/implementation/web/client/ClientServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-client/src/main/java/org/apache/tuscany/sca/implementation/web/client/JSClientExtensionPointImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-client/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.web.runtime.ClientExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/ClientExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/ComponentContextProxy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/WebImplementationProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/jsp/ReferenceTEI.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/jsp/ReferenceTag.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/utils/ContextHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/src/main/resources/META-INF/sca.tld create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/WebImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/WebImplementationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/xml/WebImplementationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.web.WebImplementationFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/test/java/org/apache/tuscany/sca/implementation/web/xml/ReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/test/java/org/apache/tuscany/sca/implementation/web/xml/WriteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-web/src/test/resources/org/apache/tuscany/sca/implementation/web/xml/TestWeb.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime-dojo/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime-dojo/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime-dojo/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime-dojo/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime-dojo/src/main/java/org/apache/tuscany/sca/implementation/widget/dojo/DojoJavaScriptComponentGeneratorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime-dojo/src/main/resources/META-INF/services/org.apache.tuscany.sca.web.javascript.ComponentJavaScriptGenerator create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetComponentScriptServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationInvoker.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/src/main/resources/atomModel.js create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget-runtime/src/main/resources/binding-http.js create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/Widget.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationIntrospector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/impl/WidgetImplementationFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/impl/WidgetImplementationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/javascript/WidgetImplementationJavascriptProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.widget.WidgetImplementationFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/implementation-widget/src/main/resources/impl-widget-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/CodeGenerationHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/GeneratedClassLoader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSJavaInterfaceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Bean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/JAXRSInterfaceProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/MockedResource.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Resource.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ResourceWrapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGeneratorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/BaseBeanGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedClassLoader.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSAsyncInterfaceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WebServiceInterfaceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.FaultExceptionMapper create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/BeanInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/BeanInterfaceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGeneratorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSAsyncInterfaceProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JavaReflectionHelperTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/StockQuote.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestAdapter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestGenericClass.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGeneratorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/resources/wsdl/Stock.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java-jaxws/src/test/resources/wsdl/StockExceptionTest.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceContract.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceContractImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/introspect/JavaInterfaceVisitor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/package.html create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/main/resources/interface-javaxml-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java.fixme create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/WriteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorImpl.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/BPELPartnerLinkTypeExt.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/DefaultWSDLFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterface.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterfaceContract.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLObject.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLOperation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/InvalidWSDLException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceContractImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLObjectImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/package.html create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/main/resources/interface-wsdlxml-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLInterfaceIntrospectorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLPolicyAnnotatedInterfaceIntrospectorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WrapperStyleOperationTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/AbstractWSDLTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WriteTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/CalculatorImpl.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/example.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/invalid-stockquote.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/ipo.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/stockquote.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test2.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/unwrapped-stockquote.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/policy/stockquote_policy.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/wsdl/helloworld-interface.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/wsdl/helloworld-service.wsdl create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/xsd/greeting.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/xsd/helloworld.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/interface-wsdl/src/test/resources/xsd/name.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/launcher/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/launcher/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/launcher/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/launcher/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/launcher/src/main/java/org/apache/tuscany/sca/launcher/LauncherMain.java create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/DefaultMonitorFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Monitor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/MonitorFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Problem.java create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/ValidationException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/MonitorImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/ProblemImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/main/resources/META-INF/services/org.apache.tuscany.sca.monitor.MonitorFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/test/java/org/apache/tuscany/sca/monitor/MonitorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/test/resources/org/apache/tuscany/sca/monitor/tuscany-monitor-test-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/monitor/src/test/resources/org/apache/tuscany/sca/monitor/tuscany-monitor-test-messages_it.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/myfaces/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/myfaces/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/myfaces/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/myfaces/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/myfaces/src/main/java/org/apache/tuscany/sca/myfaces/TuscanyAnnotationLifecycleProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/myfaces/src/main/java/org/apache/tuscany/sca/myfaces/TuscanyAnnotationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeMain2.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/BindingConfiguration.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/ContributionConfiguration.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/DefaultNodeConfigurationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/DeploymentComposite.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/NodeConfiguration.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/NodeConfigurationFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/impl/BindingConfigurationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/impl/ContributionConfigurationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/impl/DeploymentCompositeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/impl/NodeConfigurationFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/impl/NodeConfigurationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeManager.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/OSGiNodeFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/AbstractOSGiServiceHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/EndpointHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/EndpointIntrospector.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/EndpointMatcher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/ExportReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/ExportRegistrationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/ImportReferenceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/ImportRegistrationImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceExporter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceImporter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/RemoteServiceAdminImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/TopologyManagerImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/service/discovery/impl/AbstractDiscoveryService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/service/discovery/impl/Discovery.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/service/discovery/impl/DiscoveryActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/service/discovery/impl/DomainDiscoveryService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/service/discovery/impl/LocalDiscoveryService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/EndpointDescription.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/EndpointListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/EndpointPermission.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/ExportReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/ExportRegistration.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/ImportReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/ImportRegistration.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/RemoteConstants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/RemoteServiceAdmin.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/RemoteServiceAdminEvent.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/java/org/osgi/service/remoteserviceadmin/RemoteServiceAdminListener.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.node.NodeFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/main/resources/org/osgi/service/remoteserviceadmin/osgi-remoteserviceadmin.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/CalculatorService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/impl/CalculatorActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/impl/CalculatorServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/operations/AddService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/operations/DivideService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/operations/MultiplyService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/operations/SubtractService.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/operations/impl/AddServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/operations/impl/DivideServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/operations/impl/MultiplyServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/operations/impl/OperationsActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/operations/impl/SubtractServiceImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/test/CalculatorOSGiNodeTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/test/CalculatorOSGiTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/java/calculator/dosgi/test/OSGiTestBundles.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/META-INF/sca-contribution.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/OSGI-INF/blueprint/calculator-module.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/OSGI-INF/calculator-component.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/OSGI-INF/remote-service/calculator-service-descriptions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/bundle.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/META-INF/sca-contribution.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/OSGI-INF/add-component.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/OSGI-INF/blueprint/operations-module.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/OSGI-INF/divide-component.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/OSGI-INF/multiply-component.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/OSGI-INF/subtract-component.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/bundle.componentType create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/operations.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/sca/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/sca/META-INF/sca-contribution.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl-osgi/src/test/resources/calculator/dosgi/sca/OSGI-INF/sca/calculator.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/configuration/xml/NodeConfigurationATOMProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/configuration/xml/NodeConfigurationProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/management/NodeManager.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/management/NodeManagerMBean.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.node.NodeFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.node.configuration.NodeConfigurationFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/main/resources/org/apache/tuscany/sca/node/impl/node-impl-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/java/hello/HelloWorld.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/java/hello/HelloWorldImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/configuration/xml/NodeConfigurationProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/resources/HelloWorld.composite create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/resources/org/apache/tuscany/sca/node/configuration/node1.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/resources/org/apache/tuscany/sca/node/configuration/test-node-factory.config create mode 100644 sandbox/sebastien/java/dynamic/modules/node-impl/src/test/resources/test.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/Contribution.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/ContributionLocationHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/DomainManagerLauncher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/FrameworkLauncher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/LauncherException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeDaemonLauncher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher2.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherCommand.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeMain.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/J2SE-1.5.profile create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/JavaSE-1.6.profile create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/axiom-api-1.2.7.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/axiom-api-1.2.8.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/axis2-kernel-1.4.1.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/axis2-kernel-1.5.1.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/axis2-transport-http-1.5.1.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-agents-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-bpel-api-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-bpel-compiler-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-bpel-dao-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-bpel-epr-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-bpel-obj-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-bpel-runtime-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-bpel-schemas-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-bpel-store-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-dao-hibernate-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-dao-jpa-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-jacob-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-jacob-ap-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-scheduler-simple-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/ode-utils-1.3.2.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/woden-impl-dom-1.0M8.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher-equinox/src/main/resources/org/apache/tuscany/sca/node/equinox/launcher/xercesImpl-2.9.0.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/Contribution.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/DomainManagerLauncher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/LauncherException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeDaemonLauncher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncher.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeMain.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeServletFilter.java create mode 100644 sandbox/sebastien/java/dynamic/modules/node-launcher/src/test/java/org/apache/tuscany/sca/node/launcher/ServiceInvocationTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/Logging.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingImplementationPolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingReferencePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingServicePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.PolicyBuilder create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/main/resources/org/apache/tuscany/sca/policy/logging/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/test/java/org/apache/tuscany/sca/policy/logging/jdk/PolicyReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-logging/src/test/resources/org/apache/tuscany/sca/policy/logging/jdk/mock_policies.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPrincipal.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/token/TokenPrincipal.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityUtil.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/http/ssl/HTTPSPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/http/ssl/HTTPSPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationImplementationPolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/resources/org/apache/tuscany/sca/policy/security/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/resources/org/apache/tuscany/sca/policy/security/tuscany_definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/main/resources/policy-security-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/security/PolicyProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-security/src/test/resources/org/apache/tuscany/sca/policy/security/mock_policy_definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime-geronimo/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime-geronimo/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime-geronimo/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/geronimo/GeronimoTransactionManagerHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime-geronimo/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/geronimo/TransactionManagerWrapper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime-geronimo/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/geronimo/TransactionModuleActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime-geronimo/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime-geronimo/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.transaction.runtime.TransactionManagerHelper create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime-geronimo/src/test/java/org/apache/tuscany/sca/policy/transaction/runtime/geronimo/TransactionManagerHelperTestCaseOFF.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/IncompatibleIntentException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/TransactionImplementationPolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/TransactionIntent.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/TransactionInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/TransactionManagerHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/TransactionPolicyProviderFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/TransactionReferencePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/TransactionServicePolicyProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/java/org/apache/tuscany/sca/policy/transaction/runtime/TransactionalAction.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/impl/TransactionPolicyFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/impl/TransactionPolicyImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.transaction.TransactionPolicyFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/resources/log4j.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/main/resources/org/apache/tuscany/sca/policy/transaction/definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-transaction/src/test/java/org/apache/tuscany/sca/policy/transaction/PolicyReadTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicyBuilder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/xml/WSPolicyProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.PolicyBuilder create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TestModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TuscanyWSPolicyAssertion.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TuscanyWSPolicyAssertionProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicyTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/xml/WSPolicyProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/policy-wspolicy/src/test/resources/org/apache/tuscany/sca/policy/wspolicy/test_definitions.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/ComponentContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/Constants.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/InvalidServiceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/NoSuchDomainException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/NoSuchServiceException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/RequestContext.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/ResponseDispatch.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/ServiceReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/ServiceRuntimeException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/ServiceUnavailableException.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/AllowsPassByReference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/AsyncFault.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/AsyncInvocation.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Authentication.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Authorization.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Callback.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/ComponentName.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Confidentiality.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Constructor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Context.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Destroy.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/EagerInit.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Init.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Integrity.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Intent.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/ManagedSharedTransaction.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/ManagedTransaction.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/MutualAuthentication.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/NoManagedTransaction.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/OneWay.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/PolicySets.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Property.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Qualifier.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Reference.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Remotable.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Requires.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Scope.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/Service.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/package.html create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/client/SCAClientFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/client/SCAClientFactoryFinder.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/client/impl/SCAClientFactoryFinderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-api/src/main/java/org/oasisopen/sca/package.html create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryFinderImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl2.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientModuleActivator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientProxyHandler.java create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator create mode 100644 sandbox/sebastien/java/dynamic/modules/sca-client-impl/src/main/resources/META-INF/services/org.oasisopen.sca.client.SCAClientFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/shell/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/shell/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/shell/src/main/java/org/apache/tuscany/sca/shell/Shell.java create mode 100644 sandbox/sebastien/java/dynamic/modules/shell/src/main/java/org/apache/tuscany/sca/shell/jline/CompositeURICompletor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/shell/src/main/java/org/apache/tuscany/sca/shell/jline/ICURICompletor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/shell/src/main/java/org/apache/tuscany/sca/shell/jline/JLine.java create mode 100644 sandbox/sebastien/java/dynamic/modules/shell/src/main/java/org/apache/tuscany/sca/shell/jline/TShellCompletor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/stripes/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/stripes/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/stripes/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/stripes/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/stripes/src/main/java/org/apache/tuscany/sca/stripes/TuscanyHelper.java create mode 100644 sandbox/sebastien/java/dynamic/modules/stripes/src/main/java/org/apache/tuscany/sca/stripes/TuscanyInterceptor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/stripes/src/main/java/org/apache/tuscany/sca/stripes/TuscanyInterceptorSupport.java create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/maven-eclipse.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/LoggingAspect.java create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/SimpleTracingAspect.java create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/TimingAspect.java create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/TracingAspect.java create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/src/main/java/org/apache/tuscany/sca/aspectj/UserTimingAspect.java create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/src/main/resources/META-INF/aop.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/tracing-aspectj/src/test/java/org/apache/tuscany/sca/aspectj/TracingTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript-dojo/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript-dojo/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript-dojo/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript-dojo/build-dojo.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript-dojo/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript-dojo/src/main/java/org/apache/tuscany/sca/web/javascript/dojo/DojoResourceServlet.java create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript-dojo/src/main/java/org/apache/tuscany/sca/web/javascript/dojo/DojoWidgetJavascriptProvider.java create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript-dojo/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.widget.javascript.WidgetImplementationJavascriptProvider create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript-dojo/src/main/resources/tuscany/AtomService.js create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/ComponentJavaScriptGenerator.java create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/ComponentJavaScriptGeneratorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultComponentJavaScriptGeneratorExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultJavascriptProxyFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/JavascriptProxyFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/JavascriptProxyFactoryExtensionPoint.java create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/src/main/resources/META-INF/services/org.apache.tuscany.sca.web.javascript.ComponentJavaScriptGeneratorExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/src/main/resources/META-INF/services/org.apache.tuscany.sca.web.javascript.JavascriptProxyFactoryExtensionPoint create mode 100644 sandbox/sebastien/java/dynamic/modules/web-javascript/src/main/resources/web-javascript-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/wink/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/wink/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/wink/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/wink/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/wink/src/main/java/org/apache/tuscany/sca/wink/PropertyInjectable.java create mode 100644 sandbox/sebastien/java/dynamic/modules/wink/src/main/java/org/apache/tuscany/sca/wink/ReferenceInjectable.java create mode 100644 sandbox/sebastien/java/dynamic/modules/wink/src/main/java/org/apache/tuscany/sca/wink/TuscanyDeploymentConfiguration.java create mode 100644 sandbox/sebastien/java/dynamic/modules/wink/src/main/java/org/apache/tuscany/sca/wink/TuscanyInjectableFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/LICENSE create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/META-INF/MANIFEST.MF create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/NOTICE create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/pom.xml create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/java/org/apache/tuscany/sca/xsd/DefaultXSDFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/java/org/apache/tuscany/sca/xsd/XSDFactory.java create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/java/org/apache/tuscany/sca/xsd/XSDefinition.java create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/java/org/apache/tuscany/sca/xsd/impl/XSDFactoryImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/java/org/apache/tuscany/sca/xsd/impl/XSDefinitionImpl.java create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessor.java create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/resources/META-INF/services/org.apache.tuscany.sca.xsd.XSDFactory create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/main/resources/xsd-xml-validation-messages.properties create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/test/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessorTestCase.java create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/test/resources/xsd/greeting.xsd create mode 100644 sandbox/sebastien/java/dynamic/modules/xsd/src/test/resources/xsd/name.xsd (limited to 'sandbox/sebastien/java/dynamic/modules') diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/LICENSE b/sandbox/sebastien/java/dynamic/modules/assembly-xml/LICENSE new file mode 100644 index 0000000000..8aa906c321 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/LICENSE @@ -0,0 +1,205 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/META-INF/MANIFEST.MF b/sandbox/sebastien/java/dynamic/modules/assembly-xml/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..57e693005b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/META-INF/MANIFEST.MF @@ -0,0 +1,70 @@ +Manifest-Version: 1.0 +Export-Package: org.apache.tuscany.sca.assembly.xml;version="2.0.0"; + uses:="org.apache.tuscany.sca.assembly, + javax.xml.parsers, + org.apache.tuscany.sca.core, + org.apache.tuscany.sca.contribution, + org.apache.tuscany.sca.monitor, + org.apache.tuscany.sca.policy, + org.apache.tuscany.sca.interfacedef, + org.w3c.dom, + javax.xml.namespace, + javax.xml.stream, + org.apache.tuscany.sca.contribution.resolver, + org.apache.tuscany.sca.contribution.processor", + org.apache.tuscany.sca.definitions.xml;version="2.0.0"; + uses:="javax.xml.stream, + org.apache.tuscany.sca.contribution.resolver, + org.apache.tuscany.sca.definitions, + org.apache.tuscany.sca.contribution.processor, + org.apache.tuscany.sca.core, + org.apache.tuscany.sca.monitor, + javax.xml.namespace", + org.apache.tuscany.sca.policy.xml;version="2.0.0"; + uses:="javax.xml.xpath, + javax.xml.stream, + org.apache.tuscany.sca.contribution.resolver, + org.apache.tuscany.sca.contribution.processor, + org.apache.tuscany.sca.core, + org.apache.tuscany.sca.policy, + org.apache.tuscany.sca.monitor, + javax.xml.namespace" +SCA-Version: 1.1 +Bundle-Name: Apache Tuscany SCA XML Assembly Model +Bundle-Vendor: The Apache Software Foundation +Bundle-Version: 2.0.0 +Bundle-ManifestVersion: 2 +Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt +Bundle-Description: Apache Tuscany SCA XML Assembly Model +Import-Package: javax.xml.namespace, + javax.xml.parsers, + javax.xml.stream, + javax.xml.transform, + javax.xml.transform.dom, + javax.xml.transform.stream, + javax.xml.validation;resolution:=optional, + javax.xml.xpath, + org.apache.tuscany.sca.assembly;version="2.0.0", + org.apache.tuscany.sca.assembly.xml;version="2.0.0", + org.apache.tuscany.sca.common.java.io;version="2.0.0", + org.apache.tuscany.sca.common.xml.xpath;version="2.0.0", + org.apache.tuscany.sca.contribution;version="2.0.0", + org.apache.tuscany.sca.contribution.java;version="2.0.0", + org.apache.tuscany.sca.contribution.namespace;version="2.0.0", + org.apache.tuscany.sca.contribution.processor;version="2.0.0", + org.apache.tuscany.sca.contribution.resolver;version="2.0.0", + org.apache.tuscany.sca.core;version="2.0.0", + org.apache.tuscany.sca.definitions;version="2.0.0", + org.apache.tuscany.sca.definitions.util;version="2.0.0", + org.apache.tuscany.sca.definitions.xml;version="2.0.0", + org.apache.tuscany.sca.extensibility;version="2.0.0", + org.apache.tuscany.sca.interfacedef;version="2.0.0", + org.apache.tuscany.sca.interfacedef.impl;version="2.0.0", + org.apache.tuscany.sca.monitor;version="2.0.0", + org.apache.tuscany.sca.policy;version="2.0.0", + org.apache.tuscany.sca.xsd;version="2.0.0", + org.w3c.dom, + org.xml.sax;resolution:=optional +Bundle-SymbolicName: org.apache.tuscany.sca.assembly.xml +Bundle-DocURL: http://www.apache.org/ +Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/NOTICE b/sandbox/sebastien/java/dynamic/modules/assembly-xml/NOTICE new file mode 100644 index 0000000000..ad2ba40961 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/NOTICE @@ -0,0 +1,6 @@ +${pom.name} +Copyright (c) 2005 - 2010 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/pom.xml b/sandbox/sebastien/java/dynamic/modules/assembly-xml/pom.xml new file mode 100644 index 0000000000..8eb306f07c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/pom.xml @@ -0,0 +1,88 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-modules + 2.0-SNAPSHOT + ../pom.xml + + tuscany-assembly-xml + Apache Tuscany SCA Assembly XML Model + + + + org.apache.tuscany.sca + tuscany-assembly + 2.0-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-contribution + 2.0-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-xsd + 2.0-SNAPSHOT + + + + + + org.apache.geronimo.specs + geronimo-stax-api_1.0_spec + 1.0.1 + compile + + + + org.codehaus.woodstox + wstx-asl + 3.2.4 + runtime + + + stax + stax-api + + + + + + org.apache.tuscany.sca + tuscany-assembly-xsd + 2.0-SNAPSHOT + runtime + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java new file mode 100644 index 0000000000..641e523d2c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java @@ -0,0 +1,781 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI; +import static javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI; +import static javax.xml.stream.XMLStreamConstants.CDATA; +import static javax.xml.stream.XMLStreamConstants.CHARACTERS; +import static javax.xml.stream.XMLStreamConstants.COMMENT; +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; +import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; +import static org.apache.tuscany.sca.assembly.xml.Constants.ELEMENT; +import static org.apache.tuscany.sca.assembly.xml.Constants.MANY; +import static org.apache.tuscany.sca.assembly.xml.Constants.MULTIPLICITY; +import static org.apache.tuscany.sca.assembly.xml.Constants.MUST_SUPPLY; +import static org.apache.tuscany.sca.assembly.xml.Constants.NAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.ONE_N; +import static org.apache.tuscany.sca.assembly.xml.Constants.ONE_ONE; +import static org.apache.tuscany.sca.assembly.xml.Constants.PROPERTY; +import static org.apache.tuscany.sca.assembly.xml.Constants.PROPERTY_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.SCA11_NS; +import static org.apache.tuscany.sca.assembly.xml.Constants.TARGET; +import static org.apache.tuscany.sca.assembly.xml.Constants.TYPE; +import static org.apache.tuscany.sca.assembly.xml.Constants.VALUE; +import static org.apache.tuscany.sca.assembly.xml.Constants.VALUE_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.ZERO_N; +import static org.apache.tuscany.sca.assembly.xml.Constants.ZERO_ONE; + +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; + +import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.dom.DOMSource; + +import org.apache.tuscany.sca.assembly.AbstractContract; +import org.apache.tuscany.sca.assembly.AbstractProperty; +import org.apache.tuscany.sca.assembly.AbstractReference; +import org.apache.tuscany.sca.assembly.AssemblyFactory; +import org.apache.tuscany.sca.assembly.Base; +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.Contract; +import org.apache.tuscany.sca.assembly.Extensible; +import org.apache.tuscany.sca.assembly.Implementation; +import org.apache.tuscany.sca.assembly.Multiplicity; +import org.apache.tuscany.sca.assembly.Reference; +import org.apache.tuscany.sca.assembly.Service; +import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.Problem; +import org.apache.tuscany.sca.monitor.Problem.Severity; +import org.apache.tuscany.sca.policy.PolicyFactory; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * A base class with utility methods for the other artifact processors in this module. + * + * @version $Rev$ $Date$ + */ +abstract class BaseAssemblyProcessor extends BaseStAXArtifactProcessor { + + protected AssemblyFactory assemblyFactory; + protected PolicyFactory policyFactory; + protected StAXArtifactProcessor extensionProcessor; + protected PolicySubjectProcessor policyProcessor; + private DocumentBuilderFactory documentBuilderFactory; + + + /** + * Constructs a new BaseArtifactProcessor. + * @param assemblyFactory + * @param policyFactory + */ + @SuppressWarnings("unchecked") + protected BaseAssemblyProcessor(AssemblyFactory assemblyFactory, + PolicyFactory policyFactory, + DocumentBuilderFactory documentBuilderFactory, + StAXArtifactProcessor extensionProcessor) { + this.assemblyFactory = assemblyFactory; + this.policyFactory = policyFactory; + this.documentBuilderFactory = documentBuilderFactory; + this.extensionProcessor = (StAXArtifactProcessor)extensionProcessor; + this.policyProcessor = new PolicySubjectProcessor(policyFactory); + } + + /** + * @param modelFactories + * @param staxProcessor + * @param monitor + */ + protected BaseAssemblyProcessor(FactoryExtensionPoint modelFactories, + StAXArtifactProcessor staxProcessor) { + this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); + this.policyFactory = modelFactories.getFactory(PolicyFactory.class); + this.documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); + this.extensionProcessor = (StAXArtifactProcessor)staxProcessor; + this.policyProcessor = new PolicySubjectProcessor(policyFactory); + } + + /** + * Marshals warnings into the monitor + * + * @param message + * @param model + * @param messageParameters + */ + protected void warning(Monitor monitor, String message, Object model, Object... messageParameters) { + if (monitor != null) { + Problem problem = + monitor.createProblem(this.getClass().getName(), + Messages.RESOURCE_BUNDLE, + Severity.WARNING, + model, + message, + (Object[])messageParameters); + monitor.problem(problem); + } + } + + /** + * Marshals errors into the monitor + * + * @param problems + * @param message + * @param model + */ + protected void error(Monitor monitor, String message, Object model, Object... messageParameters) { + if (monitor != null) { + Problem problem = + monitor.createProblem(this.getClass().getName(), + Messages.RESOURCE_BUNDLE, + Severity.ERROR, + model, + message, + (Object[])messageParameters); + monitor.problem(problem); + } + } + + /** + * Marshals exceptions into the monitor + * + * @param problems + * @param message + * @param model + */ + protected void error(Monitor monitor, String message, Object model, Exception ex) { + if (monitor != null) { + Problem problem = + monitor.createProblem(this.getClass().getName(), + Messages.RESOURCE_BUNDLE, + Severity.ERROR, + model, + message, + ex); + monitor.problem(problem); + } + } + + /** + * Start an element. + * @param writer + * @param name + * @param attrs + * @throws XMLStreamException + */ + protected void writeStart(XMLStreamWriter writer, String name, XAttr... attrs) throws XMLStreamException { + super.writeStart(writer, SCA11_NS, name, attrs); + } + + /** + * Start a document. + * @param writer + * @throws XMLStreamException + */ + protected void writeStartDocument(XMLStreamWriter writer, String name, XAttr... attrs) throws XMLStreamException { + super.writeStartDocument(writer, SCA11_NS, name, attrs); + } + + /** + * Read list of reference targets + * @param reference + * @param reader + */ + protected void readTargets(Reference reference, XMLStreamReader reader) { + String value = getString(reader, TARGET); + ComponentService target = null; + if (value != null) { + for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) { + target = assemblyFactory.createComponentService(); + target.setUnresolved(true); + target.setName(tokens.nextToken()); + reference.getTargets().add(target); + } + } + } + + /** + * Write a list of targets into an attribute + * @param reference + * @return + */ + protected XAttr writeTargets(Reference reference) { + List targets = new ArrayList(); + for (Service target : reference.getTargets()) { + targets.add(target.getName()); + } + return new XAttr(TARGET, targets); + } + + /** + * Read a multiplicity attribute. + * @param reference + * @param reader + */ + protected void readMultiplicity(AbstractReference reference, XMLStreamReader reader) { + String value = reader.getAttributeValue(null, MULTIPLICITY); + if (ZERO_ONE.equals(value)) { + reference.setMultiplicity(Multiplicity.ZERO_ONE); + } else if (ONE_N.equals(value)) { + reference.setMultiplicity(Multiplicity.ONE_N); + } else if (ZERO_N.equals(value)) { + reference.setMultiplicity(Multiplicity.ZERO_N); + } else if (ONE_ONE.equals(value)) { + reference.setMultiplicity(Multiplicity.ONE_ONE); + } + } + + protected XAttr writeMultiplicity(AbstractReference reference) { + Multiplicity multiplicity = reference.getMultiplicity(); + if (multiplicity != null) { + String value = null; + if (Multiplicity.ZERO_ONE.equals(multiplicity)) { + value = ZERO_ONE; + } else if (Multiplicity.ONE_N.equals(multiplicity)) { + value = ONE_N; + } else if (Multiplicity.ZERO_N.equals(multiplicity)) { + value = ZERO_N; + } else if (Multiplicity.ONE_ONE.equals(multiplicity)) { + value = ONE_ONE; + return null; + } + return new XAttr(MULTIPLICITY, value); + } + return null; + } + + + /** + * Reads an abstract property element. + * @param property + * @param reader + * @param context TODO + * @throws XMLStreamException + * @throws ContributionReadException + */ + protected void readAbstractProperty(AbstractProperty property, XMLStreamReader reader, ProcessorContext context) throws XMLStreamException, + ContributionReadException { + + property.setName(getString(reader, NAME)); + property.setMany(getBoolean(reader, MANY)); + property.setMustSupply(getBoolean(reader, MUST_SUPPLY)); + property.setXSDElement(getQName(reader, ELEMENT)); + property.setXSDType(getQName(reader, TYPE)); + // MJE added 14/05/2009 - check for both @element and @type being present - disallowed by OASIS Assembly spec + if( property.getXSDElement() != null && property.getXSDType() != null ) { + ContributionReadException ce = new ContributionReadException("[ASM40010,ASM60040] Error: property has both @type and @element attribute values - " + + property.getName()); + error(context.getMonitor(), "ContributionReadException", property, ce); + } // end if + + } + + /** + * Resolve an implementation. + * @param implementation + * @param resolver + * @param context + * @return + * @throws ContributionResolveException + */ + protected Implementation resolveImplementation(Implementation implementation, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + if (implementation != null) { + if (implementation.isUnresolved()) { + implementation = resolver.resolveModel(Implementation.class, implementation, context); + + // Lazily resolve implementations + if (implementation.isUnresolved()) { + extensionProcessor.resolve(implementation, resolver, context); + if (!implementation.isUnresolved()) { + resolver.addModel(implementation, context); + } + } + } + } + return implementation; + } + + /** + * Resolve interface, callback interface and bindings on a list of contracts. + * @param contracts the list of contracts + * @param resolver the resolver to use to resolve models + * @param context TODO + */ + protected void resolveContracts(List contracts, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + resolveContracts(null, contracts, resolver, context); + } + + /** + * Resolve interface, callback interface and bindings on a list of contracts. + * @param parent element for the contracts + * @param contracts the list of contracts + * @param resolver the resolver to use to resolve models + * @param context TODO + */ + protected void resolveContracts(Base parent, List contracts, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + + String parentName = + (parent instanceof Composite) ? ((Composite)parent).getName().toString() : (parent instanceof Component) + ? ((Component)parent).getName() : "UNKNOWN"; + + for (Contract contract : contracts) { + // Resolve the interface contract + InterfaceContract interfaceContract = contract.getInterfaceContract(); + if (interfaceContract != null) { + extensionProcessor.resolve(interfaceContract, resolver, context); + } + + // Resolve bindings + for (int i = 0, n = contract.getBindings().size(); i < n; i++) { + Binding binding = contract.getBindings().get(i); + extensionProcessor.resolve(binding, resolver, context); + + } + + // Resolve callback bindings + if (contract.getCallback() != null) { + + for (int i = 0, n = contract.getCallback().getBindings().size(); i < n; i++) { + Binding binding = contract.getCallback().getBindings().get(i); + extensionProcessor.resolve(binding, resolver, context); + } + } + } + } + + /** + * Resolve interface and callback interface on a list of abstract contracts. + * @param contracts the list of contracts + * @param resolver the resolver to use to resolve models + * @param context TODO + */ + protected void resolveAbstractContracts(List contracts, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + for (AbstractContract contract : contracts) { + + // Resolve the interface contract + InterfaceContract interfaceContract = contract.getInterfaceContract(); + if (interfaceContract != null) { + extensionProcessor.resolve(interfaceContract, resolver, context); + } + } + } + + /** + * Read a property value into a DOM document. + * @param element + * @param type + * @param reader + * @param context TODO + * @return + * @throws XMLStreamException + * @throws ContributionReadException + * @throws ParserConfigurationException + */ + protected Document readPropertyValue(QName element, QName type, boolean isMany, XMLStreamReader reader, ProcessorContext context) throws XMLStreamException, + ContributionReadException { + Document document; + try { + if (documentBuilderFactory == null) { + documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + } + document = documentBuilderFactory.newDocumentBuilder().newDocument(); + } catch (ParserConfigurationException e) { + ContributionReadException ce = new ContributionReadException(e); + error(context.getMonitor(), "ContributionReadException", documentBuilderFactory, ce); + throw ce; + } + + // Collect the property values as elements under the + Element root = document.createElementNS(SCA11_NS, "sca:" + PROPERTY); + String nameAttr = getString(reader, NAME); + if (nameAttr != null) { + root.setAttributeNS(SCA11_NS, "sca:" + NAME, nameAttr); + } + declareNamespace(root, "sca", SCA11_NS); + if (type != null) { + org.w3c.dom.Attr xsi = document.createAttributeNS(XMLNS_ATTRIBUTE_NS_URI, "xmlns:xsi"); + xsi.setValue(W3C_XML_SCHEMA_INSTANCE_NS_URI); + root.setAttributeNodeNS(xsi); + + String prefix = type.getPrefix(); + if (prefix == null || prefix.length() == 0) { + prefix = "ns"; + } + + declareNamespace(root, prefix, type.getNamespaceURI()); + + org.w3c.dom.Attr xsiType = document.createAttributeNS(W3C_XML_SCHEMA_INSTANCE_NS_URI, "xsi:type"); + xsiType.setValue(prefix + ":" + type.getLocalPart()); + root.setAttributeNodeNS(xsiType); + } + document.appendChild(root); + + // Start to parse the property + QName name = reader.getName(); // Should be sca:property + + // SCA 1.1 supports the @value for simple types + String valueAttr = getString(reader, VALUE); + if (valueAttr != null) { + Element valueElement = document.createElementNS(SCA11_NS, VALUE); + root.appendChild(valueElement); + valueElement.setTextContent(valueAttr); + } + + boolean gotOneValue = false; + boolean isTextForProperty = true; + StringBuffer text = new StringBuffer(); + + int event = reader.getEventType(); + while (true) { + switch (event) { + case START_ELEMENT: + name = reader.getName(); + if (PROPERTY_QNAME.equals(name)) { + isTextForProperty = true; + break; + } + isTextForProperty = false; + + // CONFORMANCE: ASM50033 + // A property subelement MUST NOT be used when the @value attribute is used + // to specify the value for that property. + if (valueAttr != null) { + error(context.getMonitor(), "ASM50033: value attribute exists for the property element", name, name); + } + // Read + if (VALUE_QNAME.equals(name)) { + if (gotOneValue && !isMany) { + // TODO: TUSCANY-3231 this should be error not warning but that breaks OASIS tests + // [rfeng] We should not issue warning here as the component property many inherit @many from the componentType property + // warning(context.getMonitor(), "ASM50032: multiple value elements for single-valued property", name, name); + } + loadElement(reader, root); + gotOneValue = true; + } else { + // Global elements + loadElement(reader, root); + } + break; + case XMLStreamConstants.CHARACTERS: + case XMLStreamConstants.CDATA: + if (isTextForProperty) { + text.append(reader.getText()); + } + break; + case END_ELEMENT: + name = reader.getName(); + if (PROPERTY_QNAME.equals(name)) { + + if (root.getChildNodes().getLength() == 0) { + // Add an text as an + if (isTextForProperty){ + if (text.length() > 0) { + Element valueElement = document.createElementNS(SCA11_NS, VALUE); + root.appendChild(valueElement); + valueElement.setTextContent(text.toString()); + } + } + } + return document; + } + break; + } + if (reader.hasNext()) { + event = reader.next(); + } else { + break; + } + } + return document; + } + + /** + * Create a DOM element + * @param document + * @param name + * @return + */ + private Element createElement(Document document, QName name) { + String prefix = name.getPrefix(); + String qname = + (prefix != null && prefix.length() > 0) ? prefix + ":" + name.getLocalPart() : name.getLocalPart(); + return document.createElementNS(name.getNamespaceURI(), qname); + } + + /** + * Declare a namespace. + * @param element + * @param prefix + * @param ns + */ + private void declareNamespace(Element element, String prefix, String ns) { + if (ns == null) { + ns = ""; + } + if (prefix == null) { + prefix = ""; + } + String qname = null; + if ("".equals(prefix)) { + qname = "xmlns"; + } else { + qname = "xmlns:" + prefix; + } + Node node = element; + boolean declared = false; + while (node != null && node.getNodeType() == Node.ELEMENT_NODE) { + NamedNodeMap attrs = node.getAttributes(); + if (attrs == null) { + break; + } + Node attr = attrs.getNamedItem(qname); + if (attr != null) { + declared = ns.equals(attr.getNodeValue()); + break; + } + node = node.getParentNode(); + } + if (!declared) { + org.w3c.dom.Attr attr = element.getOwnerDocument().createAttributeNS(XMLNS_ATTRIBUTE_NS_URI, qname); + attr.setValue(ns); + element.setAttributeNodeNS(attr); + } + } + + /** + * Load a property value specification from an StAX stream into a DOM + * Document. Only elements, text and attributes are processed; all comments + * and other whitespace are ignored. + * + * @param reader the stream to read from + * @param root the DOM node to load + * @throws javax.xml.stream.XMLStreamException + */ + private void loadElement(XMLStreamReader reader, Element root) throws XMLStreamException { + Document document = root.getOwnerDocument(); + Node current = root; + while (true) { + switch (reader.getEventType()) { + case START_ELEMENT: + QName name = reader.getName(); + Element child = createElement(document, name); + + // push the new element and make it the current one + current.appendChild(child); + current = child; + + int count = reader.getNamespaceCount(); + for (int i = 0; i < count; i++) { + String prefix = reader.getNamespacePrefix(i); + String ns = reader.getNamespaceURI(i); + declareNamespace(child, prefix, ns); + } + + if (!"".equals(name.getNamespaceURI())) { + declareNamespace(child, name.getPrefix(), name.getNamespaceURI()); + } + + // add the attributes for this element + count = reader.getAttributeCount(); + for (int i = 0; i < count; i++) { + String ns = reader.getAttributeNamespace(i); + String prefix = reader.getAttributePrefix(i); + String qname = reader.getAttributeLocalName(i); + String value = reader.getAttributeValue(i); + if (prefix != null && prefix.length() != 0) { + qname = prefix + ":" + qname; + } + child.setAttributeNS(ns, qname, value); + if (ns != null) { + declareNamespace(child, prefix, ns); + } + } + + break; + case CDATA: + current.appendChild(document.createCDATASection(reader.getText())); + break; + case CHARACTERS: + current.appendChild(document.createTextNode(reader.getText())); + break; + case COMMENT: + current.appendChild(document.createComment(reader.getText())); + break; + case END_ELEMENT: + // pop the element off the stack + current = current.getParentNode(); + // if we are back at the root then we are done + if (current == root) { + return; + } + + } + if (reader.hasNext()) { + reader.next(); + } else { + return; + } + } + } + + /** + * Write the value of a property + * @param document + * @param element + * @param type + * @param writer + * @throws XMLStreamException + */ + protected void writePropertyValue(Object propertyValue, QName element, QName type, XMLStreamWriter writer) + throws XMLStreamException { + + if (propertyValue instanceof Document) { + Document document = (Document)propertyValue; + NodeList nodeList = document.getDocumentElement().getChildNodes(); + + for (int item = 0; item < nodeList.getLength(); ++item) { + Node node = nodeList.item(item); + int nodeType = node.getNodeType(); + if (nodeType == Node.ELEMENT_NODE) { + XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new DOMSource(node)); + + while (reader.hasNext()) { + switch (reader.next()) { + case XMLStreamConstants.START_ELEMENT: + QName name = reader.getName(); + writer.writeStartElement(name.getPrefix(), name.getLocalPart(), name.getNamespaceURI()); + + int namespaces = reader.getNamespaceCount(); + for (int i = 0; i < namespaces; i++) { + String prefix = reader.getNamespacePrefix(i); + String ns = reader.getNamespaceURI(i); + writer.writeNamespace(prefix, ns); + } + + if (!"".equals(name.getNamespaceURI())) { + writer.writeNamespace(name.getPrefix(), name.getNamespaceURI()); + } + + // add the attributes for this element + namespaces = reader.getAttributeCount(); + for (int i = 0; i < namespaces; i++) { + String ns = reader.getAttributeNamespace(i); + String prefix = reader.getAttributePrefix(i); + String qname = reader.getAttributeLocalName(i); + String value = reader.getAttributeValue(i); + + writer.writeAttribute(prefix, ns, qname, value); + } + + break; + case XMLStreamConstants.CDATA: + writer.writeCData(reader.getText()); + break; + case XMLStreamConstants.CHARACTERS: + writer.writeCharacters(reader.getText()); + break; + case XMLStreamConstants.END_ELEMENT: + writer.writeEndElement(); + break; + } + } + } else { + writer.writeCharacters(node.getTextContent()); + } + } + } + } + + /** + * + * @param reader + * @param elementName + * @param extensionAttributeProcessor + * @param context TODO + * @param estensibleElement + * @throws ContributionReadException + * @throws XMLStreamException + */ + protected void readExtendedAttributes(XMLStreamReader reader, + QName elementName, + Extensible extensible, + StAXAttributeProcessor extensionAttributeProcessor, + ProcessorContext context) throws ContributionReadException, + XMLStreamException { + super.readExtendedAttributes(reader, extensible, extensionAttributeProcessor, assemblyFactory, context); + } + + + /*protected void validatePolicySets(PolicySubject policySetAttachPoint) + throws ContributionResolveException { + validatePolicySets(policySetAttachPoint, policySetAttachPoint.getApplicablePolicySets()); + } + + + protected void validatePolicySets(PolicySubject policySetAttachPoint, + List applicablePolicySets) throws ContributionResolveException { + //Since the applicablePolicySets in a policySetAttachPoint will already have the + //list of policysets that might ever be applicable to this attachPoint, just check + //if the defined policysets feature in the list of applicable policysets + ExtensionType attachPointType = policySetAttachPoint.getType(); + for ( PolicySet definedPolicySet : policySetAttachPoint.getPolicySets() ) { + if ( !definedPolicySet.isUnresolved() ) { + if ( !applicablePolicySets.contains(definedPolicySet)) { + throw new ContributionResolveException("Policy Set '" + definedPolicySet.getName() + + "' does not apply to binding type " + + attachPointType.getName()); + } + } else { + throw new ContributionResolveException("Policy Set '" + definedPolicySet.getName() + + "' is not defined in this domain "); + + + } + } + }*/ +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java new file mode 100644 index 0000000000..b5fe005812 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java @@ -0,0 +1,129 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.URL; + +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.assembly.ComponentType; +import org.apache.tuscany.sca.common.java.io.IOHelper; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.monitor.Monitor; + +/** + * A componentType processor. + * + * @version $Rev$ $Date$ + */ +public class ComponentTypeDocumentProcessor extends BaseAssemblyProcessor implements URLArtifactProcessor { + private ValidatingXMLInputFactory inputFactory; + + /** + * Constructs a new componentType processor. + * @param modelFactories + * @param staxProcessor + */ + public ComponentTypeDocumentProcessor(FactoryExtensionPoint modelFactories, + StAXArtifactProcessor staxProcessor) { + super(modelFactories, staxProcessor); + this.inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class); + } + + public ComponentType read(URL contributionURL, URI uri, URL url, ProcessorContext context) throws ContributionReadException { + InputStream urlStream = null; + Monitor monitor = context.getMonitor(); + try { + + // Create a stream reader + urlStream = IOHelper.openStream(url); + XMLStreamReader reader = inputFactory.createXMLStreamReader(url.toString(), urlStream); + ValidatingXMLInputFactory.setMonitor(reader, monitor); + reader.nextTag(); + + // Reader the componentType model + ComponentType componentType = (ComponentType)extensionProcessor.read(reader, context); + if (componentType != null) { + componentType.setURI(uri.toString()); + } + + // For debugging purposes, write it back to XML +// if (componentType != null) { +// try { +// ByteArrayOutputStream bos = new ByteArrayOutputStream(); +// XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); +// outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.TRUE); +// extensionProcessor.write(componentType, outputFactory.createXMLStreamWriter(bos)); +// Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(bos.toByteArray())); +// OutputFormat format = new OutputFormat(); +// format.setIndenting(true); +// format.setIndent(2); +// XMLSerializer serializer = new XMLSerializer(System.out, format); +// serializer.serialize(document); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } + + return componentType; + + } catch (XMLStreamException e) { + ContributionReadException ce = new ContributionReadException(e); + error(monitor, "ContributionReadException", inputFactory, ce); + throw ce; + } catch (IOException e) { + ContributionReadException ce = new ContributionReadException(e); + error(monitor, "ContributionReadException", inputFactory, ce); + throw ce; + } finally { + try { + if (urlStream != null) { + urlStream.close(); + urlStream = null; + } + } catch (IOException ioe) { + //ignore + } + } + } + + public void resolve(ComponentType componentType, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + extensionProcessor.resolve(componentType, resolver, context); + } + + public String getArtifactType() { + return ".componentType"; + } + + public Class getModelType() { + return ComponentType.class; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeModelResolver.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeModelResolver.java new file mode 100644 index 0000000000..9a4a0dc035 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeModelResolver.java @@ -0,0 +1,96 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.tuscany.sca.assembly.ComponentType; +import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.contribution.Import; +import org.apache.tuscany.sca.contribution.java.JavaImport; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; + +/** + * A Model Resolver for ComponentType models. + * + * @version $Rev$ $Date$ + */ +public class ComponentTypeModelResolver implements ModelResolver { + private Contribution contribution; + private Map map = new HashMap(); + + public ComponentTypeModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { + this.contribution = contribution; + } + + public void addModel(Object resolved, ProcessorContext context) { + ComponentType componentType = (ComponentType)resolved; + map.put(componentType.getURI(), componentType); + } + + public Object removeModel(Object resolved, ProcessorContext context) { + return map.remove(((ComponentType)resolved).getURI()); + } + + public T resolveModel(Class modelClass, T unresolved, ProcessorContext context) { + + //get componentType artifact URI + String uri = ((ComponentType)unresolved).getURI(); + if (uri == null) { + return (T)unresolved; + } + + //lookup the componentType + ComponentType resolved = (ComponentType) map.get(uri); + if (resolved != null) { + return modelClass.cast(resolved); + } + + //If not found, delegate the resolution to the imports (in this case based on the java imports) + //compute the package name from the componentType URI + if (unresolved instanceof ComponentType) { + //FIXME The core assembly model now depends on java imports to + // resolve componentTypes of all kinds, this is not right at all!!! + int s = uri.lastIndexOf('/'); + if (s != -1) { + String packageName = uri.substring(0, uri.lastIndexOf("/")); + for (Import import_ : this.contribution.getImports()) { + if (import_ instanceof JavaImport) { + JavaImport javaImport = (JavaImport)import_; + //check the import location against the computed package name from the componentType URI + if (javaImport.getPackage().equals(packageName)) { + // Delegate the resolution to the import resolver + resolved = javaImport.getModelResolver().resolveModel(ComponentType.class, (ComponentType)unresolved, context); + if (!resolved.isUnresolved()) { + return modelClass.cast(resolved); + } + } + } + } + } + } + + return (T)unresolved; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java new file mode 100644 index 0000000000..b402b6e3a3 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java @@ -0,0 +1,381 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; +import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; +import static org.apache.tuscany.sca.assembly.xml.Constants.CALLBACK; +import static org.apache.tuscany.sca.assembly.xml.Constants.CALLBACK_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.COMPONENT_TYPE; +import static org.apache.tuscany.sca.assembly.xml.Constants.COMPONENT_TYPE_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.ELEMENT; +import static org.apache.tuscany.sca.assembly.xml.Constants.IMPLEMENTATION; +import static org.apache.tuscany.sca.assembly.xml.Constants.MANY; +import static org.apache.tuscany.sca.assembly.xml.Constants.MUST_SUPPLY; +import static org.apache.tuscany.sca.assembly.xml.Constants.NAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.OPERATION_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.PROPERTY; +import static org.apache.tuscany.sca.assembly.xml.Constants.PROPERTY_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.REFERENCE; +import static org.apache.tuscany.sca.assembly.xml.Constants.REFERENCE_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.SERVICE; +import static org.apache.tuscany.sca.assembly.xml.Constants.SERVICE_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.TYPE; +import static org.apache.tuscany.sca.assembly.xml.Constants.EXTENSION; +import static org.apache.tuscany.sca.assembly.xml.Constants.EXTENSION_QNAME; + +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.Binding; +import org.apache.tuscany.sca.assembly.Callback; +import org.apache.tuscany.sca.assembly.ComponentType; +import org.apache.tuscany.sca.assembly.Contract; +import org.apache.tuscany.sca.assembly.Extensible; +import org.apache.tuscany.sca.assembly.Property; +import org.apache.tuscany.sca.assembly.Reference; +import org.apache.tuscany.sca.assembly.Service; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.interfacedef.Operation; +import org.apache.tuscany.sca.interfacedef.impl.OperationImpl; +import org.apache.tuscany.sca.policy.PolicySubject; +import org.w3c.dom.Document; + +/** + * A componentType processor. + * + * @version $Rev$ $Date$ + */ +public class ComponentTypeProcessor extends BaseAssemblyProcessor implements StAXArtifactProcessor { + + /** + * Constructs a new componentType processor. + * + * @param modelFactories + * @param extensionProcessor + * @param extensionAttributeProcessor + * @param monitor + */ + public ComponentTypeProcessor(FactoryExtensionPoint modelFactories, + StAXArtifactProcessor extensionProcessor, + StAXAttributeProcessor extensionAttributeProcessor) { + super(modelFactories, extensionProcessor); + } + + public ComponentType read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException { + ComponentType componentType = null; + Service service = null; + Reference reference = null; + Contract contract = null; + Property property = null; + Callback callback = null; + QName name = null; + + try { + // Read the componentType document + while (reader.hasNext()) { + int event = reader.getEventType(); + switch (event) { + case START_ELEMENT: + name = reader.getName(); + + if (Constants.COMPONENT_TYPE_QNAME.equals(name)) { + + // Read a + componentType = assemblyFactory.createComponentType(); + + } else if (Constants.SERVICE_QNAME.equals(name)) { + + // Read a + service = assemblyFactory.createService(); + contract = service; + service.setName(getString(reader, Constants.NAME)); + componentType.getServices().add(service); + policyProcessor.readPolicies(service, reader); + + } else if (Constants.REFERENCE_QNAME.equals(name)) { + + // Read a + reference = assemblyFactory.createReference(); + contract = reference; + reference.setName(getString(reader, Constants.NAME)); + reference.setWiredByImpl(getBoolean(reader, Constants.WIRED_BY_IMPL)); + readMultiplicity(reference, reader); + readTargets(reference, reader); + componentType.getReferences().add(reference); + policyProcessor.readPolicies(reference, reader); + + } else if (Constants.PROPERTY_QNAME.equals(name)) { + + // Read a + property = assemblyFactory.createProperty(); + readAbstractProperty(property, reader, context); + policyProcessor.readPolicies(property, reader); + + // Read the property value + Document value = readPropertyValue(property.getXSDElement(), property.getXSDType(), property.isMany(), reader, context); + property.setValue(value); + + componentType.getProperties().add(property); + + } else if (Constants.IMPLEMENTATION_QNAME.equals(name)) { + + // Read an element + policyProcessor.readPolicies(componentType, reader); + + } else if (Constants.CALLBACK_QNAME.equals(name)) { + + // Read a + callback = assemblyFactory.createCallback(); + contract.setCallback(callback); + policyProcessor.readPolicies(callback, reader); + + } else if (OPERATION_QNAME.equals(name)) { + + // Read an + Operation operation = new OperationImpl(); + operation.setName(getString(reader, NAME)); + operation.setUnresolved(true); + if (callback != null) { + policyProcessor.readPolicies(callback, operation, reader); + } else { + policyProcessor.readPolicies(contract, operation, reader); + } + } else if(EXTENSION_QNAME.equals(name)) { + // Handle + //ignore element as this is a wrapper for extensibility + break; + } else { + + + // Read an extension element + Object extension = extensionProcessor.read(reader, context); + if (extension != null) { + if (extension instanceof InterfaceContract) { + + // and + contract.setInterfaceContract((InterfaceContract)extension); + + } else if (extension instanceof Binding) { + + // and + if (callback != null) { + callback.getBindings().add((Binding)extension); + } else { + contract.getBindings().add((Binding)extension); + } + } else { + + // Add the extension element to the current element + if (callback != null) { + callback.getExtensions().add(extension); + } else if (contract != null) { + contract.getExtensions().add(extension); + } else if (property != null) { + property.getExtensions().add(extension); + } else { + if (componentType instanceof Extensible) { + ((Extensible)componentType).getExtensions().add(extension); + } + } + } + } + } + break; + + case END_ELEMENT: + name = reader.getName(); + + // Clear current state when reading reaching end element + if (SERVICE_QNAME.equals(name)) { + service = null; + contract = null; + } else if (REFERENCE_QNAME.equals(name)) { + reference = null; + contract = null; + } else if (PROPERTY_QNAME.equals(name)) { + property = null; + } else if (CALLBACK_QNAME.equals(name)) { + callback = null; + } + break; + } + + // Read the next element + if (reader.hasNext()) { + reader.next(); + } + } + } + catch (XMLStreamException e) { + ContributionReadException ex = new ContributionReadException(e); + error(context.getMonitor(), "XMLStreamException", reader, ex); + } + + return componentType; + } + + public void write(ComponentType componentType, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException { + + // Write element + writeStartDocument(writer, COMPONENT_TYPE); + + // Write elements + for (Service service : componentType.getServices()) { + writeStart(writer, SERVICE, new XAttr(NAME, service.getName()), + policyProcessor.writePolicies(service)); + + if (service.getInterfaceContract() != null) { + extensionProcessor.write(service.getInterfaceContract(), writer, context); + } + + for (Binding binding: service.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + if (service.getCallback() != null) { + Callback callback = service.getCallback(); + writeStart(writer, CALLBACK, policyProcessor.writePolicies(callback)); + + for (Binding binding: callback.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + for (Object extension: callback.getExtensions()) { + extensionProcessor.write(extension, writer, context); + } + + writeEnd(writer); + } + + this.writeExtendedElements(writer, service, extensionProcessor, context); + + writeEnd(writer); + } + + // Write elements + for (Reference reference : componentType.getReferences()) { + + writeStart(writer, REFERENCE, + new XAttr(NAME, reference.getName()), + writeMultiplicity(reference), + writeTargets(reference), + policyProcessor.writePolicies(reference)); + + extensionProcessor.write(reference.getInterfaceContract(), writer, context); + + for (Binding binding: reference.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + if (reference.getCallback() != null) { + Callback callback = reference.getCallback(); + writeStart(writer, CALLBACK, + policyProcessor.writePolicies(callback)); + + for (Binding binding: callback.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + for (Object extension: callback.getExtensions()) { + extensionProcessor.write(extension, writer, context); + } + + writeEnd(writer); + } + + this.writeExtendedElements(writer, reference, extensionProcessor, context); + + writeEnd(writer); + } + + // Write elements + for (Property property : componentType.getProperties()) { + writeStart(writer, + PROPERTY, + new XAttr(NAME, property.getName()), + new XAttr(MUST_SUPPLY, property.isMustSupply()), + new XAttr(MANY, property.isMany()), + new XAttr(TYPE, property.getXSDType()), + new XAttr(ELEMENT, property.getXSDElement()), + policyProcessor.writePolicies(property)); + + // Write property value + writePropertyValue(property.getValue(), property.getXSDElement(), property.getXSDType(), writer); + + // Write extensions + for (Object extension : property.getExtensions()) { + extensionProcessor.write(extension, writer, context); + } + + writeEnd(writer); + } + + // Write extension elements + if (componentType instanceof Extensible) { + for (Object extension: ((Extensible)componentType).getExtensions()) { + extensionProcessor.write(extension, writer, context); + } + } + + // Write elements if the componentType has + // any intents or policySets + boolean writeImplementation = false; + if (componentType instanceof PolicySubject) { + if (!((PolicySubject)componentType).getRequiredIntents().isEmpty()) { + writeImplementation = true; + } + } + if (componentType instanceof PolicySubject) { + if (!((PolicySubject)componentType).getPolicySets().isEmpty()) { + writeImplementation = true; + } + } + if (writeImplementation) { + writeStart(writer, IMPLEMENTATION, + policyProcessor.writePolicies(componentType)); + } + + writeEndDocument(writer); + } + + public void resolve(ComponentType componentType, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + + // Resolve component type services and references + resolveContracts(componentType.getServices(), resolver, context); + resolveContracts(componentType.getReferences(), resolver, context); + } + + public QName getArtifactType() { + return COMPONENT_TYPE_QNAME; + } + + public Class getModelType() { + return ComponentType.class; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java new file mode 100644 index 0000000000..5ba42a0dec --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java @@ -0,0 +1,185 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.URL; + +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.transform.stream.StreamSource; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.common.java.io.IOHelper; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.monitor.Monitor; +import org.xml.sax.SAXException; + +/** + * A composite processor. + * + * @version $Rev$ $Date$ + */ +public class CompositeDocumentProcessor extends BaseAssemblyProcessor implements URLArtifactProcessor, + XMLStreamConstants { + private ValidatingXMLInputFactory inputFactory; + + + /** + * Constructs a composite document processor + * @param modelFactories + * @param staxProcessor + * @param monitor + */ + public CompositeDocumentProcessor(FactoryExtensionPoint modelFactories, + StAXArtifactProcessor staxProcessor) { + super(modelFactories, staxProcessor); + this.inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class); + } + + /** + * Reads the contents of a Composite document and returns a Composite object + * @param contributionURL - the URL of the contribution containing the Composite - can be null + * @param uri - the URI of the composite document + * @param url - the URL of the composite document + * @return a Composite object built from the supplied Composite document + */ + public Composite read(URL contributionURL, URI uri, URL url, ProcessorContext context) throws ContributionReadException { + if( uri == null || url == null ) { + throw new ContributionReadException("Request to read composite with uri or url NULL"); + } // end if + InputStream scdlStream = null; + + try { + scdlStream = IOHelper.openStream(url); + } catch (IOException e) { + ContributionReadException ce = new ContributionReadException("Exception reading " + uri, e); + error(context.getMonitor(), "ContributionReadException", url, ce); + throw ce; + } + return read(uri, url, scdlStream, context); + } + + public Composite read(URI uri, URL url, InputStream scdlStream, ProcessorContext context) throws ContributionReadException { + try { + + Composite composite = null; + Monitor monitor = context.getMonitor(); + // Tag the monitor with the name of the composite artifact + if( monitor != null ) { + monitor.setArtifactName(uri.toString()); + } //end if + + // Set up a StreamSource for the composite file, since this has an associated URL that + // can be used by the parser to find references to other files such as DTDs + StreamSource scdlSource = new StreamSource( scdlStream, url.toString() ); + XMLStreamReader reader = inputFactory.createXMLStreamReader(scdlSource); + + // set the monitor on the input factory as the standard XMLInputFactory + // methods used for creating readers don't allow for the context to + // be passed in + ValidatingXMLInputFactory.setMonitor(reader, context.getMonitor()); + + // Read the header (i.e. text before the element, if any + readCompositeFileHeader( reader ); + + // Read the composite model + composite = (Composite)extensionProcessor.read(reader, context); + if (composite != null) { + composite.setURI(uri.toString()); + } + + return composite; + + } catch (XMLStreamException e) { + ContributionReadException ce = new ContributionReadException("Exception reading " + uri, e); + error(context.getMonitor(), "ContributionReadException", inputFactory, ce); + throw ce; + } finally { + try { + if (scdlStream != null) { + scdlStream.close(); + scdlStream = null; + } + } catch (IOException ioe) { + //ignore + } + } + } + + /** + * Reads the header portion of a composite file - i.e. the section of the file before the + * start tag + * In particular handle any DTD declarations + * @param reader - an XMLStreamReader which is reading the composite file + * @throws XMLStreamException + */ + private void readCompositeFileHeader( XMLStreamReader reader ) throws XMLStreamException { + + while (true) { + int event = reader.next(); + + if ( event == CHARACTERS + || event == CDATA + || event == SPACE + || event == PROCESSING_INSTRUCTION + || event == COMMENT + || event == DTD + || event == ENTITY_DECLARATION ) { + continue; + } // end if + + // The first start (or end) element terminates the header scan + if (event == START_ELEMENT || event == END_ELEMENT) { + return; + } // end if + } // end while + } // end method readCompositeFileHeader + + public void resolve(Composite composite, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + try { + if (composite != null) + extensionProcessor.resolve(composite, resolver, context); + } catch (Throwable e ) { + // Add information about which composite was being processed when the exception occurred + String newMessage = "Processing composite " + composite.getName() + ": " + e.getMessage(); + throw new ContributionResolveException( newMessage, e ); + } // end try + } + + public String getArtifactType() { + return ".composite"; + } + + public Class getModelType() { + return Composite.class; + } + +} // end class diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java new file mode 100644 index 0000000000..7a396fe100 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java @@ -0,0 +1,96 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import java.util.HashMap; +import java.util.Map; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.contribution.Import; +import org.apache.tuscany.sca.contribution.namespace.NamespaceImport; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.monitor.Monitor; + +/** + * A Model Resolver for Composite models. + * + * @version $Rev$ $Date$ + */ +public class CompositeModelResolver implements ModelResolver { + + private Contribution contribution; + private Map map = new HashMap(); + + public CompositeModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { + this.contribution = contribution; + } + + public void addModel(Object resolved, ProcessorContext context) { + Composite composite = (Composite)resolved; + Composite old = map.put(composite.getName(), composite); + if (old != null) { + Monitor.error(context.getMonitor(), + this, + Messages.RESOURCE_BUNDLE, + "DuplicateCompositeName", + composite.getName().toString(), + contribution.getLocation()); + } + } + + public Object removeModel(Object resolved, ProcessorContext context) { + return map.remove(((Composite)resolved).getName()); + } + + public T resolveModel(Class modelClass, T unresolved, ProcessorContext context) { + + // Lookup a definition for the given namespace + QName qname = ((Composite)unresolved).getName(); + Composite resolved = null; + + // Delegate the resolution to the imports + for (Import import_ : this.contribution.getImports()) { + if (import_ instanceof NamespaceImport) { + NamespaceImport namespaceImport = (NamespaceImport)import_; + if (namespaceImport.getNamespace().equals(qname.getNamespaceURI())) { + + // Delegate the resolution to the import resolver + resolved = namespaceImport.getModelResolver().resolveModel(Composite.class, (Composite)unresolved, context); + if (!resolved.isUnresolved()) { + return modelClass.cast(resolved); + } + } + } + } + + // No definition found, search within the current contribution + resolved = (Composite) map.get(qname); + if (resolved != null) { + return modelClass.cast(resolved); + } + + return (T)unresolved; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java new file mode 100644 index 0000000000..22879c2beb --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java @@ -0,0 +1,1134 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; +import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; +import static org.apache.tuscany.sca.assembly.xml.Constants.AUTOWIRE; +import static org.apache.tuscany.sca.assembly.xml.Constants.CALLBACK; +import static org.apache.tuscany.sca.assembly.xml.Constants.CALLBACK_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.COMPONENT; +import static org.apache.tuscany.sca.assembly.xml.Constants.COMPONENT_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.COMPOSITE; +import static org.apache.tuscany.sca.assembly.xml.Constants.COMPOSITE_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.ELEMENT; +import static org.apache.tuscany.sca.assembly.xml.Constants.EXTENSION_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.FILE; +import static org.apache.tuscany.sca.assembly.xml.Constants.IMPLEMENTATION_COMPOSITE; +import static org.apache.tuscany.sca.assembly.xml.Constants.IMPLEMENTATION_COMPOSITE_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.INCLUDE; +import static org.apache.tuscany.sca.assembly.xml.Constants.INCLUDE_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.INTENTS; +import static org.apache.tuscany.sca.assembly.xml.Constants.LOCAL; +import static org.apache.tuscany.sca.assembly.xml.Constants.MANY; +import static org.apache.tuscany.sca.assembly.xml.Constants.MUST_SUPPLY; +import static org.apache.tuscany.sca.assembly.xml.Constants.NAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.NONOVERRIDABLE; +import static org.apache.tuscany.sca.assembly.xml.Constants.POLICY_SET_ATTACHMENT_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.PROMOTE; +import static org.apache.tuscany.sca.assembly.xml.Constants.PROPERTY; +import static org.apache.tuscany.sca.assembly.xml.Constants.PROPERTY_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.REFERENCE; +import static org.apache.tuscany.sca.assembly.xml.Constants.REFERENCE_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.REPLACE; +import static org.apache.tuscany.sca.assembly.xml.Constants.REQUIRES_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.SCA11_NS; +import static org.apache.tuscany.sca.assembly.xml.Constants.SERVICE; +import static org.apache.tuscany.sca.assembly.xml.Constants.SERVICE_QNAME; +import static org.apache.tuscany.sca.assembly.xml.Constants.SOURCE; +import static org.apache.tuscany.sca.assembly.xml.Constants.TARGET; +import static org.apache.tuscany.sca.assembly.xml.Constants.TARGET_NAMESPACE; +import static org.apache.tuscany.sca.assembly.xml.Constants.TYPE; +import static org.apache.tuscany.sca.assembly.xml.Constants.URI; +import static org.apache.tuscany.sca.assembly.xml.Constants.WIRE; +import static org.apache.tuscany.sca.assembly.xml.Constants.WIRED_BY_IMPL; +import static org.apache.tuscany.sca.assembly.xml.Constants.WIRE_QNAME; + +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.xpath.XPathExpressionException; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Callback; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentProperty; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.CompositeReference; +import org.apache.tuscany.sca.assembly.CompositeService; +import org.apache.tuscany.sca.assembly.Contract; +import org.apache.tuscany.sca.assembly.Implementation; +import org.apache.tuscany.sca.assembly.Property; +import org.apache.tuscany.sca.assembly.Reference; +import org.apache.tuscany.sca.assembly.Service; +import org.apache.tuscany.sca.assembly.Wire; +import org.apache.tuscany.sca.common.xml.xpath.XPathHelper; +import org.apache.tuscany.sca.contribution.Artifact; +import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.contribution.ContributionFactory; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.contribution.resolver.ResolverExtension; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicyFactory; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.PolicySubject; +import org.apache.tuscany.sca.xsd.XSDFactory; +import org.apache.tuscany.sca.xsd.XSDefinition; +import org.w3c.dom.Document; + +/** + * A composite processor. + * + * @version $Rev$ $Date$ + */ +public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArtifactProcessor { + private XPathHelper xpathHelper; + private PolicyFactory intentAttachPointTypeFactory; + private StAXAttributeProcessor extensionAttributeProcessor; + private ContributionFactory contributionFactory; + private XSDFactory xsdFactory; + + /** + * Construct a new composite processor + * + * @param extensionPoints + * @param extensionProcessor + */ + public CompositeProcessor(ExtensionPointRegistry extensionPoints, + StAXArtifactProcessor extensionProcessor, + StAXAttributeProcessor extensionAttributeProcessor) { + + this(modelFactories(extensionPoints), extensionProcessor, extensionAttributeProcessor); + + this.xpathHelper = XPathHelper.getInstance(extensionPoints); + this.extensionAttributeProcessor = extensionAttributeProcessor; + + this.xsdFactory = extensionPoints.getExtensionPoint(XSDFactory.class); + } + + /** + * Constructs a new composite processor + * + * @param modelFactories + * @param extensionProcessor + * @param monitor + */ + private CompositeProcessor(FactoryExtensionPoint modelFactories, + StAXArtifactProcessor extensionProcessor, + StAXAttributeProcessor extensionAttributeProcessor) { + + super(modelFactories, extensionProcessor); + this.intentAttachPointTypeFactory = modelFactories.getFactory(PolicyFactory.class); + this.contributionFactory = modelFactories.getFactory(ContributionFactory.class); + this.extensionAttributeProcessor = extensionAttributeProcessor; + + this.xsdFactory = modelFactories.getFactory(XSDFactory.class); + } + + public Composite read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException { + Composite composite = null; + Composite include = null; + Component component = null; + Property property = null; + ComponentService componentService = null; + ComponentReference componentReference = null; + ComponentProperty componentProperty = null; + CompositeService compositeService = null; + CompositeReference compositeReference = null; + Contract contract = null; + Wire wire = null; + Callback callback = null; + QName name = null; + Monitor monitor = context.getMonitor(); + try { + // Read the composite document + while (reader.hasNext()) { + int event = reader.getEventType(); + switch (event) { + case START_ELEMENT: + name = reader.getName(); + + if (COMPOSITE_QNAME.equals(name)) { + + // Read a + composite = assemblyFactory.createComposite(); + composite.setSpecVersion(Constants.SCA11_NS); + + composite.setName(new QName(getURIString(reader, TARGET_NAMESPACE), getString(reader, NAME))); + + if (!isSet(reader, TARGET_NAMESPACE)) { + // spec says that a composite must have a namespace + warning(monitor, "NoCompositeNamespace", composite, composite.getName().toString()); + } + + if (isSet(reader, AUTOWIRE)) { + composite.setAutowire(getBoolean(reader, AUTOWIRE)); + } + + //handle extension attributes + this.readExtendedAttributes(reader, name, composite, extensionAttributeProcessor, context); + + composite.setLocal(getBoolean(reader, LOCAL)); + policyProcessor.readPolicies(composite, reader); + + } else if (INCLUDE_QNAME.equals(name)) { + + // Read an + include = assemblyFactory.createComposite(); + include.setName(getQName(reader, NAME)); + include.setURI(getURIString(reader, URI)); + include.setUnresolved(true); + composite.getIncludes().add(include); + + } else if (SERVICE_QNAME.equals(name)) { + if (component != null) { + + // Read a + componentService = assemblyFactory.createComponentService(); + contract = componentService; + componentService.setName(getString(reader, NAME)); + + //handle extension attributes + this.readExtendedAttributes(reader, name, componentService, extensionAttributeProcessor, context); + + component.getServices().add(componentService); + policyProcessor.readPolicies(contract, reader); + } else { + + // Read a + compositeService = assemblyFactory.createCompositeService(); + contract = compositeService; + compositeService.setName(getString(reader, NAME)); + + String promoted = getURIString(reader, PROMOTE); + if (promoted != null) { + String promotedComponentName; + String promotedServiceName; + int s = promoted.indexOf('/'); + if (s == -1) { + promotedComponentName = promoted; + promotedServiceName = null; + } else { + promotedComponentName = promoted.substring(0, s); + promotedServiceName = promoted.substring(s + 1); + } + + Component promotedComponent = assemblyFactory.createComponent(); + promotedComponent.setUnresolved(true); + promotedComponent.setName(promotedComponentName); + compositeService.setPromotedComponent(promotedComponent); + + ComponentService promotedService = assemblyFactory.createComponentService(); + promotedService.setUnresolved(true); + promotedService.setName(promotedServiceName); + compositeService.setPromotedService(promotedService); + } + + //handle extension attributes + this.readExtendedAttributes(reader, name, compositeService, extensionAttributeProcessor, context); + + composite.getServices().add(compositeService); + policyProcessor.readPolicies(contract, reader); + } + + // set the parent model so that binding processing can + // detect it they're being read as part of a reference + // or a service + context.setParentModel(contract); + + } else if (REFERENCE_QNAME.equals(name)) { + if (component != null) { + // Read a + componentReference = assemblyFactory.createComponentReference(); + contract = componentReference; + componentReference.setName(getString(reader, NAME)); + readMultiplicity(componentReference, reader); + if (isSet(reader, AUTOWIRE)) { + componentReference.setAutowire(getBoolean(reader, AUTOWIRE)); + } + // Read @nonOverridable + String nonOverridable = reader.getAttributeValue(null, NONOVERRIDABLE); + if (nonOverridable != null) { + componentReference.setNonOverridable(Boolean.parseBoolean(nonOverridable)); + } + readTargets(componentReference, reader); + componentReference.setWiredByImpl(getBoolean(reader, WIRED_BY_IMPL)); + + //handle extension attributes + this.readExtendedAttributes(reader, + name, + componentReference, + extensionAttributeProcessor, context); + + component.getReferences().add(componentReference); + policyProcessor.readPolicies(contract, reader); + } else { + // Read a + compositeReference = assemblyFactory.createCompositeReference(); + contract = compositeReference; + compositeReference.setName(getString(reader, NAME)); + readMultiplicity(compositeReference, reader); + readTargets(compositeReference, reader); + String promote = getString(reader, Constants.PROMOTE); + if (promote != null) { + for (StringTokenizer tokens = new StringTokenizer(promote); tokens.hasMoreTokens();) { + String refName = tokens.nextToken(); + Component promotedComponent = assemblyFactory.createComponent(); + int index = refName.indexOf('/'); + if (index == -1) { + error(monitor, "Invalid reference name", compositeReference, refName); + } + String promotedComponentName = refName.substring(0, index); + promotedComponent.setName(promotedComponentName); + promotedComponent.setUnresolved(true); + compositeReference.getPromotedComponents().add(promotedComponent); + ComponentReference promotedReference = + assemblyFactory.createComponentReference(); + promotedReference.setUnresolved(true); + promotedReference.setName(refName); + compositeReference.getPromotedReferences().add(promotedReference); + } + } + compositeReference.setWiredByImpl(getBoolean(reader, WIRED_BY_IMPL)); + + //handle extension attributes + this.readExtendedAttributes(reader, + name, + compositeReference, + extensionAttributeProcessor, context); + + composite.getReferences().add(compositeReference); + policyProcessor.readPolicies(contract, reader); + } + + // set the parent model so that binding processing can + // detect it they're being read as part of a reference + // or a service + context.setParentModel(contract); + + } else if (PROPERTY_QNAME.equals(name)) { + if (component != null) { + + // Read a + componentProperty = assemblyFactory.createComponentProperty(); + property = componentProperty; + String source = getURIString(reader, SOURCE); + if (source != null) { + source = source.trim(); + } + componentProperty.setSource(source); + if (source != null) { + // $/... + if (source.charAt(0) == '$') { + int index = source.indexOf('/'); + if (index == -1) { + // Tolerating $prop + source = ""; + } else { + source = source.substring(index + 1); + } + if ("".equals(source)) { + source = "."; + } + } + + try { + componentProperty.setSourceXPathExpression(xpathHelper.compile(reader + .getNamespaceContext(), source)); + } catch (XPathExpressionException e) { + ContributionReadException ce = new ContributionReadException(e); + error(monitor, "ContributionReadException", source, ce); + //throw ce; + } + } + componentProperty.setFile(getURIString(reader, FILE)); + + //handle extension attributes + this.readExtendedAttributes(reader, + name, + componentProperty, + extensionAttributeProcessor, context); + + policyProcessor.readPolicies(property, reader); + readAbstractProperty(componentProperty, reader, context); + + // Read the property value + Document value = + readPropertyValue(property.getXSDElement(), property.getXSDType(), property + .isMany(), reader, context); + property.setValue(value); + + component.getProperties().add(componentProperty); + } else { + + // Read a + property = assemblyFactory.createProperty(); + policyProcessor.readPolicies(property, reader); + readAbstractProperty(property, reader, context); + + // Read the property value + Document value = + readPropertyValue(property.getXSDElement(), property.getXSDType(), property + .isMany(), reader, context); + property.setValue(value); + + composite.getProperties().add(property); + } + + // TUSCANY-1949 + // If the property doesn't have a value, the END_ELEMENT event is read by the readPropertyValue + if (reader.getEventType() == END_ELEMENT && PROPERTY_QNAME.equals(reader.getName())) { + property = null; + componentProperty = null; + } + + } else if (COMPONENT_QNAME.equals(name)) { + + // Read a + component = assemblyFactory.createComponent(); + component.setName(getString(reader, NAME)); + if (isSet(reader, AUTOWIRE)) { + component.setAutowire(getBoolean(reader, AUTOWIRE)); + } + if (isSet(reader, URI)) { + component.setURI(getURIString(reader, URI)); + } + + //handle extension attributes + this.readExtendedAttributes(reader, name, component, extensionAttributeProcessor, context); + + composite.getComponents().add(component); + policyProcessor.readPolicies(component, reader); + + } else if (WIRE_QNAME.equals(name)) { + + // Read a + wire = assemblyFactory.createWire(); + ComponentReference source = assemblyFactory.createComponentReference(); + source.setUnresolved(true); + source.setName(getURIString(reader, SOURCE)); + wire.setSource(source); + + ComponentService target = assemblyFactory.createComponentService(); + target.setUnresolved(true); + target.setName(getURIString(reader, TARGET)); + wire.setTarget(target); + + // Read @replace + String replace = reader.getAttributeValue(null, REPLACE); + if (replace != null) { + wire.setReplace(Boolean.parseBoolean(replace)); + } + + //handle extension attributes + this.readExtendedAttributes(reader, name, wire, extensionAttributeProcessor, context); + + composite.getWires().add(wire); + policyProcessor.readPolicies(wire, reader); + + } else if (CALLBACK_QNAME.equals(name)) { + + // Read a + callback = assemblyFactory.createCallback(); + contract.setCallback(callback); + callback.setParentContract(contract); + + //handle extension attributes + this.readExtendedAttributes(reader, name, callback, extensionAttributeProcessor, context); + + policyProcessor.readPolicies(callback, reader); + + // set the parent model so that binding processing can + // detect it they're being read as part of a callback + context.setParentModel(callback); + + } else if (IMPLEMENTATION_COMPOSITE_QNAME.equals(name)) { + + // Read an implementation.composite + Composite implementation = assemblyFactory.createComposite(); + implementation.setName(getQName(reader, NAME)); + implementation.setUnresolved(true); + + //handle extension attributes + this.readExtendedAttributes(reader, name, implementation, extensionAttributeProcessor, context); + + component.setImplementation(implementation); + policyProcessor.readPolicies(implementation, reader); + } else if (REQUIRES_QNAME.equals(name)) { + List intents = getQNames(reader, INTENTS); + for (QName i : intents) { + Intent intent = policyFactory.createIntent(); + intent.setName(i); + if (composite != null) { + composite.getRequiredIntents().add(intent); + } else if (component != null) { + component.getRequiredIntents().add(intent); + } else if (contract != null) { + contract.getRequiredIntents().add(intent); + } else if (callback != null) { + callback.getRequiredIntents().add(intent); + } + } + } else if (POLICY_SET_ATTACHMENT_QNAME.equals(name)) { + QName ps = getQName(reader, NAME); + if (ps != null) { + PolicySet policySet = policyFactory.createPolicySet(); + policySet.setName(ps); + if (composite != null) { + composite.getPolicySets().add(policySet); + } else if (component != null) { + component.getPolicySets().add(policySet); + } else if (contract != null) { + contract.getPolicySets().add(policySet); + } else if (callback != null) { + callback.getPolicySets().add(policySet); + } + } + } else if(EXTENSION_QNAME.equals(name)) { + // Handle + //ignore element as this is a wrapper for extensibility + break; + } else { + + // Read an extension element + Object extension = extensionProcessor.read(reader, context); + if (extension != null) { + if (extension instanceof InterfaceContract) { + + // and + // + if (contract != null) { + contract.setInterfaceContract((InterfaceContract)extension); + } else { + if (name.getNamespaceURI().equals(SCA11_NS)) { + error(monitor, "UnexpectedInterfaceElement", extension); + //throw new ContributionReadException("Unexpected element found. It should appear inside a or element"); + } else { + composite.getExtensions().add(extension); + } + } + } else if (extension instanceof Binding) { + if (extension instanceof PolicySubject) { + ExtensionType bindingType = intentAttachPointTypeFactory.createBindingType(); + bindingType.setType(name); + bindingType.setUnresolved(true); + ((PolicySubject)extension).setExtensionType(bindingType); + } + // and + // + if (callback != null) { + callback.getBindings().add((Binding)extension); + } else { + if (contract != null) { + contract.getBindings().add((Binding)extension); + } else { + if (name.getNamespaceURI().equals(SCA11_NS)) { + error(monitor, "UnexpectedBindingElement", extension); + //throw new ContributionReadException("Unexpected element found. It should appear inside a or element"); + } else { + composite.getExtensions().add(extension); + } + } + } + + } else if (extension instanceof Implementation) { + if (extension instanceof PolicySubject) { + ExtensionType implType = + intentAttachPointTypeFactory.createImplementationType(); + implType.setType(name); + implType.setUnresolved(true); + ((PolicySubject)extension).setExtensionType(implType); + } + // + if (component != null) { + component.setImplementation((Implementation)extension); + } else { + if (name.getNamespaceURI().equals(SCA11_NS)) { + error(monitor, "UnexpectedImplementationElement", extension); + //throw new ContributionReadException("Unexpected element found. It should appear inside a element"); + } else { + composite.getExtensions().add(extension); + } + } + } else { + + // Add the extension element to the current + // element + if (callback != null) { + callback.getExtensions().add(extension); + } else if (contract != null) { + contract.getExtensions().add(extension); + } else if (property != null) { + property.getExtensions().add(extension); + } else if (component != null) { + component.getExtensions().add(extension); + } else { + composite.getExtensions().add(extension); + } + } + } + } + break; + + case XMLStreamConstants.CHARACTERS: + break; + + case END_ELEMENT: + name = reader.getName(); + + // Clear current state when reading reaching end element + if (SERVICE_QNAME.equals(name)) { + componentService = null; + compositeService = null; + contract = null; + } else if (INCLUDE_QNAME.equals(name)) { + include = null; + } else if (REFERENCE_QNAME.equals(name)) { + componentReference = null; + compositeReference = null; + contract = null; + } else if (PROPERTY_QNAME.equals(name)) { + componentProperty = null; + property = null; + } else if (COMPONENT_QNAME.equals(name)) { + component = null; + } else if (WIRE_QNAME.equals(name)) { + wire = null; + } else if (CALLBACK_QNAME.equals(name)) { + callback = null; + } + break; + } + + // Read the next element + if (reader.hasNext()) { + reader.next(); + } + } + } catch (XMLStreamException e) { + ContributionReadException ex = new ContributionReadException(e); + error(monitor, "XMLStreamException", reader, ex); + } + + return composite; + } + + public void write(Composite composite, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, + XMLStreamException { + + // Write element + writeStartDocument(writer, + COMPOSITE, + new XAttr(TARGET_NAMESPACE, composite.getName().getNamespaceURI()), + new XAttr(NAME, composite.getName().getLocalPart()), + new XAttr(LOCAL, composite.isLocal() ? Boolean.TRUE : null), + new XAttr(AUTOWIRE, composite.getAutowire()), + policyProcessor.writePolicies(composite)); + + //write extended attributes + this.writeExtendedAttributes(writer, composite, extensionAttributeProcessor, context); + + // Write elements + for (Composite include : composite.getIncludes()) { + String uri = include.isUnresolved() ? include.getURI() : null; + writeStart(writer, INCLUDE, new XAttr(NAME, include.getName()), new XAttr(URI, uri)); + + //write extended attributes + this.writeExtendedAttributes(writer, include, extensionAttributeProcessor, context); + + writeEnd(writer); + } + + // Write elements + for (Service service : composite.getServices()) { + CompositeService compositeService = (CompositeService)service; + Component promotedComponent = compositeService.getPromotedComponent(); + ComponentService promotedService = compositeService.getPromotedService(); + String promote; + if (promotedService != null) { + if (promotedService.getName() != null) { + promote = promotedComponent.getName() + '/' + promotedService.getName(); + } else { + promote = promotedComponent.getName(); + } + } else { + promote = null; + } + writeStart(writer, + SERVICE, + new XAttr(NAME, service.getName()), + new XAttr(PROMOTE, promote), + policyProcessor.writePolicies(service)); + + //write extended attributes + this.writeExtendedAttributes(writer, service, extensionAttributeProcessor, context); + + // Write service interface + extensionProcessor.write(service.getInterfaceContract(), writer, context); + + // Write bindings + for (Binding binding : service.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + // Write element + if (service.getCallback() != null) { + Callback callback = service.getCallback(); + writeStart(writer, CALLBACK, policyProcessor.writePolicies(callback)); + + //write extended attributes + this.writeExtendedAttributes(writer, callback, extensionAttributeProcessor, context); + + // Write callback bindings + for (Binding binding : callback.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + // Write extensions + this.writeExtendedElements(writer, service, extensionProcessor, context); + + writeEnd(writer); + } + + // Write extensions + this.writeExtendedElements(writer, service, extensionProcessor, context); + + writeEnd(writer); + } + + // Write elements + for (Component component : composite.getComponents()) { + writeStart(writer, + COMPONENT, + new XAttr(NAME, component.getName()), + new XAttr(URI, component.getURI()), + new XAttr(AUTOWIRE, component.getAutowire()), + policyProcessor.writePolicies(component)); + + //write extended attributes + this.writeExtendedAttributes(writer, component, extensionAttributeProcessor, context); + + // Write the component implementation + Implementation implementation = component.getImplementation(); + if (implementation instanceof Composite) { + writeStart(writer, IMPLEMENTATION_COMPOSITE, new XAttr(NAME, ((Composite)implementation).getName())); + + //write extended attributes + this.writeExtendedAttributes(writer, (Composite)implementation, extensionAttributeProcessor, context); + + writeEnd(writer); + } else { + extensionProcessor.write(component.getImplementation(), writer, context); + } + + for (Object extension : component.getExtensions()) { + extensionProcessor.write(extension, writer, context); + } + + // Write elements + for (ComponentService service : component.getServices()) { + writeStart(writer, SERVICE, new XAttr(NAME, service.getName()), policyProcessor.writePolicies(service)); + + //write extended attributes + this.writeExtendedAttributes(writer, service, extensionAttributeProcessor, context); + + // Write service interface + extensionProcessor.write(service.getInterfaceContract(), writer, context); + + // Write bindings + for (Binding binding : service.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + // Write element + if (service.getCallback() != null) { + Callback callback = service.getCallback(); + writeStart(writer, CALLBACK, policyProcessor.writePolicies(callback)); + + //write extended attributes + this.writeExtendedAttributes(writer, callback, extensionAttributeProcessor, context); + + // Write bindings + for (Binding binding : callback.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + // Write extensions + this.writeExtendedElements(writer, callback, extensionProcessor, context); + + writeEnd(writer); + } + + // Write extensions + this.writeExtendedElements(writer, service, extensionProcessor, context); + + writeEnd(writer); + } + + // Write elements + for (ComponentReference reference : component.getReferences()) { + writeStart(writer, + REFERENCE, + new XAttr(NAME, reference.getName()), + new XAttr(AUTOWIRE, reference.getAutowire()), + (reference.isNonOverridable() ? new XAttr(NONOVERRIDABLE, true) : null), + writeMultiplicity(reference), + writeTargets(reference), + policyProcessor.writePolicies(reference)); + + //write extended attributes + this.writeExtendedAttributes(writer, reference, extensionAttributeProcessor, context); + + // Write reference interface + extensionProcessor.write(reference.getInterfaceContract(), writer, context); + + // Write bindings + for (Binding binding : reference.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + // Write callback + if (reference.getCallback() != null) { + Callback callback = reference.getCallback(); + writeStart(writer, CALLBACK, policyProcessor.writePolicies(callback)); + + //write extended attributes + this.writeExtendedAttributes(writer, callback, extensionAttributeProcessor, context); + + // Write callback bindings + for (Binding binding : callback.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + // Write extensions + this.writeExtendedElements(writer, callback, extensionProcessor, context); + + writeEnd(writer); + } + + // Write extensions + this.writeExtendedElements(writer, reference, extensionProcessor, context); + + writeEnd(writer); + } + + // Write elements + for (ComponentProperty property : component.getProperties()) { + writeStart(writer, + PROPERTY, + new XAttr(NAME, property.getName()), + new XAttr(MUST_SUPPLY, property.isMustSupply()), + new XAttr(MANY, property.isMany()), + new XAttr(TYPE, property.getXSDType()), + new XAttr(ELEMENT, property.getXSDElement()), + new XAttr(SOURCE, property.getSource()), + new XAttr(FILE, property.getFile()), + policyProcessor.writePolicies(property)); + + //write extended attributes + this.writeExtendedAttributes(writer, property, extensionAttributeProcessor, context); + + // Write property value + writePropertyValue(property.getValue(), property.getXSDElement(), property.getXSDType(), writer); + + // Write extensions + for (Object extension : property.getExtensions()) { + extensionProcessor.write(extension, writer, context); + } + + writeEnd(writer); + } + + writeEnd(writer); + } + + // Write elements + for (Reference reference : composite.getReferences()) { + CompositeReference compositeReference = (CompositeReference)reference; + + // Write list of promoted references + List promote = new ArrayList(); + for (ComponentReference promoted : compositeReference.getPromotedReferences()) { + promote.add(promoted.getName()); + } + + // Write element + writeStart(writer, + REFERENCE, + new XAttr(NAME, reference.getName()), + new XAttr(PROMOTE, promote), + writeMultiplicity(reference), + policyProcessor.writePolicies(reference)); + + //write extended attributes + this.writeExtendedAttributes(writer, reference, extensionAttributeProcessor, context); + + // Write reference interface + extensionProcessor.write(reference.getInterfaceContract(), writer, context); + + // Write bindings + for (Binding binding : reference.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + // Write element + if (reference.getCallback() != null) { + Callback callback = reference.getCallback(); + writeStart(writer, CALLBACK); + + //write extended attributes + this.writeExtendedAttributes(writer, callback, extensionAttributeProcessor, context); + + // Write callback bindings + for (Binding binding : callback.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + // Write extensions + this.writeExtendedElements(writer, callback, extensionProcessor, context); + + writeEnd(writer); + } + + // Write extensions + this.writeExtendedElements(writer, reference, extensionProcessor, context); + + writeEnd(writer); + } + + // Write elements + for (Property property : composite.getProperties()) { + writeStart(writer, + PROPERTY, + new XAttr(NAME, property.getName()), + new XAttr(MUST_SUPPLY, property.isMustSupply()), + new XAttr(MANY, property.isMany()), + new XAttr(TYPE, property.getXSDType()), + new XAttr(ELEMENT, property.getXSDElement()), + policyProcessor.writePolicies(property)); + + //write extended attributes + this.writeExtendedAttributes(writer, property, extensionAttributeProcessor, context); + + // Write property value + writePropertyValue(property.getValue(), property.getXSDElement(), property.getXSDType(), writer); + + // Write extensions + for (Object extension : property.getExtensions()) { + extensionProcessor.write(extension, writer, context); + } + + writeEnd(writer); + } + + // Write elements + for (Wire wire : composite.getWires()) { + writeStart(writer, WIRE, new XAttr(SOURCE, wire.getSource().getName()), new XAttr(TARGET, wire.getTarget() + .getName()), wire.isReplace() ? new XAttr(Constants.REPLACE, true) : null); + + //write extended attributes + this.writeExtendedAttributes(writer, wire, extensionAttributeProcessor, context); + + // Write extensions + for (Object extension : wire.getExtensions()) { + extensionProcessor.write(extension, writer, context); + } + writeEnd(writer); + } + + for (Object extension : composite.getExtensions()) { + extensionProcessor.write(extension, writer, context); + } + + writeEndDocument(writer); + } + + public void resolve(Composite composite, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + + Monitor monitor = context.getMonitor(); + try { + monitor.pushContext("Composite: " + composite.getName()); + + // Resolve includes in the composite + for (int i = 0, n = composite.getIncludes().size(); i < n; i++) { + Composite include = composite.getIncludes().get(i); + if (include != null) { + Composite resolved = resolver.resolveModel(Composite.class, include, context); + if (!resolved.isUnresolved()) { + if ((composite.isLocal() && resolved.isLocal()) || (!composite.isLocal() && !resolved.isLocal())) { + composite.getIncludes().set(i, resolved); + } else { + ContributionResolveException ce = + new ContributionResolveException("[ASM60041] Error: Composite " + composite.getName() + + " can only include another composite with the identical @local attribute value"); + error(monitor, "ContributionResolveException", include, ce); + } + } else { + ContributionResolveException ce = + new ContributionResolveException("[ASM60042] Error: Composite " + include.getName() + + " is not a valid composite within the domain"); + error(monitor, "ContributionResolveException", include, ce); + } + } + } + + // Resolve extensions + for (Object extension : composite.getExtensions()) { + if (extension != null) { + extensionProcessor.resolve(extension, resolver, context); + } + } + + //Resolve composite services and references + resolveContracts(composite, composite.getServices(), resolver, context); + resolveContracts(composite, composite.getReferences(), resolver, context); + + for (Property property : composite.getProperties()){ + resolvePropertyType("composite " + composite.getName().toString(), + property, + context.getContribution(), context); + } + + // Resolve component implementations, services and references + for (Component component : composite.getComponents()) { + + //resolve component services and references + resolveContracts(component, component.getServices(), resolver, context); + resolveContracts(component, component.getReferences(), resolver, context); + + for (ComponentProperty componentProperty : component.getProperties()) { + // resolve a reference to a property file + if (componentProperty.getFile() != null) { + Artifact artifact = contributionFactory.createArtifact(); + artifact.setURI(componentProperty.getFile()); + artifact = resolver.resolveModel(Artifact.class, artifact, context); + if (artifact.getLocation() != null) { + componentProperty.setFile(artifact.getLocation()); + } + } + + // resolve the reference to a complex property + resolvePropertyType("component " + component.getName(), + componentProperty, + context.getContribution(), context); + } + + //resolve component implementation + Implementation implementation = component.getImplementation(); + if (implementation != null) { + //now resolve the implementation so that even if there is a shared instance + //for this that is resolved, the specified intents and policysets are safe in the + //component and not lost + implementation = resolveImplementation(implementation, resolver, context); + + component.setImplementation(implementation); + } + + //add model resolver to component + if (component instanceof ResolverExtension) { + ((ResolverExtension)component).setModelResolver(resolver); + } + } + + // Add model resolver to promoted components + for (Service service : composite.getServices()) { + CompositeService compositeService = (CompositeService)service; + Component promotedComponent = compositeService.getPromotedComponent(); + if (promotedComponent instanceof ResolverExtension) { + ((ResolverExtension)promotedComponent).setModelResolver(resolver); + } + } // end for + + } finally { + // Pop context + monitor.popContext(); + } // end try + } + + public QName getArtifactType() { + return COMPOSITE_QNAME; + } + + public Class getModelType() { + return Composite.class; + } + + /** + * Returns the model factory extension point to use. + * + * @param extensionPoints + * @return + */ + private static FactoryExtensionPoint modelFactories(ExtensionPointRegistry extensionPoints) { + return extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); + } + + /** + * Property elements can have XSD types attributes so, in the case of a complex type, we need to find + * the XSD definition that defines that type in the contribution while we still have access to the + * contribution. Later, in the builder, we use this XSD definition to ensure that the property value + * is of the correct type + * + * @param property + * @param contribution + */ + private void resolvePropertyType(String parentName, Property property, Contribution contribution, ProcessorContext context){ + // resolve the reference to a complex property + // we ignore any types in the schema namespace + if (property.getXSDType() != null && + property.getXSDType().getNamespaceURI().equals("http://www.w3.org/2001/XMLSchema") != true){ + XSDefinition xsdDefinition = xsdFactory.createXSDefinition(); + xsdDefinition.setUnresolved(true); + xsdDefinition.setNamespace(property.getXSDType().getNamespaceURI()); + // some unit tests don't set up contribution and model resolvers properly + if (contribution != null && contribution.getModelResolver() != null) { + XSDefinition resolved = contribution.getModelResolver().resolveModel(XSDefinition.class, xsdDefinition, context); + if (resolved == null || resolved.isUnresolved()){ + // raise an error + // [rfeng] The XSD might be not available if we use JAXB annotated classes, report it as a warning for now + warning(context.getMonitor(), "PropertyTypeNotFound", property, property.getXSDType().toString(), property.getName(), parentName); + } else { + // store the schema in the property + property.setXSDDefinition(resolved); + } + } + } + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConfiguredOperationProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConfiguredOperationProcessor.java new file mode 100644 index 0000000000..9930096a26 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConfiguredOperationProcessor.java @@ -0,0 +1,108 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; + +import org.apache.tuscany.sca.assembly.AssemblyFactory; +import org.apache.tuscany.sca.assembly.ConfiguredOperation; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.policy.PolicyFactory; + +/** + * Processor for dealing with 'operation' elements from composite definitions + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public class ConfiguredOperationProcessor implements StAXArtifactProcessor, Constants{ + + private AssemblyFactory assemblyFactory; + private PolicySubjectProcessor policyProcessor; + private PolicyFactory policyFactory; + + + public ConfiguredOperationProcessor(FactoryExtensionPoint modelFactories) { + this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); + this.policyFactory = modelFactories.getFactory(PolicyFactory.class); + this.policyProcessor = new PolicySubjectProcessor(policyFactory); + } + + public ConfiguredOperation read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { + ConfiguredOperation configuredOp = assemblyFactory.createConfiguredOperation(); + + //Read an + configuredOp.setName(reader.getAttributeValue(null, NAME)); + configuredOp.setContractName(reader.getAttributeValue(null, SERVICE)); + configuredOp.setUnresolved(true); + + // Read policies + policyProcessor.readPolicies(configuredOp, reader); + + //Skip to end element + while (reader.hasNext()) { + if (reader.next() == END_ELEMENT && OPERATION_QNAME.equals(reader.getName())) { + break; + } + } + + return configuredOp; + } + + public void write(ConfiguredOperation configuredOperation, XMLStreamWriter writer, ProcessorContext context) + throws ContributionWriteException, XMLStreamException { + + // Write an + writer.writeStartElement(Constants.SCA11_NS, OPERATION); + policyProcessor.writePolicyAttributes(configuredOperation, writer); + + writer.writeAttribute(NAME, configuredOperation.getName()); + if ( configuredOperation.getContractName() != null ) { + writer.writeAttribute(SERVICE, configuredOperation.getContractName()); + } + writer.writeEndElement(); + } + + public void resolve(ConfiguredOperation configuredOperation, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + } + + public QName getArtifactType() { + return OPERATION_QNAME; + } + + public Class getModelType() { + return ConfiguredOperation.class; + } + +} + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java new file mode 100644 index 0000000000..7965002304 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java @@ -0,0 +1,158 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import javax.xml.namespace.QName; + +/** + * Constants used in SCA assembly XML files. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension + */ +public interface Constants { + String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + String SCA11_TUSCANY_NS = "http://tuscany.apache.org/xmlns/sca/1.1"; + + String COMPONENT_TYPE = "componentType"; + QName COMPONENT_TYPE_QNAME = new QName(SCA11_NS, COMPONENT_TYPE); + + String SERVICE = "service"; + QName SERVICE_QNAME = new QName(SCA11_NS, SERVICE); + + String REFERENCE = "reference"; + QName REFERENCE_QNAME = new QName(SCA11_NS, REFERENCE); + + String PROPERTY = "property"; + QName PROPERTY_QNAME = new QName(SCA11_NS, PROPERTY); + + String COMPOSITE = "composite"; + QName COMPOSITE_QNAME = new QName(SCA11_NS, COMPOSITE); + + String INCLUDE = "include"; + QName INCLUDE_QNAME = new QName(SCA11_NS, INCLUDE); + + String COMPONENT = "component"; + QName COMPONENT_QNAME = new QName(SCA11_NS, COMPONENT); + + String WIRE = "wire"; + QName WIRE_QNAME = new QName(SCA11_NS, WIRE); + + String OPERATION = "operation"; + QName OPERATION_QNAME = new QName(SCA11_NS, OPERATION); + + String CALLBACK = "callback"; + QName CALLBACK_QNAME = new QName(SCA11_NS, CALLBACK); + + String IMPLEMENTATION_COMPOSITE = "implementation.composite"; + QName IMPLEMENTATION_COMPOSITE_QNAME = new QName(SCA11_NS, IMPLEMENTATION_COMPOSITE); + + String IMPLEMENTATION = "implementation"; + QName IMPLEMENTATION_QNAME = new QName(SCA11_NS, IMPLEMENTATION); + + String BINDING_SCA = "binding.sca"; + QName BINDING_SCA_QNAME = new QName(Constants.SCA11_NS, BINDING_SCA); + + String EXTENSION = "extensions"; + QName EXTENSION_QNAME = new QName(Constants.SCA11_NS, EXTENSION); + + String NAME = "name"; + String VALUE = "value"; + QName VALUE_QNAME = new QName(SCA11_NS, VALUE); + + String POLICY_SET_ATTACHMENT = "policySetAttachment"; + QName POLICY_SET_ATTACHMENT_QNAME = new QName(SCA11_NS, POLICY_SET_ATTACHMENT); + + String TARGET_NAMESPACE = "targetNamespace"; + String LOCAL = "local"; + String AUTOWIRE = "autowire"; + String NONOVERRIDABLE = "nonOverridable"; + String REPLACE = "replace"; + String REQUIRES = "requires"; + QName REQUIRES_QNAME = new QName(SCA11_NS, REQUIRES); + String INTENTS = "intents"; + + String POLICY_SETS = "policySets"; + String PROMOTE = "promote"; + String TARGET = "target"; + String WIRED_BY_IMPL = "wiredByImpl"; + String MULTIPLICITY = "multiplicity"; + String TYPE = "type"; + String ELEMENT = "element"; + String MANY = "many"; + String MUST_SUPPLY = "mustSupply"; + String SOURCE = "source"; + String FILE = "file"; + String URI = "uri"; + String ZERO_ONE = "0..1"; + String ZERO_N = "0..n"; + String ONE_ONE = "1..1"; + String ONE_N = "1..n"; + + String SERVER_AUTHENTICATION = "serverAuthentication"; + QName SERVER_AUTHENTICATION_INTENT = new QName(SCA11_NS, SERVER_AUTHENTICATION); + String SERVER_AUTHENTICATION_TRANSPORT = "serverAuthentication.transport"; + QName SERVER_AUTHENTICATION_TRANSPORT_INTENT = new QName(SCA11_NS, SERVER_AUTHENTICATION_TRANSPORT); + String SERVER_AUTHENTICATION_MESSAGE = "serverAuthentication.message"; + QName SERVER_AUTHENTICATION_MESSAGE_INTENT = new QName(SCA11_NS, SERVER_AUTHENTICATION_MESSAGE); + + String CLIENT_AUTHENTICATION = "clientAuthentication"; + QName CLIENT_AUTHENTICATION_INTENT = new QName(SCA11_NS, CLIENT_AUTHENTICATION); + String CLIENT_AUTHENTICATION_TRANSPORT = "clientAuthentication.transport"; + QName CLIENT_AUTHENTICATION_TRANSPORT_INTENT = new QName(SCA11_NS, CLIENT_AUTHENTICATION_TRANSPORT); + String CLIENT_AUTHENTICATION_MESSAGE = "clientAuthentication.message"; + QName CLIENT_AUTHENTICATION_MESSAGE_INTENT = new QName(SCA11_NS, CLIENT_AUTHENTICATION_MESSAGE); + + String AUTHENTICATION = "authentication"; + QName AUTHENTICATION_INTENT = new QName(SCA11_NS, AUTHENTICATION); + + String MUTUAL_AUTHENTICATION = "mutualAuthentication"; + QName MUTUAL_AUTHENTICATION_INTENT = new QName(SCA11_NS, MUTUAL_AUTHENTICATION); + + String CONFIDENTIALITY = "confidentiality"; + QName CONFIDENTIALITY_INTENT = new QName(SCA11_NS, CONFIDENTIALITY); + String CONFIDENTIALITY_TRANSPORT = "confidentiality.transport"; + QName CONFIDENTIALITY_TRANSPORT_INTENT = new QName(SCA11_NS, CONFIDENTIALITY_TRANSPORT); + String CONFIDENTIALITY_MESSAGE = "confidentiality.message"; + QName CONFIDENTIALITY_MESSAGE_INTENT = new QName(SCA11_NS, CONFIDENTIALITY_MESSAGE); + + String INTEGRITY = "integrity"; + QName INTEGRITY_INTENT = new QName(SCA11_NS, "INTEGRITY"); + String INTEGRITY_TRANSPORT = "integrity.transport"; + QName INTEGRITY_TRANSPORT_INTENT = new QName(SCA11_NS, INTEGRITY_TRANSPORT); + String INTEGRITY_MESSAGE = "integrity.message"; + QName INTEGRITY_MESSAGE_INTENT = new QName(SCA11_NS, INTEGRITY_MESSAGE); + + String AUTHORIZATION = "authorization"; + QName AUTHORIZATION_INTENT = new QName(SCA11_NS, "INTEGRITY"); + String AUTHORIZATION_FINE_GRAIN = "authorization.fineGrain"; + QName AUTHORIZATION_FINE_GRAIN_INTENT = new QName(SCA11_NS, AUTHORIZATION_FINE_GRAIN); + + // TODO - add transaction intent constants + String NOLISTENER = "noListener"; + QName NOLISTENER_INTENT = new QName(SCA11_NS, NOLISTENER); + + String SOAP = "SOAP"; + QName SOAP_INTENT = new QName(SCA11_NS, SOAP); + String SOAP11 = "SOAP.v1_1"; + QName SOAP11_INTENT = new QName(SCA11_NS, SOAP11); + String SOAP12 = "SOAP.v1_2"; + QName SOAP12_INTENT = new QName(SCA11_NS, SOAP12); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/DefaultBeanModelProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/DefaultBeanModelProcessor.java new file mode 100644 index 0000000000..e6e172a44b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/DefaultBeanModelProcessor.java @@ -0,0 +1,257 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +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.Base; +import org.apache.tuscany.sca.assembly.ComponentType; +import org.apache.tuscany.sca.assembly.Implementation; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Default Model Processor for beans. + * + * @version $Rev$ $Date$ + */ +public class DefaultBeanModelProcessor extends BaseAssemblyProcessor implements StAXArtifactProcessor { + + private QName artifactType; + private Class modelClass; + private Object modelFactory; + private Method factoryMethod; + private Map setterMethods = new HashMap(); + private Map getterMethods = new HashMap(); + + public DefaultBeanModelProcessor(FactoryExtensionPoint modeFactories, + QName artifactType, + Class modelClass, + Object modelFactory) { + super(modeFactories, null); + this.artifactType = artifactType; + this.modelClass = modelClass; + this.modelFactory = modelFactory; + + // Introspect the factory class and bean model class + if (modelFactory != null) { + + // Find the model create method + for (Method method: modelFactory.getClass().getMethods()) { + if (method.getName().startsWith("create") && method.getReturnType() == modelClass) { + factoryMethod = method; + break; + } + } + } + + // Index the bean's setter methods + for (Method method: modelClass.getMethods()) { + Method getter; + String name = method.getName(); + if (name.startsWith("set") && name.length() > 3) { + + // Get the corresponding getter method + try { + getter = modelClass.getMethod("get" + name.substring(3)); + } catch (Exception e) { + getter = null; + continue; + } + + // Get the property name + name = name.substring(3); + if (name.length() > 1) { + if (!name.toUpperCase().equals(name)) { + name = name.substring(0, 1).toLowerCase() + name.substring(1); + } + } + } else { + continue; + } + + // Map an uppercase property name to a lowercase attribute name + if (name.toUpperCase().equals(name)) { + name = name.toLowerCase(); + } + + // Trim trailing _ from property names + if (name.endsWith("_")) { + name = name.substring(0, name.length()-1); + } + setterMethods.put(name, method); + getterMethods.put(name, getter); + } + } + + public T read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { + + // Read an element + try { + + // Create a new instance of the model + Object model; + if (modelFactory != null) { + // Invoke the factory create method + model = factoryMethod.invoke(modelFactory); + } else { + // Invoke the model bean class default constructor + model = modelClass.newInstance(); + } + + // Initialize the bean properties with the attributes found in the + // XML element + for (int i = 0, n = reader.getAttributeCount(); i < n; i++) { + String attributeName = reader.getAttributeLocalName(i); + Method setter = setterMethods.get(attributeName); + if (setter != null) { + String value = null; + if (attributeName.equals("uri")){ + value = getURIString(reader, "uri"); + } else { + value = reader.getAttributeValue(i); + } + setter.invoke(model, value); + } + } + + // Read policies + policyProcessor.readPolicies(model, reader); + + // FIXME read extension elements + + // By default mark the model object unresolved + if (model instanceof Base) { + ((Base)model).setUnresolved(true); + } + + // Skip to end element + while (reader.hasNext()) { + if (reader.next() == END_ELEMENT && artifactType.equals(reader.getName())) { + break; + } + } + return (T) model; + + } catch (Exception e) { + ContributionReadException ce = new ContributionReadException(e); + error(context.getMonitor(), "ContributionReadException", reader, ce); + throw ce; + } + } + + public void write(T bean, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException { + try { + // Write the bean properties as attributes + List attrs = new ArrayList(); + for (Map.Entry entry: getterMethods.entrySet()) { + if (entry.getValue().getReturnType() == String.class) { + String value = (String)entry.getValue().invoke(bean); + attrs.add(new XAttr(entry.getKey(), value)); + } + } + + // Write element + writeStart(writer, artifactType.getNamespaceURI(), artifactType.getLocalPart(), + policyProcessor.writePolicies(bean), new XAttr(null, attrs)); + + writeEnd(writer); + + } catch (Exception e) { + ContributionWriteException ce = new ContributionWriteException(e); + error(context.getMonitor(), "ContributionWriteException", writer, ce); + throw ce; + } + } + + public void resolve(T bean, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + + // Resolve and merge the component type associated with an + // implementation model + if (bean instanceof Implementation) { + Implementation implementation = (Implementation)bean; + String uri = implementation.getURI(); + if (uri != null) { + int d = uri.lastIndexOf('.'); + if (d != -1) { + uri = uri.substring(0, d) + ".componentType"; + + // Resolve the component type + ComponentType componentType = assemblyFactory.createComponentType(); + componentType.setURI(uri); + componentType.setUnresolved(true); + + componentType = resolver.resolveModel(ComponentType.class, componentType, context); + if (componentType != null && !componentType.isUnresolved()) { + + // We found a component type, merge it into the implementation model + implementation.getServices().addAll(componentType.getServices()); + implementation.getReferences().addAll(componentType.getReferences()); + implementation.getProperties().addAll(componentType.getProperties()); + + if (implementation instanceof PolicySubject && + componentType instanceof PolicySubject ) { + PolicySubject policiedImpl = (PolicySubject)implementation; + PolicySubject policiedCompType = (PolicySubject)componentType; + + if ( policiedImpl.getPolicySets() != null) { + policiedImpl.getPolicySets().addAll(policiedCompType.getPolicySets()); + } + if (policiedImpl.getRequiredIntents() != null) { + policiedImpl.getRequiredIntents().addAll(policiedCompType.getRequiredIntents()); + } + } + } + } + } + } + + // Mark the model resolved + if (bean instanceof Base) { + ((Base)bean).setUnresolved(false); + } + } + + public QName getArtifactType() { + return artifactType; + } + + public Class getModelType() { + return modelClass; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/EndpointProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/EndpointProcessor.java new file mode 100644 index 0000000000..d128897df0 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/EndpointProcessor.java @@ -0,0 +1,132 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; + +/** + * + */ +public class EndpointProcessor extends BaseAssemblyProcessor implements StAXArtifactProcessor { + private final static String ENDPOINT = "endpoint"; + private final static QName ENDPOINT_QNAME = new QName(Constants.SCA11_TUSCANY_NS, ENDPOINT); + + private ExtensionPointRegistry registry; + + public EndpointProcessor(ExtensionPointRegistry registry, + StAXArtifactProcessor extensionProcessor, + StAXAttributeProcessor extensionAttributeProcessor) { + + super(modelFactories(registry), extensionProcessor); + this.registry = registry; + } + + /** + * Returns the model factory extension point to use. + * + * @param extensionPoints + * @return + */ + private static FactoryExtensionPoint modelFactories(ExtensionPointRegistry extensionPoints) { + return extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); + } + + public QName getArtifactType() { + return ENDPOINT_QNAME; + } + + public Endpoint read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { + Endpoint endpoint = assemblyFactory.createEndpoint(); + if (reader.getEventType() == XMLStreamConstants.START_DOCUMENT) { + reader.nextTag(); + } + Object model = extensionProcessor.read(reader, context); + if (model instanceof Composite) { + Composite composite = (Composite)model; + Component component = composite.getComponents().get(0); + ComponentService service = component.getServices().get(0); + Binding binding = service.getBindings().get(0); + endpoint.setComponent(component); + endpoint.setService(service); + endpoint.setBinding(binding); + } + return endpoint; + } + + public void write(Endpoint model, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException { + // writeStart(writer, ENDPOINT_QNAME); + extensionProcessor.write(wrap(model), writer, context); + // writeEnd(writer); + } + + private Composite wrap(Endpoint endpoint) { + try { + Composite composite = assemblyFactory.createComposite(); + composite.setName(ENDPOINT_QNAME); + composite.setLocal(false); + if (endpoint.getComponent() != null) { + Component component = (Component)endpoint.getComponent().clone(); + component.setImplementation(null); + composite.getComponents().add(component); + component.getReferences().clear(); + component.getServices().clear(); + if (endpoint.getService() != null) { + ComponentService service = (ComponentService)endpoint.getService().clone(); + component.getServices().add(service); + service.getBindings().clear(); + service.setInterfaceContract(endpoint.getComponentServiceInterfaceContract()); + if (endpoint.getBinding() != null) { + Binding binding = (Binding)endpoint.getBinding().clone(); + service.getBindings().add(binding); + } + } + } + return composite; + } catch (CloneNotSupportedException e) { + return null; + } + } + + public Class getModelType() { + return Endpoint.class; + } + + public void resolve(Endpoint model, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/EndpointReferenceProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/EndpointReferenceProcessor.java new file mode 100644 index 0000000000..eda90c9d44 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/EndpointReferenceProcessor.java @@ -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.sca.assembly.xml; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; + +/** + * + */ +public class EndpointReferenceProcessor extends BaseAssemblyProcessor implements StAXArtifactProcessor { + private final static String ENDPOINT_REFERENCE = "endpointReference"; + private final static QName ENDPOINT_REFERENCE_QNAME = new QName(Constants.SCA11_TUSCANY_NS, ENDPOINT_REFERENCE); + + private ExtensionPointRegistry registry; + + public EndpointReferenceProcessor(ExtensionPointRegistry registry, + StAXArtifactProcessor extensionProcessor, + StAXAttributeProcessor extensionAttributeProcessor) { + + super(modelFactories(registry), extensionProcessor); + this.registry = registry; + } + + /** + * Returns the model factory extension point to use. + * + * @param extensionPoints + * @return + */ + private static FactoryExtensionPoint modelFactories(ExtensionPointRegistry extensionPoints) { + return extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); + } + + public QName getArtifactType() { + return ENDPOINT_REFERENCE_QNAME; + } + + public EndpointReference read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { + EndpointReference endpointReference = assemblyFactory.createEndpointReference(); + if (reader.getEventType() == XMLStreamConstants.START_DOCUMENT) { + reader.nextTag(); + } + Object model = extensionProcessor.read(reader, context); + if (model instanceof Composite) { + Composite composite = (Composite)model; + Component component = composite.getComponents().get(0); + ComponentReference reference = component.getReferences().get(0); + Binding binding = reference.getBindings().get(0); + endpointReference.setComponent(component); + endpointReference.setReference(reference); + reference.getEndpointReferences().add(endpointReference); + endpointReference.setBinding(binding); + + // set up the EPR so that resolution will happen + // at wire creation time if needs be + Endpoint endpoint = assemblyFactory.createEndpoint(); + endpointReference.setTargetEndpoint(endpoint); + + if (reference.getTargets().size() > 0){ + // create a dummy endpoint with the URI set so that + // the endpoint registry will be consulted + endpoint.setUnresolved(true); + endpoint.setURI(reference.getTargets().get(0).getName()); + endpointReference.setStatus(EndpointReference.Status.WIRED_TARGET_NOT_FOUND); + endpointReference.setUnresolved(true); + } else { + endpoint.setUnresolved(false); + endpoint.setBinding(reference.getBindings().get(0)); + endpointReference.setStatus(EndpointReference.Status.RESOLVED_BINDING); + endpointReference.setUnresolved(false); + } + } + return endpointReference; + } + + public void write(EndpointReference model, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException { + extensionProcessor.write(wrap(model), writer, context); + } + + private Composite wrap(EndpointReference endpointReference) { + try { + Composite composite = assemblyFactory.createComposite(); + composite.setName(ENDPOINT_REFERENCE_QNAME); + composite.setLocal(false); + Component component = (Component)endpointReference.getComponent().clone(); + composite.getComponents().add(component); + component.getReferences().clear(); + component.getServices().clear(); + ComponentReference reference = (ComponentReference)endpointReference.getReference().clone(); + component.getReferences().add(reference); + reference.getBindings().clear(); + Binding binding = (Binding)endpointReference.getBinding().clone(); + reference.getBindings().add(binding); + //reference.setInterfaceContract(endpointReference.getInterfaceContract()); + if (endpointReference.getStatus() != EndpointReference.Status.RESOLVED_BINDING){ + ComponentService service = assemblyFactory.createComponentService(); + service.setName(endpointReference.getTargetEndpoint().getURI()); + reference.getTargets().clear(); + reference.getTargets().add(service); + } + return composite; + } catch (CloneNotSupportedException e) { + return null; + } + } + + public Class getModelType() { + return EndpointReference.class; + } + + public void resolve(EndpointReference model, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Messages.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Messages.java new file mode 100644 index 0000000000..0391acc676 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Messages.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +/** + * Constants for resource bundle names + * @tuscany.spi.extension + */ +public interface Messages { + String RESOURCE_BUNDLE = "org.apache.tuscany.sca.assembly.xml.assembly-xml-validation-messages"; +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/PolicySubjectProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/PolicySubjectProcessor.java new file mode 100644 index 0000000000..286f109f44 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/PolicySubjectProcessor.java @@ -0,0 +1,242 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.apache.tuscany.sca.assembly.xml.Constants.POLICY_SETS; +import static org.apache.tuscany.sca.assembly.xml.Constants.REQUIRES; + +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; + +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.contribution.processor.BaseStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.interfacedef.Operation; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicyFactory; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * A Policy Attach Point processor. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public class PolicySubjectProcessor extends BaseStAXArtifactProcessor { + + private PolicyFactory policyFactory; + + public PolicySubjectProcessor(PolicyFactory policyFactory) { + this.policyFactory = policyFactory; + } + + public PolicySubjectProcessor(ExtensionPointRegistry registry) { + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); + this.policyFactory = factories.getFactory(PolicyFactory.class); + } + + /** + * Read policy intents associated with an operation. + * @param subject + * @param operation + * @param reader + */ + private void readIntents(Object subject, Operation operation, XMLStreamReader reader) { + if (!(subject instanceof PolicySubject)) + return; + PolicySubject intentAttachPoint = (PolicySubject)subject; + String value = reader.getAttributeValue(null, REQUIRES); + if (value != null) { + List requiredIntents = intentAttachPoint.getRequiredIntents(); + for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) { + QName qname = getQNameValue(reader, tokens.nextToken()); + Intent intent = policyFactory.createIntent(); + intent.setName(qname); + if (operation != null) { + //FIXME Don't we need to handle intent specification + // on an operation basis? + //intent.getOperations().add(operation); + } + requiredIntents.add(intent); + } + } + } + + /** + * Reads policy intents and policy sets associated with an operation. + * @param subject + * @param operation + * @param reader + */ + public void readPolicies(Object subject, Operation operation, XMLStreamReader reader) { + readIntents(subject, operation, reader); + readPolicySets(subject, operation, reader); + } + + /** + * Reads policy intents and policy sets. + * @param subject + * @param reader + */ + public void readPolicies(Object subject, XMLStreamReader reader) { + readPolicies(subject, null, reader); + } + + /** + * Reads policy sets associated with an operation. + * @param subject + * @param operation + * @param reader + */ + private void readPolicySets(Object subject, Operation operation, XMLStreamReader reader) { + if (!(subject instanceof PolicySubject)) { + return; + } + PolicySubject policySubject = (PolicySubject)subject; + String value = reader.getAttributeValue(null, POLICY_SETS); + if (value != null) { + List policySets = policySubject.getPolicySets(); + for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) { + QName qname = getQNameValue(reader, tokens.nextToken()); + PolicySet policySet = policyFactory.createPolicySet(); + policySet.setName(qname); + if (operation != null) { + //FIXME Don't we need to handle policySet specification + // on an operation basis? + //policySet.getOperations().add(operation); + } + policySets.add(policySet); + } + } + } + + /** + * Write policies + * @param subject + * @return + */ + XAttr writePolicies(Object subject) throws XMLStreamException { + return writePolicies(subject, (Operation)null); + } + + /** + * Write policies + * @param subject + * @return + */ + public void writePolicyAttributes(Object subject, XMLStreamWriter writer) throws XMLStreamException { + writePolicyAttributes(subject, (Operation)null, writer); + } + + /** + * Write policies associated with an operation + * @param subject + * @param operation + * @return + */ + XAttr writePolicies(Object subject, Operation operation) { + List attrs =new ArrayList(); + attrs.add(writeIntents(subject, operation)); + attrs.add(writePolicySets(subject, operation)); + return new XAttr(null, attrs); + } + + /** + * Write policies + * @param subject + * @return + */ + public void writePolicyAttributes(Object subject, Operation operation, XMLStreamWriter writer) throws XMLStreamException { + XAttr attr = writePolicies(subject, operation); + attr.write(writer); + } + + /** + * Write policy intents associated with an operation. + * @param subject + * @param operation + */ + private XAttr writeIntents(Object subject, Operation operation) { + if (!(subject instanceof PolicySubject)) { + return null; + } + PolicySubject intentAttachPoint = (PolicySubject)subject; + List qnames = new ArrayList(); + for (Intent intent: intentAttachPoint.getRequiredIntents()) { + qnames.add(intent.getName()); + } + return new XAttr(Constants.REQUIRES, qnames); + } + + /** + * Write policy sets associated with an operation. + * @param subject + * @param operation + */ + private XAttr writePolicySets(Object subject, Operation operation) { + if (!(subject instanceof PolicySubject)) { + return null; + } + PolicySubject policySetAttachPoint = (PolicySubject)subject; + List qnames = new ArrayList(); + for (PolicySet policySet: policySetAttachPoint.getPolicySets()) { + qnames.add(policySet.getName()); + } + return new XAttr(Constants.POLICY_SETS, qnames); + } + + public void resolvePolicies(Object subject, ModelResolver resolver, ProcessorContext context) { + if ( subject instanceof PolicySubject ) { + PolicySubject policySetAttachPoint = (PolicySubject)subject; + + List requiredIntents = new ArrayList(); + Intent resolvedIntent = null; + + if ( policySetAttachPoint.getRequiredIntents() != null && policySetAttachPoint.getRequiredIntents().size() > 0 ) { + for ( Intent intent : policySetAttachPoint.getRequiredIntents() ) { + resolvedIntent = resolver.resolveModel(Intent.class, intent, context); + requiredIntents.add(resolvedIntent); + } + policySetAttachPoint.getRequiredIntents().clear(); + policySetAttachPoint.getRequiredIntents().addAll(requiredIntents); + } + + if ( policySetAttachPoint.getPolicySets() != null && policySetAttachPoint.getPolicySets().size() > 0 ) { + List resolvedPolicySets = new ArrayList(); + PolicySet resolvedPolicySet = null; + for ( PolicySet policySet : policySetAttachPoint.getPolicySets() ) { + resolvedPolicySet = resolver.resolveModel(PolicySet.class, policySet, context); + resolvedPolicySets.add(resolvedPolicySet); + } + policySetAttachPoint.getPolicySets().clear(); + policySetAttachPoint.getPolicySets().addAll(resolvedPolicySets); + } + } + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/SCABindingProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/SCABindingProcessor.java new file mode 100644 index 0000000000..28f4f9fb25 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/SCABindingProcessor.java @@ -0,0 +1,132 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; + +import org.apache.tuscany.sca.assembly.SCABinding; +import org.apache.tuscany.sca.assembly.SCABindingFactory; +import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.PolicyFactory; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * A processor to read the XML that describes the SCA binding. + * + * @version $Rev$ $Date$ + */ + +public class SCABindingProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor { + private static final String NAME = "name"; + private static final String URI = "uri"; + + private static final String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + private static final String BINDING_SCA = "binding.sca"; + private static final QName BINDING_SCA_QNAME = new QName(SCA11_NS, BINDING_SCA); + + private PolicyFactory policyFactory; + private SCABindingFactory scaBindingFactory; + private PolicySubjectProcessor policyProcessor; + private PolicyFactory intentAttachPointTypeFactory; + + + public SCABindingProcessor(FactoryExtensionPoint modelFactories) { + this.policyFactory = modelFactories.getFactory(PolicyFactory.class); + this.scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); + policyProcessor = new PolicySubjectProcessor(policyFactory); + this.intentAttachPointTypeFactory = modelFactories.getFactory(PolicyFactory.class); + } + + public QName getArtifactType() { + return BINDING_SCA_QNAME; + } + + public Class getModelType() { + return SCABinding.class; + } + + public SCABinding read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { + SCABinding scaBinding = scaBindingFactory.createSCABinding(); + ExtensionType bindingType = intentAttachPointTypeFactory.createBindingType(); + bindingType.setType(getArtifactType()); + bindingType.setUnresolved(true); + ((PolicySubject)scaBinding).setExtensionType(bindingType); + + // Read policies + policyProcessor.readPolicies(scaBinding, reader); + + // Read binding name + String name = reader.getAttributeValue(null, NAME); + if (name != null) { + scaBinding.setName(name); + } + + // Read binding URI + String uri = getURIString(reader, URI); + if (uri != null) { + scaBinding.setURI(uri); + } + + // Skip to end element + while (reader.hasNext()) { + if (reader.next() == END_ELEMENT && BINDING_SCA_QNAME.equals(reader.getName())) { + break; + } + } + return scaBinding; + } + + public void resolve(SCABinding model, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + policyProcessor.resolvePolicies(model, resolver, context); + } + + public void write(SCABinding scaBinding, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException { + + // Write + writer.writeStartElement(SCA11_NS, BINDING_SCA); + policyProcessor.writePolicyAttributes(scaBinding, writer); + + // Write binding name + if (scaBinding.getName() != null) { + writer.writeAttribute(NAME, scaBinding.getName()); + } + + // Write binding URI + if (scaBinding.getURI() != null) { + writer.writeAttribute(URI, scaBinding.getURI()); + } + + writer.writeEndElement(); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java new file mode 100644 index 0000000000..af59324c7c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java @@ -0,0 +1,128 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.definitions.xml; + +import java.io.IOException; +import java.net.URI; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.UtilityExtensionPoint; +import org.apache.tuscany.sca.definitions.Definitions; +import org.apache.tuscany.sca.extensibility.ServiceDeclaration; +import org.apache.tuscany.sca.extensibility.ServiceDiscovery; +import org.apache.tuscany.sca.monitor.MonitorFactory; + +/** + * Default implementation of an extension point for XML definitionss. + * + * @version $Rev$ $Date$ + */ +public class DefaultDefinitionsExtensionPoint implements DefinitionsExtensionPoint { + private static final Logger logger = Logger.getLogger(DefaultDefinitionsExtensionPoint.class.getName()); + private static final URI DEFINITIONS_URI = URI.create("META-INF/definitions.xml"); + private ExtensionPointRegistry registry; + private MonitorFactory monitorFactory; + private Set documents = new HashSet(); + private List definitions = new ArrayList(); + private boolean documentsLoaded; + private boolean loaded; + + public DefaultDefinitionsExtensionPoint(ExtensionPointRegistry registry) { + this.registry = registry; + this.monitorFactory = registry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(MonitorFactory.class); + } + + public void addDefinitionsDocument(URL url) { + documents.add(url); + } + + public void removeDefinitionsDocument(URL url) { + documents.remove(url); + } + + /** + * Load definitions declarations from META-INF/services/ + * org.apache.tuscany.sca.contribution.processor.Definitions files + */ + private synchronized void loadDefinitionsDocuments() { + if (documentsLoaded) + return; + + // Get the definitions declarations + Collection definitionsDeclarations; + try { + definitionsDeclarations = registry.getServiceDiscovery().getServiceDeclarations(DEFINITIONS_FILE); + } catch (IOException e) { + throw new IllegalStateException(e); + } + + // Find each definitions + for (ServiceDeclaration definitionsDeclaration : definitionsDeclarations) { + URL url = definitionsDeclaration.getResource(definitionsDeclaration.getClassName()); + if (url == null) { + throw new IllegalArgumentException(definitionsDeclaration.getClassName() + " cannot be found"); + } + documents.add(url); + } + + documentsLoaded = true; + } + + public synchronized List getDefinitions() { + if (!loaded) { + loadDefinitionsDocuments(); + URLArtifactProcessorExtensionPoint processors = + registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); + URLArtifactProcessor processor = processors.getProcessor(Definitions.class); + ProcessorContext context = new ProcessorContext(monitorFactory.createMonitor()); + for (URL url : documents) { + Definitions def; + try { + def = processor.read(null, DEFINITIONS_URI, url, context); + definitions.add(def); + } catch (ContributionReadException e) { + logger.log(Level.SEVERE, e.getMessage(), e); + } + } + loaded = true; + } + return definitions; + } + + public void addDefinitions(Definitions def) { + this.definitions.add(def); + } + + public void removeDefinitions(Definitions def) { + this.definitions.remove(def); + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsDocumentProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsDocumentProcessor.java new file mode 100644 index 0000000000..d0a42be34e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsDocumentProcessor.java @@ -0,0 +1,171 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.definitions.xml; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.common.java.io.IOHelper; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.definitions.Definitions; +import org.apache.tuscany.sca.definitions.DefinitionsFactory; +import org.apache.tuscany.sca.definitions.util.DefinitionsUtil; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.Problem; +import org.apache.tuscany.sca.monitor.Problem.Severity; + +/** + * A SCA Definitions Document processor. + * + * @version $Rev$ $Date$ + */ +public class DefinitionsDocumentProcessor implements URLArtifactProcessor { + private StAXArtifactProcessor extensionProcessor; + private XMLInputFactory inputFactory; + private DefinitionsFactory definitionsFactory; + + + + /** + * Constructs a new SCADefinitions processor. + * + * @param modelFactories + * @param staxProcessor + */ + public DefinitionsDocumentProcessor(FactoryExtensionPoint modelFactories, + StAXArtifactProcessor staxProcessor) { + this.extensionProcessor = (StAXArtifactProcessor)staxProcessor; + this.inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class); + this.definitionsFactory = modelFactories.getFactory(DefinitionsFactory.class); + } + + /** + * Report a exception. + * + * @param problems + * @param message + * @param model + */ + private void error(Monitor monitor, String message, Object model, Exception ex) { + if (monitor != null) { + Problem problem = + monitor.createProblem(this.getClass().getName(), + Messages.RESOURCE_BUNDLE, + Severity.ERROR, + model, + message, + ex); + monitor.problem(problem); + } + } + + public Definitions read(URL contributionURL, final URI uri, final URL url, ProcessorContext context) throws ContributionReadException { + InputStream urlStream = null; + Monitor monitor = context.getMonitor(); + monitor.pushContext("Definitions: " + url); + try { + // Allow privileged access to open URL stream. Add FilePermission to added to security + // policy file. + try { + urlStream = AccessController.doPrivileged(new PrivilegedExceptionAction() { + public InputStream run() throws IOException { + return IOHelper.openStream(url); + } + }); + } catch (PrivilegedActionException e) { + error(monitor, "PrivilegedActionException", url, (IOException)e.getException()); + throw (IOException)e.getException(); + } + + //urlStream = createInputStream(url); + XMLStreamReader reader = inputFactory.createXMLStreamReader(url.toString(), urlStream); + ValidatingXMLInputFactory.setMonitor(reader, context.getMonitor()); + Definitions definitions = definitionsFactory.createDefinitions(); + int event = reader.getEventType(); + while (reader.hasNext()) { + event = reader.next(); + + // We only deal with the root element + if (event == XMLStreamConstants.START_ELEMENT) { + // QName name = reader.getName(); + Object model = extensionProcessor.read(reader, context); + if (model instanceof Definitions) { + DefinitionsUtil.aggregate((Definitions)model, definitions, monitor); + return definitions; + } else { + error(monitor, "ContributionReadException", model, null); + } + } + } + + return definitions; + } catch (XMLStreamException e) { + ContributionReadException ce = new ContributionReadException(e); + error(monitor, "ContributionReadException", inputFactory, ce); + throw ce; + } catch (IOException e) { + ContributionReadException ce = new ContributionReadException(e); + error(monitor, "ContributionReadException", inputFactory, ce); + throw ce; + } finally { + + try { + if (urlStream != null) { + urlStream.close(); + urlStream = null; + } + } catch (IOException ioe) { + //ignore + } + + monitor.popContext(); + } + } + + public void resolve(Definitions scaDefinitions, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + extensionProcessor.resolve(scaDefinitions, resolver, context); + } + + public String getArtifactType() { + return "/META-INF/definitions.xml"; + } + + public Class getModelType() { + return Definitions.class; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java new file mode 100644 index 0000000000..3058b1f5b6 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java @@ -0,0 +1,64 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.definitions.xml; + +import java.net.URL; +import java.util.List; + +import org.apache.tuscany.sca.definitions.Definitions; + +/** + * An extension point for built-in SCA intent/policySet definition files + * + * @version $Rev$ $Date$ + */ +public interface DefinitionsExtensionPoint { + String DEFINITIONS_FILE = "org.apache.tuscany.sca.definitions.xml.Definitions"; + + /** + * Add a definitions document + * + * @param url the URL of the definitions + */ + void addDefinitionsDocument(URL url); + + /** + * Remove a definitions document + * + * @param url the URL of the definitions + */ + void removeDefinitionsDocument(URL url); + + /** + * @param definitions + */ + void addDefinitions(Definitions definitions); + /** + * @param definitions + */ + void removeDefinitions(Definitions definitions); + + /** + * Get the list of definitions + * @return A list of definitions + */ + List getDefinitions(); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java new file mode 100644 index 0000000000..006b80ee31 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java @@ -0,0 +1,292 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.definitions.xml; + +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; +import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.definitions.Definitions; +import org.apache.tuscany.sca.definitions.DefinitionsFactory; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.policy.BindingType; +import org.apache.tuscany.sca.policy.ImplementationType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.IntentMap; +import org.apache.tuscany.sca.policy.PolicyFactory; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.Qualifier; + +/** + * Processor for SCA Definitions + * + * @version $Rev$ $Date$ + */ +public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor { + private ExtensionPointRegistry registry; + private StAXArtifactProcessorExtensionPoint processors; + private StAXArtifactProcessor extensionProcessor; + private DefinitionsFactory definitionsFactory; + private PolicyFactory policyFactory; + + public static final String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + public static final String BINDING = "binding"; + public static final String IMPLEMENTATION = "implementation"; + public static final String DEFINITIONS = "definitions"; + public static final QName DEFINITIONS_QNAME = new QName(SCA11_NS, DEFINITIONS); + public static final String TARGET_NAMESPACE = "targetNamespace"; + public static final String NAME = "name"; + + public DefinitionsProcessor(ExtensionPointRegistry registry, + StAXArtifactProcessor extensionProcessor) { + this.registry = registry; + this.extensionProcessor = extensionProcessor; + this.processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + FactoryExtensionPoint factoryExtensionPoint = registry.getExtensionPoint(FactoryExtensionPoint.class); + this.definitionsFactory = factoryExtensionPoint.getFactory(DefinitionsFactory.class); + this.policyFactory = factoryExtensionPoint.getFactory(PolicyFactory.class); + } + + public Definitions read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { + QName name = null; + Definitions definitions = null; + String targetNamespace = null; + + while (reader.hasNext()) { + int event = reader.getEventType(); + switch (event) { + case START_ELEMENT: { + name = reader.getName(); + if (DEFINITIONS_QNAME.equals(name)) { + definitions = definitionsFactory.createDefinitions(); + targetNamespace = getURIString(reader, TARGET_NAMESPACE); + definitions.setTargetNamespace(targetNamespace); + } else { + Object extension = extensionProcessor.read(reader, context); + if (extension != null) { + if (extension instanceof Intent) { + Intent intent = (Intent)extension; + intent.setName(new QName(targetNamespace, intent.getName().getLocalPart())); + definitions.getIntents().add(intent); + for (Intent i : intent.getQualifiedIntents()) { + i.setName(new QName(targetNamespace, i.getName().getLocalPart())); + } + } else if (extension instanceof PolicySet) { + PolicySet policySet = (PolicySet)extension; + policySet.setName(new QName(targetNamespace, policySet.getName().getLocalPart())); + definitions.getPolicySets().add(policySet); + } else if (extension instanceof Binding) { + Binding binding = (Binding)extension; + definitions.getBindings().add(binding); + } else if (extension instanceof BindingType) { + definitions.getBindingTypes().add((BindingType)extension); + } else if (extension instanceof ImplementationType) { + definitions.getImplementationTypes().add((ImplementationType)extension); + } + } + break; + } + } + + case XMLStreamConstants.CHARACTERS: + break; + + case END_ELEMENT: + name = reader.getName(); + if (DEFINITIONS_QNAME.equals(name)) { + return definitions; + } + break; + } + + //Read the next element + if (reader.hasNext()) { + reader.next(); + } + } + return definitions; + } + + public void write(Definitions definitions, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, + XMLStreamException { + + writeStartDocument(writer, SCA11_NS, DEFINITIONS, new XAttr(TARGET_NAMESPACE, definitions.getTargetNamespace())); + + for (Intent policyIntent : definitions.getIntents()) { + extensionProcessor.write(policyIntent, writer, context); + } + + for (PolicySet policySet : definitions.getPolicySets()) { + extensionProcessor.write(policySet, writer, context); + } + + for (Binding binding : definitions.getBindings()) { + extensionProcessor.write(binding, writer, context); + } + + for (BindingType bindingType : definitions.getBindingTypes()) { + extensionProcessor.write(bindingType, writer, context); + } + + for (ImplementationType implType : definitions.getImplementationTypes()) { + extensionProcessor.write(implType, writer, context); + } + + writeEndDocument(writer); + } + + public void resolve(Definitions scaDefns, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + + // start by adding all of the top level artifacts into the resolver as there + // are many cross artifact references in a definitions file and we don't want + // to be dependent on the order things appear + + List intents = new ArrayList(); + List policySets = new ArrayList(); + List referredPolicySets = new ArrayList(); + + for (Intent intent : scaDefns.getIntents()) { + intents.add(intent); + resolver.addModel(intent, context); + for (Intent i : intent.getQualifiedIntents()) { + intents.add(i); + resolver.addModel(i, context); + } + } + + for (PolicySet policySet : scaDefns.getPolicySets()) { + if (policySet.getReferencedPolicySets().isEmpty()) { + policySets.add(policySet); + } else { + referredPolicySets.add(policySet); + } + + resolver.addModel(policySet, context); + } + + for (BindingType bindingType : scaDefns.getBindingTypes()) { + resolver.addModel(bindingType, context); + } + + for (ImplementationType implType : scaDefns.getImplementationTypes()) { + resolver.addModel(implType, context); + } + + // now resolve everything to ensure that any references between + // artifacts are satisfied + + for (Intent policyIntent : intents) + extensionProcessor.resolve(policyIntent, resolver, context); + + for (PolicySet policySet : policySets) + extensionProcessor.resolve(policySet, resolver, context); + + for (PolicySet policySet : referredPolicySets) + extensionProcessor.resolve(policySet, resolver, context); + + for (Binding binding : scaDefns.getBindings()) { + extensionProcessor.resolve(binding, resolver, context); + } + + for (BindingType bindingType : scaDefns.getBindingTypes()) { + extensionProcessor.resolve(bindingType, resolver, context); + if (processors.getProcessor(bindingType.getType()) == null){ + Monitor.error(context.getMonitor(), + this, + "org.apache.tuscany.sca.definitions.xml.definitions-xml-validation-messages", + "BindingTypeNotFound", + bindingType.getType().toString()); + } + } + + for (ImplementationType implementationType : scaDefns.getImplementationTypes()) { + extensionProcessor.resolve(implementationType, resolver, context); + if (processors.getProcessor(implementationType.getType()) == null){ + Monitor.error(context.getMonitor(), + this, + "org.apache.tuscany.sca.definitions.xml.definitions-xml-validation-messages", + "ImplementationTypeNotFound", + implementationType.getType().toString()); + } + } + + + // Flat intentMap structure by creating a policySet for each one + List copy = new ArrayList(scaDefns.getPolicySets()); + for (PolicySet policySet : copy) { + //[lresende] Do we need to remove the current policySet and just include the flat one based on qualifiers ? + //If we don't, the policy is being resolved to the one that has intentMap and no direct concrete policies + boolean remove = false; + + //process intent maps + for(IntentMap intentMap : policySet.getIntentMaps()) { + for(Qualifier qualifier : intentMap.getQualifiers()) { + remove = true; + + PolicySet qualifiedPolicySet = policyFactory.createPolicySet(); + qualifiedPolicySet.setAppliesTo(policySet.getAppliesTo()); + qualifiedPolicySet.setAppliesToXPathExpression(policySet.getAttachToXPathExpression()); + qualifiedPolicySet.setAttachTo(policySet.getAttachTo()); + qualifiedPolicySet.setAttachToXPathExpression(policySet.getAttachToXPathExpression()); + + qualifiedPolicySet.setName(qualifier.getIntent().getName()); + qualifiedPolicySet.getProvidedIntents().clear(); + qualifiedPolicySet.getProvidedIntents().add(qualifier.getIntent()); + qualifiedPolicySet.getPolicies().clear(); + qualifiedPolicySet.getPolicies().addAll(qualifier.getPolicies()); + + scaDefns.getPolicySets().add(qualifiedPolicySet); + } + } + + if(remove) { + scaDefns.getPolicySets().remove(policySet); + } + } + } + + public QName getArtifactType() { + return DEFINITIONS_QNAME; + } + + public Class getModelType() { + return Definitions.class; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/Messages.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/Messages.java new file mode 100644 index 0000000000..38cc4a9de2 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/Messages.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.definitions.xml; + +/** + * Constants for resource bundle names + */ +public interface Messages { + String RESOURCE_BUNDLE = "org.apache.tuscany.sca.definitions.xml.definitions-xml-validation-messages"; +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java new file mode 100644 index 0000000000..70c71c5f1f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.policy.BindingType; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.PolicyFactory; + +/** + * Processor for handling XML models of BindingType meta data definitions + * + * @version $Rev$ $Date$ + */ +public class BindingTypeProcessor extends ExtensionTypeProcessor { + + public BindingTypeProcessor(PolicyFactory policyFactory, + StAXArtifactProcessor extensionProcessor) { + super(policyFactory, extensionProcessor); + } + + public BindingTypeProcessor(FactoryExtensionPoint modelFactories, + StAXArtifactProcessor extensionProcessor) { + super(modelFactories.getFactory(PolicyFactory.class), extensionProcessor); + } + + public QName getArtifactType() { + return BINDING_TYPE_QNAME; + } + + @Override + protected ExtensionType resolveExtensionType(ExtensionType extnType, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + if (extnType instanceof BindingType) { + BindingType bindingType = (BindingType)extnType; + return resolver.resolveModel(BindingType.class, bindingType, context); + } else { + return extnType; + } + + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ExtensionTypeProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ExtensionTypeProcessor.java new file mode 100644 index 0000000000..95d8e67bf7 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ExtensionTypeProcessor.java @@ -0,0 +1,250 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; + +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.contribution.processor.BaseStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.Problem; +import org.apache.tuscany.sca.monitor.Problem.Severity; +import org.apache.tuscany.sca.policy.BindingType; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.ImplementationType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicyFactory; + +/** + * Processor for handling XML models of ExtensionType meta data definitions + * + * @version $Rev$ $Date$ + */ +abstract class ExtensionTypeProcessor extends BaseStAXArtifactProcessor implements + StAXArtifactProcessor, PolicyConstants { + + private PolicyFactory policyFactory; + + + protected abstract ExtensionType resolveExtensionType(ExtensionType extnType, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException; + + public ExtensionTypeProcessor(PolicyFactory policyFactory, + StAXArtifactProcessor extensionProcessor) { + this.policyFactory = policyFactory; + } + + /** + * Report a error. + * + * @param problems + * @param message + * @param model + */ + private void error(Monitor monitor, String message, Object model, Object... messageParameters) { + if (monitor != null) { + Problem problem = + monitor.createProblem(this.getClass().getName(), + Messages.RESOURCE_BUNDLE, + Severity.ERROR, + model, + message, + (Object[])messageParameters); + monitor.problem(problem); + } + } + + public ExtensionType read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { + QName extType = getArtifactType(); + QName type = getQName(reader, "type"); + + if (type != null) { + ExtensionType extensionType = null; + if (BINDING_TYPE_QNAME.equals(extType)) { + extensionType = policyFactory.createBindingType(); + } else if (IMPLEMENTATION_TYPE_QNAME.equals(extType)) { + extensionType = policyFactory.createImplementationType(); + } else { + error(context.getMonitor(), "UnrecognizedExtensionType", reader, type); + return null; + //throw new ContributionReadException("Unrecognized ExtensionType - " + type); + } + extensionType.setType(type); + extensionType.setUnresolved(true); + + readAlwaysProvidedIntents(extensionType, reader); + readMayProvideIntents(extensionType, reader); + return extensionType; + + } else { + error(context.getMonitor(), "RequiredAttributeMissing", reader, extType); + //throw new ContributionReadException("Required attribute '" + TYPE + + //"' missing from BindingType Definition"); + } + return null; + } + + private void readAlwaysProvidedIntents(ExtensionType extnType, XMLStreamReader reader) { + String value = reader.getAttributeValue(null, ALWAYS_PROVIDES); + if (value != null) { + List alwaysProvided = extnType.getAlwaysProvidedIntents(); + for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) { + QName qname = getQNameValue(reader, tokens.nextToken()); + Intent intent = policyFactory.createIntent(); + intent.setName(qname); + alwaysProvided.add(intent); + } + } + } + + private void readMayProvideIntents(ExtensionType extnType, XMLStreamReader reader) { + String value = reader.getAttributeValue(null, MAY_PROVIDE); + if (value != null) { + List mayProvide = extnType.getMayProvidedIntents(); + for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) { + QName qname = getQNameValue(reader, tokens.nextToken()); + Intent intent = policyFactory.createIntent(); + intent.setName(qname); + mayProvide.add(intent); + } + } + } + + public void write(ExtensionType extnType, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, + XMLStreamException { + + // Write an + if (extnType instanceof BindingType) { + writer.writeStartElement(SCA11_NS, BINDING_TYPE); + } else if (extnType instanceof ImplementationType) { + writer.writeStartElement(SCA11_NS, IMPLEMENTATION_TYPE); + } + + writeAlwaysProvidesIntentsAttribute(extnType, writer); + writeMayProvideIntentsAttribute(extnType, writer); + + writer.writeEndElement(); + } + + private void writeMayProvideIntentsAttribute(ExtensionType extnType, XMLStreamWriter writer) + throws XMLStreamException { + StringBuffer sb = new StringBuffer(); + for (Intent intent : extnType.getMayProvidedIntents()) { + writer.writeNamespace(intent.getName().getPrefix(), intent.getName().getNamespaceURI()); + sb.append(intent.getName().getPrefix() + COLON + intent.getName().getLocalPart()); + sb.append(WHITE_SPACE); + } + + if (sb.length() > 0) { + writer.writeAttribute(MAY_PROVIDE, sb.toString()); + } + } + + private void writeAlwaysProvidesIntentsAttribute(ExtensionType extnType, XMLStreamWriter writer) + throws XMLStreamException { + StringBuffer sb = new StringBuffer(); + for (Intent intent : extnType.getAlwaysProvidedIntents()) { + writer.writeNamespace(intent.getName().getPrefix(), intent.getName().getNamespaceURI()); + sb.append(intent.getName().getPrefix() + COLON + intent.getName().getLocalPart()); + sb.append(WHITE_SPACE); + } + + if (sb.length() > 0) { + writer.writeAttribute(ALWAYS_PROVIDES, sb.toString()); + + } + } + + public void resolve(ExtensionType extnType, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + + if (extnType != null && extnType.isUnresolved()) { + resolveAlwaysProvidedIntents(extnType, resolver, context); + resolveMayProvideIntents(extnType, resolver, context); + extnType.setUnresolved(false); + //resolveExtensionType(extnType, resolver); + } + } + + private void resolveAlwaysProvidedIntents(ExtensionType extensionType, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + if (extensionType != null) { + // resolve all provided intents + List alwaysProvided = new ArrayList(); + for (Intent providedIntent : extensionType.getAlwaysProvidedIntents()) { + if (providedIntent.isUnresolved()) { + providedIntent = resolver.resolveModel(Intent.class, providedIntent, context); + if (!providedIntent.isUnresolved()) { + alwaysProvided.add(providedIntent); + } else { + error(context.getMonitor(), "AlwaysProvidedIntentNotFound", resolver, providedIntent, extensionType); + //throw new ContributionResolveException("Always Provided Intent - " + providedIntent + //+ " not found for ExtensionType " + //+ extensionType); + } + } else { + alwaysProvided.add(providedIntent); + } + } + extensionType.getAlwaysProvidedIntents().clear(); + extensionType.getAlwaysProvidedIntents().addAll(alwaysProvided); + } + } + + private void resolveMayProvideIntents(ExtensionType extensionType, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + if (extensionType != null) { + // resolve all provided intents + List mayProvide = new ArrayList(); + for (Intent providedIntent : extensionType.getMayProvidedIntents()) { + if (providedIntent.isUnresolved()) { + providedIntent = resolver.resolveModel(Intent.class, providedIntent, context); + if (!providedIntent.isUnresolved()) { + mayProvide.add(providedIntent); + } else { + error(context.getMonitor(), "MayProvideIntentNotFound", resolver, providedIntent, extensionType); + //throw new ContributionResolveException("May Provide Intent - " + providedIntent + //+ " not found for ExtensionType " + //+ extensionType); + } + } else { + mayProvide.add(providedIntent); + } + } + extensionType.getMayProvidedIntents().clear(); + extensionType.getMayProvidedIntents().addAll(mayProvide); + } + } + + public Class getModelType() { + return ExtensionType.class; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java new file mode 100644 index 0000000000..ec4e17385f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.ImplementationType; +import org.apache.tuscany.sca.policy.PolicyFactory; + +/** + * Processor for handling XML models of ImplementationType meta data definitions + * + * @version $Rev$ $Date$ + */ +public class ImplementationTypeProcessor extends ExtensionTypeProcessor { + + public ImplementationTypeProcessor(PolicyFactory policyFactory, + StAXArtifactProcessor extensionProcessor) { + super(policyFactory, extensionProcessor); + } + + public ImplementationTypeProcessor(FactoryExtensionPoint modelFactories, + StAXArtifactProcessor extensionProcessor) { + super(modelFactories.getFactory(PolicyFactory.class), extensionProcessor); + } + + public QName getArtifactType() { + return IMPLEMENTATION_TYPE_QNAME; + } + + @Override + protected ExtensionType resolveExtensionType(ExtensionType extnType, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + if (extnType instanceof ImplementationType) { + ImplementationType implType = (ImplementationType)extnType; + return resolver.resolveModel(ImplementationType.class, implType, context); + } else { + return extnType; + } + + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java new file mode 100644 index 0000000000..296677d8b8 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java @@ -0,0 +1,424 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; +import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.StringTokenizer; + +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.contribution.processor.BaseStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.Problem; +import org.apache.tuscany.sca.monitor.Problem.Severity; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicyFactory; +import org.apache.tuscany.sca.policy.Intent.Type; + +/** + * Processor for handling XML models of PolicyIntent definitions + * + * @version $Rev$ $Date$ + */ +public class IntentProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor, + PolicyConstants { + + private PolicyFactory policyFactory; + + + public IntentProcessor(FactoryExtensionPoint modelFactories) { + this.policyFactory = modelFactories.getFactory(PolicyFactory.class); + } + + public IntentProcessor(PolicyFactory policyFactory) { + this.policyFactory = policyFactory; + } + + /** + * Report a error. + * + * @param problems + * @param message + * @param model + */ + private void error(Monitor monitor, String message, Object model, Object... messageParameters) { + if (monitor != null) { + Problem problem = + monitor.createProblem(this.getClass().getName(), + Messages.RESOURCE_BUNDLE, + Severity.ERROR, + model, + message, + messageParameters); + monitor.problem(problem); + } + } + + private void warn(Monitor monitor, String message, Object model, Object... messageParameters) { + if (monitor != null) { + Problem problem = + monitor.createProblem(this.getClass().getName(), + Messages.RESOURCE_BUNDLE, + Severity.WARNING, + model, + message, + messageParameters); + monitor.problem(problem); + } + } + + public Intent read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { + Intent intent = null; + String intentLocalName = reader.getAttributeValue(null, NAME); + if (intentLocalName == null) { + error(context.getMonitor(), "IntentNameMissing", reader); + return null; + } + + String intentType = reader.getAttributeValue(null, INTENT_TYPE); + if (intentType == null) { + intentType = Intent.Type.interaction.name(); + } + + intent = policyFactory.createIntent(); + + // [rfeng] the target namespace is not available, set the local part for now + // This will be changed in the definitions processor + intent.setName(new QName(intentLocalName)); + intent.setType(Type.valueOf(intentType)); + + readRequiredIntents(intent, reader, context); + readExcludedIntents(intent, reader); + + readConstrainedTypes(intent, reader); + + Intent current = intent; + int event = reader.getEventType(); + QName name = null; + while (reader.hasNext()) { + event = reader.getEventType(); + switch (event) { + case START_ELEMENT: { + name = reader.getName(); + if (DESCRIPTION_QNAME.equals(name)) { + String text = reader.getElementText(); + if (text != null) { + text = text.trim(); + } + current.setDescription(text); + } else if (INTENT_QUALIFIER_QNAME.equals(name)) { + String qualifierName = reader.getAttributeValue(null, NAME); + String defaultQ = reader.getAttributeValue(null, DEFAULT); + boolean isDefault = defaultQ == null ? false : Boolean.parseBoolean(defaultQ); + String qualifiedIntentName = intentLocalName + QUALIFIER + qualifierName; + Intent qualified = policyFactory.createIntent(); + qualified.setType(intent.getType()); + qualified.setName(new QName(qualifiedIntentName)); + if (isDefault) { + if (intent.getDefaultQualifiedIntent() == null){ + intent.setDefaultQualifiedIntent(qualified); + } else { + Monitor.error(context.getMonitor(), + this, + Messages.RESOURCE_BUNDLE, + "MultipleDefaultQualifiers", + intent.getName().toString()); + } + } + + // check that the qualifier is unique + if ( !intent.getQualifiedIntents().contains(qualified)){ + intent.getQualifiedIntents().add(qualified); + } else { + Monitor.error(context.getMonitor(), + this, + Messages.RESOURCE_BUNDLE, + "QualifierIsNotUnique", + intent.getName().toString(), + qualifierName); + } + + qualified.setQualifiableIntent(intent); + current = qualified; + } + break; + } + case END_ELEMENT: { + name = reader.getName(); + if (INTENT_QUALIFIER_QNAME.equals(name)) { + current = intent; + } + break; + } + } + if (event == END_ELEMENT && POLICY_INTENT_QNAME.equals(reader.getName())) { + break; + } + + //Read the next element + if (reader.hasNext()) { + reader.next(); + } + } + // REVIEW: [rfeng] What's going to happen if there is only one qualified intent + if (intent.getQualifiedIntents().size() == 1) { + intent.setDefaultQualifiedIntent(intent.getQualifiedIntents().get(0)); + } + return intent; + } + + public void write(Intent intent, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException { + // Write an + writer.writeStartElement(PolicyConstants.SCA11_NS, INTENT); + writer.writeNamespace(intent.getName().getPrefix(), intent.getName().getNamespaceURI()); + writer.writeAttribute(PolicyConstants.NAME, intent.getName().getPrefix() + COLON + + intent.getName().getLocalPart()); + if (intent.getRequiredIntents() != null && intent.getRequiredIntents().size() > 0) { + StringBuffer sb = new StringBuffer(); + for (Intent requiredIntents : intent.getRequiredIntents()) { + sb.append(requiredIntents.getName()); + sb.append(" "); + } + writer.writeAttribute(PolicyConstants.REQUIRES, sb.toString()); + } + + if (intent.getExcludedIntents() != null && intent.getExcludedIntents().size() > 0) { + StringBuffer sb = new StringBuffer(); + for (Intent excludedIntents : intent.getExcludedIntents()) { + sb.append(excludedIntents.getName()); + sb.append(" "); + } + writer.writeAttribute(PolicyConstants.EXCLUDES, sb.toString()); + } + + if (intent.getConstrainedTypes() != null && intent.getConstrainedTypes().size() > 0) { + StringBuffer sb = new StringBuffer(); + for (ExtensionType contrainedArtifact : intent.getConstrainedTypes()) { + sb.append(contrainedArtifact.getType().getPrefix()); + sb.append(':').append(contrainedArtifact.getType().getLocalPart()); + sb.append(" "); + } + writer.writeAttribute(CONSTRAINS, sb.toString()); + } + + if (intent.getDescription() != null && intent.getDescription().length() > 0) { + writer.writeStartElement(PolicyConstants.SCA11_NS, DESCRIPTION); + writer.writeCData(intent.getDescription()); + writer.writeEndElement(); + } + + writer.writeEndElement(); + } + + private void resolveContrainedTypes(Intent intent, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + Collection resolvedTypes = new HashSet(); + for (ExtensionType extensionType : intent.getConstrainedTypes()) { + if (ExtensionType.BINDING_BASE.equals(extensionType.getType()) || ExtensionType.IMPLEMENTATION_BASE + .equals(extensionType.getType())) { + // HACK: Mark sca:binding and sca:implementation as resolved + extensionType.setUnresolved(false); + resolvedTypes.add(extensionType); + } else { + ExtensionType resolved = resolver.resolveModel(ExtensionType.class, extensionType, context); + if (!resolved.isUnresolved() || resolved != extensionType) { + resolvedTypes.add(resolved); + } else { + warn(context.getMonitor(), "ConstrainedTypeNotFound", intent, extensionType, intent); + } + } + } + intent.getConstrainedTypes().clear(); + intent.getConstrainedTypes().addAll(resolvedTypes); + } + + private void resolveProfileIntent(Intent intent, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + Monitor monitor = context.getMonitor(); + // FIXME: Need to check for cyclic references first i.e an A requiring B + // and then B requiring A... + if (intent != null && !intent.getRequiredIntents().isEmpty()) { + // resolve all required intents + List requiredIntents = new ArrayList(); + for (Intent required : intent.getRequiredIntents()) { + if (required.isUnresolved()) { + Intent resolved = resolver.resolveModel(Intent.class, required, context); + // At this point, when the required intent is not resolved, it does not mean + // its undeclared, chances are that their dependency are not resolved yet. + // Lets try to resolve them first. + if (resolved.isUnresolved()) { + if (((resolved).getRequiredIntents()).contains(intent)) { + error(monitor, "CyclicReferenceFound", resolver, required, intent); + return; + } + } + + if (!resolved.isUnresolved() || resolved != required) { + requiredIntents.add(resolved); + } else { + error(monitor, "RequiredIntentNotFound", resolver, required, intent); + return; + //throw new ContributionResolveException("Required Intent - " + requiredIntent + //+ " not found for Intent " + policyIntent); + } + } else { + requiredIntents.add(required); + } + } + intent.getRequiredIntents().clear(); + intent.getRequiredIntents().addAll(requiredIntents); + } + } + + private void resolveQualifiedIntent(Intent qualifed, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + if (qualifed != null) { + //resolve the qualifiable intent + Intent parent = qualifed.getQualifiableIntent(); + if (parent == null) { + return; + } + if (parent.isUnresolved()) { + Intent resolved = resolver.resolveModel(Intent.class, parent, context); + // At this point, when the qualifiable intent is not resolved, it does not mean + // its undeclared, chances are that their dependency are not resolved yet. + // Lets try to resolve them first. + + if (!resolved.isUnresolved() || resolved != qualifed) { + qualifed.setQualifiableIntent(resolved); + } else { + error(context.getMonitor(), "QualifiableIntentNotFound", resolver, parent, qualifed); + //throw new ContributionResolveException("Qualifiable Intent - " + qualifiableIntent + //+ " not found for Intent " + policyIntent); + } + } + } + } + + public void resolve(Intent intent, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { + if (intent != null && intent.isUnresolved()) { + resolveProfileIntent(intent, resolver, context); + resolveExcludedIntents(intent, resolver, context); + resolveQualifiedIntent(intent, resolver, context); + resolveContrainedTypes(intent, resolver, context); + intent.setUnresolved(false); + } + } + + public QName getArtifactType() { + return POLICY_INTENT_QNAME; + } + + private void readConstrainedTypes(Intent policyIntent, XMLStreamReader reader) throws ContributionReadException { + String value = reader.getAttributeValue(null, CONSTRAINS); + if (value != null) { + List constrainedTypes = policyIntent.getConstrainedTypes(); + for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) { + QName qname = getQNameValue(reader, tokens.nextToken()); + ExtensionType extensionType = policyFactory.createExtensionType(); + extensionType.setType(qname); + constrainedTypes.add(extensionType); + } + } + } + + private void readRequiredIntents(Intent intent, XMLStreamReader reader, ProcessorContext context) { + String value = reader.getAttributeValue(null, REQUIRES); + if (value != null) { + List requiredIntents = intent.getRequiredIntents(); + for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) { + QName qname = getQNameValue(reader, tokens.nextToken()); + Intent required = policyFactory.createIntent(); + required.setName(qname); + required.setUnresolved(true); + requiredIntents.add(required); + } + + // Check that a profile intent does not have "." in its name + if (requiredIntents.size() > 0) { + if (intent.getName().getLocalPart().contains(".")){ + Monitor.error(context.getMonitor(), + this, + Messages.RESOURCE_BUNDLE, + "ProfileIntentNameWithPeriod", + intent.getName().toString()); + } + } + } + } + + private void readExcludedIntents(Intent intent, XMLStreamReader reader) { + String value = reader.getAttributeValue(null, EXCLUDES); + if (value != null) { + List excludedIntents = intent.getExcludedIntents(); + for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) { + QName qname = getQNameValue(reader, tokens.nextToken()); + Intent excluded = policyFactory.createIntent(); + excluded.setName(qname); + excluded.setUnresolved(true); + excludedIntents.add(excluded); + } + } + } + + private void resolveExcludedIntents(Intent policyIntent, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + if (policyIntent != null) { + // resolve all excluded intents + List excludedIntents = new ArrayList(); + for (Intent excludedIntent : policyIntent.getExcludedIntents()) { + if (excludedIntent.isUnresolved()) { + Intent resolvedExcludedIntent = resolver.resolveModel(Intent.class, excludedIntent, context); + if (!resolvedExcludedIntent.isUnresolved() || resolvedExcludedIntent != excludedIntent) { + excludedIntents.add(resolvedExcludedIntent); + } else { + error(context.getMonitor(), "ExcludedIntentNotFound", resolver, excludedIntent, policyIntent); + return; + //throw new ContributionResolveException("Excluded Intent " + excludedIntent + //+ " not found for intent " + policyIntent); + } + } else { + excludedIntents.add(excludedIntent); + } + } + policyIntent.getExcludedIntents().clear(); + policyIntent.getExcludedIntents().addAll(excludedIntents); + } + } + + public Class getModelType() { + return Intent.class; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/Messages.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/Messages.java new file mode 100644 index 0000000000..ee8b5274cc --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/Messages.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +/** + * Constants for resource bundle names + */ +public interface Messages { + String RESOURCE_BUNDLE = "org.apache.tuscany.sca.policy.xml.policy-xml-validation-messages"; +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java new file mode 100644 index 0000000000..69c5a11e9b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.policy.xml; + +import javax.xml.namespace.QName; + +/** + * constants related to policy framework + * + * @version $Rev$ $Date$ + */ +public interface PolicyConstants { + String WHITE_SPACE = " "; + String COLON = ":"; + String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + String TUSCANY_NS = "http://tuscany.apache.org/xmlns/sca/1.1"; + String INTENT = "intent"; + String POLICY_SET = "policySet"; + String POLICY_SET_REFERENCE = "policySetReference"; + String INTENT_MAP = "intentMap"; + String NAME = "name"; + String TARGET_NAMESPACE = "targetNamespace"; + String SCA_DEFINITIONS = "definitions"; + String CONSTRAINS = "constrains"; + String DESCRIPTION = "description"; + String PROVIDES = "provides"; + String APPLIES_TO = "appliesTo"; + String ATTACH_TO = "attachTo"; + String ALWAYS_APPLIES_TO = "alwaysAppliesTo"; + String QUALIFIER = "."; + String INTENT_QUALIFIER = "qualifier"; + String INTENT_MAP_QUALIFIER = "qualifier"; + String REQUIRES = "requires"; + String EXCLUDES = "excludes"; + String DEFAULT = "default"; + + String ALWAYS_PROVIDES = "alwaysProvides"; + String MAY_PROVIDE = "mayProvide"; + String INTENT_TYPE = "intentType"; + String IMPLEMENTATION_TYPE = "implementationType"; + String BINDING_TYPE = "bindingType"; + QName IMPLEMENTATION_TYPE_QNAME = new QName(SCA11_NS, IMPLEMENTATION_TYPE); + QName BINDING_TYPE_QNAME = new QName(SCA11_NS, BINDING_TYPE); + String BINDING = "binding"; + String IMPLEMENTATION = "implementation"; + + QName POLICY_INTENT_QNAME = new QName(SCA11_NS, INTENT); + QName POLICY_SET_QNAME = new QName(SCA11_NS, POLICY_SET); + QName POLICY_INTENT_MAP_QNAME = new QName(SCA11_NS, INTENT_MAP); + QName SCA_DEFINITIONS_QNAME = new QName(SCA11_NS, SCA_DEFINITIONS); + QName DESCRIPTION_QNAME = new QName(SCA11_NS, DESCRIPTION); + QName POLICY_INTENT_MAP_QUALIFIER_QNAME = new QName(SCA11_NS, INTENT_MAP_QUALIFIER); + QName POLICY_SET_REFERENCE_QNAME = new QName(SCA11_NS, POLICY_SET_REFERENCE); + QName INTENT_QUALIFIER_QNAME = new QName(SCA11_NS, INTENT_QUALIFIER); + + String QUALIFIED_INTENT_CONSTRAINS_ERROR = " - Qualified Intents must not specify 'constrains' attribute"; + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java new file mode 100644 index 0000000000..68475a208b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java @@ -0,0 +1,572 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; +import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; +import static org.apache.tuscany.sca.policy.xml.PolicyConstants.SCA11_NS; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.StringTokenizer; + +import javax.xml.XMLConstants; +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathExpression; +import javax.xml.xpath.XPathExpressionException; + +import org.apache.tuscany.sca.common.xml.xpath.XPathHelper; +import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.Problem; +import org.apache.tuscany.sca.monitor.Problem.Severity; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.IntentMap; +import org.apache.tuscany.sca.policy.PolicyExpression; +import org.apache.tuscany.sca.policy.PolicyFactory; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.Qualifier; + +/** + * Processor for handling XML models of PolicySet definitions + * + * @version $Rev$ $Date$ + */ +public class PolicySetProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor, + PolicyConstants { + + private PolicyFactory policyFactory; + private StAXArtifactProcessor extensionProcessor; + private XPathHelper xpathHelper; + + // private XPathFactory xpathFactory; + + public PolicySetProcessor(ExtensionPointRegistry registry, StAXArtifactProcessor extensionProcessor) { + FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); + this.policyFactory = modelFactories.getFactory(PolicyFactory.class); + this.extensionProcessor = extensionProcessor; + this.xpathHelper = XPathHelper.getInstance(registry); + } + + /** + * Report a exception. + * + * @param problems + * @param message + * @param model + */ + private void error(Monitor monitor, String message, Object model, Exception ex) { + if (monitor != null) { + Problem problem = + monitor.createProblem(this.getClass().getName(), + Messages.RESOURCE_BUNDLE, + Severity.ERROR, + model, + message, + ex); + monitor.problem(problem); + } + } + + /** + * Report a error. + * + * @param problems + * @param message + * @param model + */ + private void error(Monitor monitor, String message, Object model, Object... messageParameters) { + if (monitor != null) { + Problem problem = + monitor.createProblem(this.getClass().getName(), + Messages.RESOURCE_BUNDLE, + Severity.ERROR, + model, + message, + (Object[])messageParameters); + monitor.problem(problem); + } + } + + public PolicySet read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, + XMLStreamException { + PolicySet policySet = null; + Monitor monitor = context.getMonitor(); + String policySetName = reader.getAttributeValue(null, NAME); + String appliesTo = reader.getAttributeValue(null, APPLIES_TO); + if (policySetName == null || appliesTo == null) { + if (policySetName == null) + error(monitor, "PolicySetNameMissing", reader); + if (appliesTo == null) + error(monitor, "PolicySetAppliesToMissing", reader); + return policySet; + } + + policySet = policyFactory.createPolicySet(); + policySet.setName(new QName(policySetName)); + + //TODO: with 1.0 version of specs the applies to xpath is given related to the immediate + //parent whereas the runtime evaluates the xpath aginst the composite element. What the runtime + //is doing is what the future version of the specs could be tending towards. When that happens + //this 'if' must be deleted + if (appliesTo != null && !appliesTo.startsWith("/")) { + appliesTo = "//" + appliesTo; + } + + policySet.setAppliesTo(appliesTo); + + if (appliesTo != null) { + try { + XPath path = xpathHelper.newXPath(); + NamespaceContext nsContext = xpathHelper.getNamespaceContext(appliesTo, reader.getNamespaceContext()); + // path.setXPathFunctionResolver(new PolicyXPathFunctionResolver(context)); + XPathExpression expression = xpathHelper.compile(path, nsContext, appliesTo); + policySet.setAppliesToXPathExpression(expression); + } catch (XPathExpressionException e) { + ContributionReadException ce = new ContributionReadException(e); + error(monitor, "ContributionReadException", policySet, ce); + //throw ce; + } + } + + String attachTo = reader.getAttributeValue(null, ATTACH_TO); + if (attachTo != null) { + try { + XPath path = xpathHelper.newXPath(); + NamespaceContext nsContext = xpathHelper.getNamespaceContext(attachTo, reader.getNamespaceContext()); + path.setXPathFunctionResolver(new PolicyXPathFunctionResolver(nsContext)); + + attachTo = PolicyXPathFunction.normalize(attachTo,getSCAPrefix(nsContext)); + XPathExpression expression = xpathHelper.compile(path, nsContext, attachTo); + policySet.setAttachTo(attachTo); + policySet.setAttachToXPathExpression(expression); + } catch (XPathExpressionException e) { + ContributionReadException ce = new ContributionReadException(e); + error(monitor, "ContributionReadException", policySet, ce); + //throw ce; + } + + } + + readProvidedIntents(policySet, reader); + + int event = reader.getEventType(); + QName name = null; + reader.next(); + while (reader.hasNext()) { + event = reader.getEventType(); + switch (event) { + case START_ELEMENT: { + name = reader.getName(); + if (POLICY_INTENT_MAP_QNAME.equals(name)) { + Intent mappedIntent = policyFactory.createIntent(); + String provides = reader.getAttributeValue(null, PROVIDES); + if (provides != null) { + mappedIntent.setName(getQName(reader, PROVIDES)); + if (policySet.getProvidedIntents().contains(mappedIntent)) { + readIntentMap(reader, policySet, mappedIntent, context); + } else { + error(monitor, "IntentNotSpecified", policySet, policySetName); + } + } else { + error(monitor, "IntentMapProvidesMissing", reader, policySetName); + } + } else if (POLICY_SET_REFERENCE_QNAME.equals(name)) { + PolicySet referredPolicySet = policyFactory.createPolicySet(); + String referencename = reader.getAttributeValue(null, NAME); + if (referencename != null) { + referredPolicySet.setName(getQName(reader, NAME)); + policySet.getReferencedPolicySets().add(referredPolicySet); + } else { + error(monitor, "PolicySetReferenceNameMissing", reader, policySetName); + } + } /*else if ( WS_POLICY_QNAME.equals(name) ) { + OMElement policyElement = loadElement(reader); + org.apache.neethi.Policy wsPolicy = PolicyEngine.getPolicy(policyElement); + policySet.getPolicies().add(wsPolicy); + } */else { + Object extension = extensionProcessor.read(reader, context); + if (extension != null) { + PolicyExpression exp = policyFactory.createPolicyExpression(); + exp.setName(name); + exp.setPolicy(extension); + // check that all the policies in the policy set are + // expressed in the same language. Compare against the + // first expression we added + if ((policySet.getPolicies().size() > 0) && (!policySet.getPolicies().get(0).getName() + .equals(name))) { + error(monitor, "PolicyLanguageMissmatch", reader, policySet.getName(), policySet + .getPolicies().get(0).getName(), name); + } else { + policySet.getPolicies().add(exp); + } + } + } + break; + } + } + if (event == END_ELEMENT) { + if (POLICY_SET_QNAME.equals(reader.getName())) { + break; + } + } + + //Read the next element + if (reader.hasNext()) { + reader.next(); + } + } + return policySet; + } + + private String getSCAPrefix(NamespaceContext nsContext) { + + Iterator iter = nsContext.getPrefixes(SCA11_NS); + while (iter.hasNext()) { + String prefix = iter.next(); + if (!prefix.equals(XMLConstants.DEFAULT_NS_PREFIX)) { + return prefix; + } + } + + return "__sca"; + } + + public void readIntentMap(XMLStreamReader reader, PolicySet policySet, Intent mappedIntent, ProcessorContext context) + throws ContributionReadException { + Monitor monitor = context.getMonitor(); + QName name = reader.getName(); + if (POLICY_INTENT_MAP_QNAME.equals(name)) { + + IntentMap intentMap = policyFactory.createIntentMap(); + QName intentName = getQName(reader, INTENT_MAP); + intentMap.setProvidedIntent(mappedIntent); + + if (!policySet.getIntentMaps().contains(intentMap)) { + policySet.getIntentMaps().add(intentMap); + } else { + Monitor.error(context.getMonitor(), this, Messages.RESOURCE_BUNDLE, "IntentMapIsNotUnique", policySet + .getName().toString(), mappedIntent.getName().getLocalPart()); + } + + String qualifierName = null; + String qualfiedIntentName = null; + Intent qualifiedIntent = null; + + Qualifier qualifier = null; + + int event = reader.getEventType(); + try { + reader.next(); + while (reader.hasNext()) { + event = reader.getEventType(); + switch (event) { + case START_ELEMENT: { + name = reader.getName(); + if (POLICY_INTENT_MAP_QUALIFIER_QNAME.equals(name)) { + qualifierName = getString(reader, NAME); + if (qualifierName != null) { + qualfiedIntentName = + mappedIntent.getName().getLocalPart() + QUALIFIER + qualifierName; + qualifiedIntent = policyFactory.createIntent(); + qualifiedIntent.setName(new QName(mappedIntent.getName().getNamespaceURI(), + qualfiedIntentName)); + qualifier = policyFactory.createQualifier(); + qualifier.setIntent(qualifiedIntent); + intentMap.getQualifiers().add(qualifier); + + } else { + error(monitor, "QualifierNameMissing", reader, policySet.getName()); + } + } else if (POLICY_INTENT_MAP_QNAME.equals(name)) { + QName providedIntent = getQName(reader, PROVIDES); + if (qualifierName.equals(providedIntent.getLocalPart())) { + readIntentMap(reader, policySet, qualifiedIntent, context); + } else { + error(monitor, + "IntentMapDoesNotMatch", + providedIntent, + providedIntent, + qualifierName, + policySet); + //throw new ContributionReadException("Intent provided by IntentMap " + + //providedIntent + " does not match parent qualifier " + qualifierName + + //" in policyset - " + policySet); + } + } else { + Object extension = extensionProcessor.read(reader, context); + if (extension != null && qualifier != null) { + PolicyExpression exp = policyFactory.createPolicyExpression(); + exp.setName(name); + exp.setPolicy(extension); + qualifier.getPolicies().add(exp); + } + } + break; + } + } + if (event == END_ELEMENT && POLICY_INTENT_MAP_QNAME.equals(reader.getName())) { + break; + } + //Read the next element + if (reader.hasNext()) { + reader.next(); + } + } + } catch (XMLStreamException e) { + ContributionReadException ce = new ContributionReadException(e); + error(monitor, "ContributionReadException", reader, ce); + throw ce; + } + } + } + + public void write(PolicySet policySet, XMLStreamWriter writer, ProcessorContext context) + throws ContributionWriteException, XMLStreamException { + + // Write an + writer.writeStartElement(SCA11_NS, POLICY_SET); + writer.writeNamespace(policySet.getName().getPrefix(), policySet.getName().getNamespaceURI()); + writer.writeAttribute(NAME, policySet.getName().getPrefix() + COLON + policySet.getName().getLocalPart()); + writer.writeAttribute(APPLIES_TO, policySet.getAppliesTo()); + writer.writeAttribute(ATTACH_TO, policySet.getAttachTo()); + + writeProvidedIntents(policySet, writer); + + writer.writeEndElement(); + } + + private void readProvidedIntents(PolicySet policySet, XMLStreamReader reader) { + String value = reader.getAttributeValue(null, PROVIDES); + if (value != null) { + List providedIntents = policySet.getProvidedIntents(); + for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) { + QName qname = getQNameValue(reader, tokens.nextToken()); + Intent intent = policyFactory.createIntent(); + intent.setName(qname); + providedIntents.add(intent); + } + } + } + + private void writeProvidedIntents(PolicySet policySet, XMLStreamWriter writer) throws XMLStreamException { + if (!policySet.getProvidedIntents().isEmpty()) { + StringBuffer sb = new StringBuffer(); + for (Intent providedIntents : policySet.getProvidedIntents()) { + sb.append(getQualifiedName(providedIntents.getName(), writer)); + sb.append(" "); + } + // Remove the last space + sb.deleteCharAt(sb.length() - 1); + writer.writeAttribute(PolicyConstants.PROVIDES, sb.toString()); + } + } + + private String getQualifiedName(QName name, XMLStreamWriter writer) throws XMLStreamException { + String local = name.getLocalPart(); + String prefix = writer.getPrefix(name.getNamespaceURI()); + if (prefix != null && prefix.length() > 0) { + return prefix + ':' + local; + } else { + return local; + } + } + + private void resolvePolicies(PolicySet policySet, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + boolean unresolved = false; + if (policySet != null) { + for (Object o : policySet.getPolicies()) { + extensionProcessor.resolve(o, resolver, context); + /*if ( o instanceof Policy && ((Policy)o).isUnresolved() ) { + unresolved = true; + }*/ + } + policySet.setUnresolved(unresolved); + } + } + + public QName getArtifactType() { + return POLICY_SET_QNAME; + } + + public Class getModelType() { + return PolicySet.class; + } + + private void resolveProvidedIntents(PolicySet policySet, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + if (policySet != null) { + //resolve all provided intents + List providedIntents = new ArrayList(); + for (Intent providedIntent : policySet.getProvidedIntents()) { + if (providedIntent.isUnresolved()) { + Intent resolved = resolver.resolveModel(Intent.class, providedIntent, context); + if (!resolved.isUnresolved() || resolved != providedIntent) { + providedIntents.add(resolved); + } else { + error(context.getMonitor(), "ProvidedIntentNotFound", policySet, providedIntent, policySet); + return; + //throw new ContributionResolveException("Provided Intent - " + providedIntent + //+ " not found for PolicySet " + policySet); + } + } else { + providedIntents.add(providedIntent); + } + } + policySet.getProvidedIntents().clear(); + policySet.getProvidedIntents().addAll(providedIntents); + } + } + + private void resolveIntentsInMappedPolicies(PolicySet policySet, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + Monitor monitor = context.getMonitor(); + for (IntentMap intentMap : policySet.getIntentMaps()) { + Intent intent = intentMap.getProvidedIntent(); + if (intent.isUnresolved()) { + Intent resolved = resolver.resolveModel(Intent.class, intent, context); + if (!resolved.isUnresolved() || resolved != intent) { + intentMap.setProvidedIntent(resolved); + } else { + error(monitor, "MappedIntentNotFound", policySet, intent, policySet); + return; + //throw new ContributionResolveException("Mapped Intent - " + mappedIntent + //+ " not found for PolicySet " + policySet); + } + } + for (Qualifier qualifier : intentMap.getQualifiers()) { + intent = qualifier.getIntent(); + if (intent.isUnresolved()) { + Intent resolved = resolver.resolveModel(Intent.class, intent, context); + if (!resolved.isUnresolved() || resolved != intent) { + qualifier.setIntent(resolved); + } else { + error(monitor, "MappedIntentNotFound", policySet, intent, policySet); + return; + //throw new ContributionResolveException("Mapped Intent - " + mappedIntent + //+ " not found for PolicySet " + policySet); + } + } + for (PolicyExpression exp : qualifier.getPolicies()) { + // FIXME: How to resolve the policies? + } + } + // validate that the intent map has a qualifier for each + // intent qualifier. The above code has already checked that the + // qualifiers that are there are resolved + Intent providedIntent = intentMap.getProvidedIntent(); + if (intentMap.getQualifiers().size() != providedIntent.getQualifiedIntents().size()) { + String missingQualifiers = ""; + for (Intent loopQualifiedIntent : providedIntent.getQualifiedIntents()) { + boolean found = false; + for (Qualifier loopQualifier : intentMap.getQualifiers()) { + if (loopQualifier.getIntent().getName().equals(loopQualifiedIntent.getName())) { + found = true; + break; + } + } + if (!found) { + missingQualifiers += loopQualifiedIntent.getName().getLocalPart() + " "; + } + } + if (missingQualifiers.length() > 0) { + Monitor.error(context.getMonitor(), + this, + Messages.RESOURCE_BUNDLE, + "IntentMapMissingQualifiers", + policySet.getName().toString(), + providedIntent.getName().getLocalPart(), + missingQualifiers); + } + } + } + + } + + private void resolveReferredPolicySets(PolicySet policySet, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + + List referredPolicySets = new ArrayList(); + for (PolicySet referredPolicySet : policySet.getReferencedPolicySets()) { + if (referredPolicySet.isUnresolved()) { + PolicySet resolved = resolver.resolveModel(PolicySet.class, referredPolicySet, context); + if (!resolved.isUnresolved() || resolved != referredPolicySet) { + referredPolicySets.add(resolved); + } else { + error(context.getMonitor(), "ReferredPolicySetNotFound", policySet, referredPolicySet, policySet); + return; + //throw new ContributionResolveException("Referred PolicySet - " + referredPolicySet + //+ "not found for PolicySet - " + policySet); + } + } else { + referredPolicySets.add(referredPolicySet); + } + } + policySet.getReferencedPolicySets().clear(); + policySet.getReferencedPolicySets().addAll(referredPolicySets); + } + + private void includeReferredPolicySets(PolicySet policySet, PolicySet referredPolicySet) { + for (PolicySet furtherReferredPolicySet : referredPolicySet.getReferencedPolicySets()) { + includeReferredPolicySets(referredPolicySet, furtherReferredPolicySet); + } + policySet.getPolicies().addAll(referredPolicySet.getPolicies()); + policySet.getIntentMaps().addAll(referredPolicySet.getIntentMaps()); + } + + public void resolve(PolicySet policySet, ModelResolver resolver, ProcessorContext context) + throws ContributionResolveException { + if (policySet != null && policySet.isUnresolved()) { + resolveProvidedIntents(policySet, resolver, context); + resolveIntentsInMappedPolicies(policySet, resolver, context); + resolveReferredPolicySets(policySet, resolver, context); + + for (PolicySet referredPolicySet : policySet.getReferencedPolicySets()) { + includeReferredPolicySets(policySet, referredPolicySet); + } + + if (policySet.isUnresolved()) { + //resolve the policy attachments + resolvePolicies(policySet, resolver, context); + + /*if ( !policySet.isUnresolved() ) { + resolver.addModel(policySet); + }*/ + } + + policySet.setUnresolved(false); + } + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunction.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunction.java new file mode 100644 index 0000000000..d0b45b2d7d --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunction.java @@ -0,0 +1,294 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; +import javax.xml.xpath.XPathFunction; +import javax.xml.xpath.XPathFunctionException; + +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * The SCA-defined XPath function + */ +public class PolicyXPathFunction implements XPathFunction { + private static Logger logger = Logger.getLogger(PolicyXPathFunction.class.getName()); + + static final QName InterfaceRef = new QName(PolicyConstants.SCA11_NS, "InterfaceRef"); + static final QName OperationRef = new QName(PolicyConstants.SCA11_NS, "OperationRef"); + static final QName MessageRef = new QName(PolicyConstants.SCA11_NS, "MessageRef"); + static final QName IntentRefs = new QName(PolicyConstants.SCA11_NS, "IntentRefs"); + static final QName URIRef = new QName(PolicyConstants.SCA11_NS, "URIRef"); + + static final Set functions = + new HashSet(Arrays.asList(InterfaceRef, OperationRef, MessageRef, IntentRefs, URIRef)); + + private NamespaceContext namespaceContext; + private final QName functionName; + + public PolicyXPathFunction(NamespaceContext namespaceContext, QName functionName) { + super(); + this.namespaceContext = namespaceContext; + this.functionName = functionName; + } + + private Node getContextNode(List args) { + if (args.size() >= 2) { + NodeList nodeList = (NodeList)args.get(1); + if (nodeList.getLength() > 0) { + return nodeList.item(0); + } + } + return null; + } + + public Object evaluate(List args) throws XPathFunctionException { + if (logger.isLoggable(Level.FINE)) { + logger.fine(functionName + "(" + args + ")"); + } + + String arg = (String)args.get(0); + Node node = getContextNode(args); + /** + * If the xpath expression that contains the function does not select any nodes + * (eg IntentRefs('someIntent')), the context node passed in will be a Document. + * In this case we need to iterate over every Node in the Document and evaluate it. + * + * If the xpath expression does select nodes (eg //sca:component[IntentRefs('someIntent')]) + * then xpath will call evaluate for each node and we only need to return the result for that + * node. + */ + if ( node instanceof Document ) + return evaluateDocument(arg, (Document)node); + else + return evaluateNode(arg, node); + } + + public Object evaluateNode(String arg, Node node) { + if (InterfaceRef.equals(functionName)) { + return evaluateInterface(arg, node); + } else if (OperationRef.equals(functionName)) { + String[] params = arg.split("/"); + if (params.length != 2) { + throw new IllegalArgumentException("Invalid argument: " + arg); + } + String interfaceName = params[0]; + String operationName = params[1]; + return evaluateOperation(interfaceName, operationName, node); + } else if (MessageRef.equals(functionName)) { + String[] params = arg.split("/"); + if (params.length != 3) { + throw new IllegalArgumentException("Invalid argument: " + arg); + } + String interfaceName = params[0]; + String operationName = params[1]; + String messageName = params[2]; + return evaluateMessage(interfaceName, operationName, messageName, node); + } else if (URIRef.equals(functionName)) { + return evaluateURI(arg, node); + } else if (IntentRefs.equals(functionName)) { + String[] intents = arg.split("(\\s)+"); + return evaluateIntents(intents, node); + } else { + return Boolean.FALSE; + } + } + + private class NodeListImpl implements NodeList { + + private ArrayList list; + + public NodeListImpl() { + this.list = new ArrayList(); + } + public int getLength() { + return this.list.size(); + } + + public Node item(int index) { + return this.list.get(index); + } + public boolean add(Node node) { + return this.list.add(node); + + } + + } + private Object evaluateDocument(String arg, Document doc) { + NodeListImpl retList = new NodeListImpl(); + NodeList elements = doc.getElementsByTagName("*"); + for ( int i=0; i < elements.getLength(); i++) { + Object node = evaluateNode(arg, elements.item(i)); + if ( node != null ) + retList.add((Node)node); + } + return retList; + } + + private Boolean evaluateInterface(String interfaceName, Node node) { + return Boolean.FALSE; + } + + private Boolean evaluateOperation(String interfaceName, String operationName, Node node) { + return Boolean.FALSE; + } + + private Boolean evaluateMessage(String interfaceName, String operationName, String messageName, Node node) { + return Boolean.FALSE; + } + + private Boolean evaluateURI(String uri, Node node) { + return Boolean.FALSE; + } + + /** + * Evaluates a single node for the given intents. + * @param intents + * @param node + * @return + */ + private Object evaluateIntents(String[] intents, Node node) { + if ( node == null ) + return false; + + if ( node.getAttributes() != null ) { + for ( int i=0; i < node.getAttributes().getLength(); i++) { + Node attr = node.getAttributes().item(i); + + if ( "requires".equalsIgnoreCase(attr.getNodeName())) { + + for ( int j = 0; j < intents.length; j++ ) { + // Check negative intents + if ( intents[j].startsWith("!")) { + if ( matchIntent(intents[j].substring(1), attr, node.getNamespaceURI())) + return null; + } else if ( !matchIntent(intents[j], attr, node.getNamespaceURI())){ + return null; + } + } + return node; + } + + } + } + + return null; + } + + + + /** + * Determine whether the given intent is present in the "requires" attribute + * @param intent + * @param node + * @param namespaceURI + * @return + */ + private boolean matchIntent(String intent, Node node, String namespaceURI) { + String[] requires = node.getNodeValue().split("(\\s)+"); + QName intentName = getStringAsQName(intent); + + + for ( int i=0; i < requires.length; i++ ) { + QName nodeName = null; + int idx = requires[i].indexOf(':'); + + // No prefix specified + if ( idx == -1 ) { + nodeName = new QName(namespaceURI, requires[i]); + } else { + String prefix = requires[i].substring(0, idx); + String name = requires[i].substring(idx + 1); + String ns = node.lookupNamespaceURI(prefix); + nodeName = new QName(ns, name, prefix); + } + if ( intentName.equals(nodeName)) + return true; + } + return false; + } + + + private QName getStringAsQName(String intent) { + int idx = intent.indexOf(':'); + if (idx == -1) + return new QName(intent); + + String prefix = intent.substring(0, idx); + intent = intent.substring(idx + 1); + + return new QName(namespaceContext.getNamespaceURI(prefix), intent, prefix); + + } + + + private static Pattern FUNCTION; + static { + String functionPattern = "(URIRef|InterfaceRef|OperationRef|MessageRef|IntentRefs)\\s*\\(([^\\)]*)\\)"; + FUNCTION = Pattern.compile(functionPattern); + } + + /** Adds the node as an argument to the XPath function. + * Required in order to have access to the NodeList within the function + */ + public static String normalize(String attachTo, String scaPrefix) { + // Get rid of any whitespace + attachTo = attachTo.trim(); + + Matcher matcher = FUNCTION.matcher(attachTo); + boolean result = matcher.find(); + if (result) { + StringBuffer sb = new StringBuffer(); + do { + String function = matcher.group(1); + String args = matcher.group(2); + if ( (matcher.start() == 0) || (attachTo.charAt( matcher.start() -1) != ':' )) { + function = scaPrefix + ":" + function; + } + String replacement = null; + if (args.trim().length() > 0) { + replacement = function + "(" + args + "," + "self::node())"; + } else { + replacement = function + "(self::node())"; + } + matcher.appendReplacement(sb, replacement); + result = matcher.find(); + } while (result); + + matcher.appendTail(sb); + return sb.toString(); + } + return attachTo; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunctionResolver.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunctionResolver.java new file mode 100644 index 0000000000..ca44667903 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunctionResolver.java @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; +import javax.xml.xpath.XPathFunction; +import javax.xml.xpath.XPathFunctionResolver; + +/** + * A resolver that handles SCA-defined XPath functions + * + * Interface Related Functions + *
    + *
  • InterfaceRef( InterfaceName ) + *
  • OperationRef( InterfaceName/OperationName ) + *
  • MessageRef( InterfaceName/OperationName/MessageName ) + *
+ * + * Intent Related Functions + *
    + *
  • IntentRefs( IntentList ) + *
+ * + * URI Based Function + *
    + *
  • URIRef( URI ) + *
+ */ +public class PolicyXPathFunctionResolver implements XPathFunctionResolver { + private NamespaceContext namespaceContext; + + public PolicyXPathFunctionResolver(NamespaceContext namespaceContext) { + super(); + this.namespaceContext = namespaceContext; + } + + public XPathFunction resolveFunction(QName functionName, int arity) { + if (functionName == null) { + throw new NullPointerException("Function name is null"); + } + if (PolicyXPathFunction.functions.contains(functionName)) { + if (arity >= 1) { + // We are relaxing the arity here so that we can pass in the context node + // by modifying the original xpath so that sca functions take self::node() + // as the 2nd argument + return new PolicyXPathFunction(namespaceContext, functionName); + } else { + throw new IllegalArgumentException("Invalid number of arguments: " + arity); + } + } + return null; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd03.xml b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd03.xml new file mode 100644 index 0000000000..7d50cd0ae4 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd03.xml @@ -0,0 +1,242 @@ + + + + + + + + Communication through the binding requires that the + server is authenticated by the client + + + + + + + + Communication through the binding requires that the + client is authenticated by the server + + + + + + + + A convenience intent to help migration + + + + + + Communication through the binding requires that the + client and server to authenticate each other + + + + + + Communication through the binding prevents unauthorized + users from reading the messages + + + + + + + + Communication through the binding prevents tampering + with the messages sent between the client and the service. + + + + + + + + Ensures clients are authorized to use services. + + + + + + + + + This intent is used to indicate that a message sent + by a client is always delivered to the component. + + + + + + This intent is used to indicate that a message that was + successfully sent by a client is not delivered more than + once to the component. + + + + + + This profile intent is used to indicate that a message sent + by a client is always delivered to the component. It also + indicates that duplicate messages are not delivered to the + component. + + + + + + This intent is used to indicate that all the messages are + delivered to the component in the order they were sent by + the client. + + + + + + + A managed transaction environment is necessary in order to + run the component. The specific type of managed transaction + needed is not constrained. + + + + For a component marked with managedTransaction.global + a global transaction needs to be present before dispatching + any method on the component - using any transaction + propagated from the client or else beginning and completing + a new transaction. + + + + + A component marked with managedTransaction.local needs to + run within a local transaction containment (LTC) that + is started and ended by the SCA runtime. + + + + + + + A component marked with noManagedTransaction needs to run without + a managed transaction, under neither a global transaction nor + an LTC. A transaction propagated to the hosting SCA runtime + is not joined by the hosting runtime on behalf of a + component marked with noManagedtransaction. + + + + + + For a reference marked as transactedOneWay any OneWay invocation + messages are transacted as part of a client global + transaction. + For a service marked as transactedOneWay any OneWay invocation + message are received from the transport binding in a + transacted fashion, under the service’s global transaction. + + + + + + For a reference indicates that any OneWay invocation messages + are sent immediately regardless of any client transaction. + For a service indicates that any OneWay invocation is + received immediately regardless of any target service + transaction. + + + + + + A service marked with propagatesTransaction is dispatched + under any propagated (client) transaction and the service binding + needs to be capable of receiving a transaction context. + A reference marked with propagatesTransaction propagates any + transaction context under which the client runs when the + reference is used for a request-response interaction and the + binding of a reference marked with propagatesTransaction needs to + be capable of propagating a transaction context. + + + + + + A service marked with suspendsTransaction is not dispatched + under any propagated (client) transaction. + A reference marked with suspendsTransaction does not propagate + any transaction context under which the client runs when the + reference is used. + + + + + + Used to indicate that the component requires both the + managedTransaction.global and the propagatesTransactions + intents + + + + + + + Indicates that request/response operations for the + interface of this wire are "long running" and must be + treated as two separate message transmissions + + + + + + Specifies that the SOAP messaging model is used for delivering + messages. + + + + + + + + Requires that the messages are delivered and received via the + JMS API. + + + + + + This intent can only be used on a reference. Indicates that the + client is not able to handle new inbound connections. The binding + and callback binding are configured so that any + response or callback comes either through a back channel of the + connection from the client to the server or by having the client + poll the server for messages. + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor new file mode 100644 index 0000000000..7982dc123c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor @@ -0,0 +1,29 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Implementation class for the artifact processor extension +org.apache.tuscany.sca.assembly.xml.ComponentTypeProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#componentType,model=org.apache.tuscany.sca.assembly.ComponentType +org.apache.tuscany.sca.assembly.xml.CompositeProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#composite,model=org.apache.tuscany.sca.assembly.Composite +org.apache.tuscany.sca.assembly.xml.SCABindingProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#binding.sca,model=org.apache.tuscany.sca.assembly.SCABinding +org.apache.tuscany.sca.assembly.xml.EndpointProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#endpoint,model=org.apache.tuscany.sca.assembly.Endpoint +org.apache.tuscany.sca.assembly.xml.EndpointReferenceProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#endpointReference,model=org.apache.tuscany.sca.assembly.EndpointReference +org.apache.tuscany.sca.definitions.xml.DefinitionsProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#definitions,model=org.apache.tuscany.sca.definitions.Definitions +org.apache.tuscany.sca.policy.xml.BindingTypeProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#bindingType,model=org.apache.tuscany.sca.policy.BindingType +org.apache.tuscany.sca.policy.xml.ImplementationTypeProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#implementationType,model=org.apache.tuscany.sca.policy.ImplementationType +org.apache.tuscany.sca.policy.xml.IntentProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#intent,model=org.apache.tuscany.sca.policy.Intent +org.apache.tuscany.sca.policy.xml.PolicySetProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200912#policySet,model=org.apache.tuscany.sca.policy.PolicySet + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor new file mode 100644 index 0000000000..f8d1e11ef3 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor @@ -0,0 +1,22 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Implementation class for the artifact processor extension +org.apache.tuscany.sca.assembly.xml.ComponentTypeDocumentProcessor;type=.componentType,model=org.apache.tuscany.sca.assembly.ComponentType +org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor;type=.composite,model=org.apache.tuscany.sca.assembly.Composite +org.apache.tuscany.sca.definitions.xml.DefinitionsDocumentProcessor;type=/META-INF/definitions.xml,model=org.apache.tuscany.sca.definitions.Definitions + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver new file mode 100644 index 0000000000..f8e4d5bbd4 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver @@ -0,0 +1,21 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +org.apache.tuscany.sca.assembly.xml.CompositeModelResolver;model=org.apache.tuscany.sca.assembly.Composite +org.apache.tuscany.sca.assembly.xml.ComponentTypeModelResolver;model=org.apache.tuscany.sca.assembly.ComponentType +org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;model=org.apache.tuscany.sca.policy.Intent + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions new file mode 100644 index 0000000000..381c0ba23b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions @@ -0,0 +1,17 @@ +# 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. +META-INF/sca-policy-1.1-intents-definitions-cd03.xml diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint new file mode 100644 index 0000000000..45b3512614 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint @@ -0,0 +1,17 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +org.apache.tuscany.sca.definitions.xml.DefaultDefinitionsExtensionPoint diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/assembly/xml/assembly-xml-validation-messages.properties b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/assembly/xml/assembly-xml-validation-messages.properties new file mode 100644 index 0000000000..8ad5f88892 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/assembly/xml/assembly-xml-validation-messages.properties @@ -0,0 +1,32 @@ +# +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# +NoCompositeNamespace = No namespace found: Composite = {0} +UnexpectedInterfaceElement = Unexpected element found. It should appear inside a or element. +UnexpectedBindingElement = Unexpected element found. It should appear inside a or element. +UnexpectedImplementationElement = Unexpected element found. It should appear inside a element. +PolicyImplValidationException = PolicyValidation exception when processing implementation of component {0} due to {1}. +PolicyServiceValidationException = PolicyValidation exceptions when processing service/reference {0} in {1}. Error is {2} +ContributionReadException = ContributionReadException occured due to : {0} +ContributionResolveException = ContributionResolveException occured due to : {0} +ContributionWriteException = ContributionWriteException occured due to : {0} +XMLStreamException = XMLStreamException occured due to : {0} +DuplicateCompositeName = [ASM_6001] More than one composite with the same name {0} found in contribution {1} +PropertyTypeNotFound = The type {0} specified on property {1} of {2} can't be found in any loaded contribution (makes sure the .xsd file is in a contribution, that the contribution is being loaded and that contribution imports and exports are correct) diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/definitions/xml/definitions-xml-validation-messages.properties b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/definitions/xml/definitions-xml-validation-messages.properties new file mode 100644 index 0000000000..de27c0bd31 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/definitions/xml/definitions-xml-validation-messages.properties @@ -0,0 +1,24 @@ +# +# +# 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. +# +# +ContributionReadException = ContributionReadException occured due to : +PrivilegedActionException = Privileged Action Exception occured due to FilePermission in security policy file: +ImplementationTypeNotFound = [POL50001] An extension to support the implementation type {0} can't be found in the domain +BindingTypeNotFound = An extension to support the binding type {0} can't be found in the domain \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/policy/xml/policy-xml-validation-messages.properties b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/policy/xml/policy-xml-validation-messages.properties new file mode 100644 index 0000000000..08ef6bb5e9 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/policy/xml/policy-xml-validation-messages.properties @@ -0,0 +1,50 @@ +# +# +# 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. +# +# +ReferredPolicySetNotFound = Referred PolicySet - {0} not found for PolicySet - {1} +MappedIntentNotFound = Mapped Intent - {0} not found for PolicySet {1} +ProvidedIntentNotFound = Provided Intent - {0} not found for PolicySet {1} +UnableToMapPolicies = Unable to map policies for default qualifier in IntentMap for - {0} in policy set - {1} +IntentMapDoesNotMatch = Intent provided by IntentMap {0} does not match parent qualifier {1} in policyset - {2} +IntentNotSpecified = [POL30021] Intent Map provides for Intent not specified as provided by parent PolicySet - {0} +ContrainsAttributeMissing = Constrains attribute missing from Policy Intent Definition {0} +RequiredIntentNotFound = [POL30015] Required Intent - {0} not found for ProfileIntent {1} +QualifiableIntentNotFound = Qualifiable Intent - {0} not found for QualifiedIntent {1} +ErrorInPolicyIntentDefinition = Error in PolicyIntent Definition - {0} {1} +ExcludedIntentNotFound = [POL30016] Excluded Intent {0} not found for intent {1} +UnrecognizedIntentAttachPointType = Unrecognized IntentAttachPointType - {0} +RequiredAttributeMissing = Required attribute {0} missing from extension type definition +AlwaysProvidedIntentNotFound = Always Provided Intent - {0} not found for ExtensionType {1} +MayProvideIntentNotFound = May Provide Intent - {0} not found for ExtensionType {1} +ContributionReadException = ContributionReadException occurred due to: {0} +CyclicReferenceFound = Cyclic reference detected in required attributes of ProfileIntents {0} and {1} +IntentNameMissing = Required attribute "name" missing for Intent Definition +PolicySetReferenceNameMissing = Required attribute "name" missing for PolicySetReference in PolicySet : {0} +PolicySetNameMissing = Required attribute "name" missing for PolicySet Definition +PolicySetAppliesToMissing = Required attribute "appliesTo" missing for PolicySet Definition +IntentMapProvidesMissing = Required attribute "provides" missing for IntentMap in PolicySet : {0} +QualifierNameMissing = Required attribute "name" missing for qualifier definition in PolicySet : {0} +ConstrainedTypeNotFound = Unable to find the extension type {0} constrained by intent: {1} +MultipleDefaultQualifiers = [POL30004] Intent {0} has more than one qualifier marked as the default qualifier +QualifierIsNotUnique = [POL30005] The intent {0} has more than one qualifier with the name {1} +ProfileIntentNameWithPeriod = [POL30006] The profile intent name {0} must not have the character "." in it +IntentMapIsNotUnique = [POL30010] The policy set {0} has more than one intent map with the name {1} +IntentMapMissingQualifiers = [POL30020] The policy set {0} intent map {1} has missing qualifiers: {2} The intent map qualifiers must match the provided intent qualifiers. +PolicyLanguageMissmatch = Policy set {0} contains policy expressions from more than on language, languages {1} and {2} found diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessorTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessorTestCase.java new file mode 100644 index 0000000000..3f4a74ba03 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessorTestCase.java @@ -0,0 +1,108 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.StringReader; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.monitor.Monitor; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CompositeProcessorTestCase { + private static final String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + + private static final String OASIS_COMPOSITE = + " " + + "" + + "" + + " " + + "" + + ""; + + private static final String OSOA_COMPOSITE = + "" + + "" + + "" + + " " + + "" + + ""; + + private static XMLInputFactory inputFactory; + private static XMLOutputFactory outputFactory; + private static StAXArtifactProcessor staxProcessor; + private static Monitor monitor; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + monitor = context.getMonitor(); + inputFactory = XMLInputFactory.newInstance(); + outputFactory = XMLOutputFactory.newInstance(); + outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.TRUE); + StAXArtifactProcessorExtensionPoint staxProcessors = + extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory); + } + + @Test + public void testReadOASISSpecVersion() throws Exception { + XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(OASIS_COMPOSITE)); + Object result = staxProcessor.read(reader, context); + assertNotNull(result); + if( result instanceof Composite) { + Composite composite = (Composite) result; + assertEquals(SCA11_NS, composite.getSpecVersion()); + } + reader.close(); + } + + @Test + public void testReadOSOASpecVersion() throws Exception { + XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(OSOA_COMPOSITE)); + Object result = staxProcessor.read(reader, context); + assertNotNull(result); + if( result instanceof Composite) { + throw new Exception("Error, unsupported OSOA namespace being parsed as valid !"); + } + reader.close(); + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/MultiplicityReadWriteTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/MultiplicityReadWriteTestCase.java new file mode 100644 index 0000000000..0d5e69bd61 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/MultiplicityReadWriteTestCase.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.Multiplicity; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.junit.Before; +import org.junit.Test; + +/** + * Test writing SCA XML assemblies. + * + * TUSCANY-2662 + * + * @version $Rev$ $Date$ + */ +public class MultiplicityReadWriteTestCase { + private XMLInputFactory inputFactory; + private XMLOutputFactory outputFactory; + private ExtensibleStAXArtifactProcessor staxProcessor; + private ProcessorContext context; + + @Before + public void setUp() throws Exception { + DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + inputFactory = XMLInputFactory.newInstance(); + outputFactory = XMLOutputFactory.newInstance(); + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory); + } + + + @Test + public void testReadWriteComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("Multiplicity.composite"); + Composite composite = staxProcessor.read(is, Composite.class, context); + + verifyComposite(composite); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos, context); + bos.close(); + + ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); + composite = staxProcessor.read(bis, Composite.class, context); + + verifyComposite(composite); + + } + + + private void verifyComposite(Composite composite) { + assertEquals(composite.getComponents().get(0).getReferences().get(0).getMultiplicity(), Multiplicity.ZERO_N); + assertEquals(composite.getReferences().get(0).getMultiplicity(), Multiplicity.ONE_N); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadAllTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadAllTestCase.java new file mode 100644 index 0000000000..155c0c5a47 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadAllTestCase.java @@ -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.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.InputStream; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLInputFactory; + +import org.apache.tuscany.sca.assembly.Callback; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.CompositeReference; +import org.apache.tuscany.sca.assembly.CompositeService; +import org.apache.tuscany.sca.assembly.Property; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.policy.PolicySubject; +import org.junit.BeforeClass; +import org.junit.Test; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * Test reading SCA XML assemblies. + * + * @version $Rev$ $Date$ + */ +public class ReadAllTestCase { + private static StAXArtifactProcessor staxProcessor; + private static XMLInputFactory inputFactory; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + inputFactory = XMLInputFactory.newInstance(); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null); + } + + @Test + public void testReadComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("TestAllCalculator.composite"); + Composite composite = (Composite)staxProcessor.read(inputFactory.createXMLStreamReader(is), context); + assertNotNull(composite); + assertEquals(composite.getName(), new QName("http://calc", "TestAllCalculator")); + assertTrue(composite.isLocal()); + assertFalse(composite.getAutowire() == Boolean.TRUE); + assertEquals(((PolicySubject)composite).getRequiredIntents().get(0).getName(), new QName("http://test", + "confidentiality")); + assertEquals(((PolicySubject)composite).getPolicySets().get(0).getName(), new QName("http://test", "SecureReliablePolicy")); + + Composite include = composite.getIncludes().get(0); + assertEquals(include.getName(), new QName("http://calc", "TestAllDivide")); + + CompositeService calcCompositeService = (CompositeService)composite.getServices().get(0); + assertEquals(calcCompositeService.getName(), "CalculatorService"); + assertTrue(calcCompositeService.getPromotedService().isUnresolved()); + assertEquals(calcCompositeService.getPromotedService().getName(), + "CalculatorService"); + assertEquals(calcCompositeService.getRequiredIntents().get(0).getName(), + new QName("http://test", "confidentiality")); + assertEquals(calcCompositeService.getPolicySets().get(0).getName(), new QName("http://test", "SecureReliablePolicy")); + // TODO test operations + Callback calcServiceCallback = calcCompositeService.getCallback(); + assertNotNull(calcServiceCallback); + assertEquals(calcServiceCallback.getRequiredIntents().get(0).getName(), + new QName("http://test", "confidentiality")); + assertEquals(calcServiceCallback.getPolicySets().get(0).getName(), new QName("http://test", "SecureReliablePolicy")); + // TODO test operations + + Component calcComponent = composite.getComponents().get(0); + assertEquals(calcComponent.getName(), "CalculatorServiceComponent"); + assertEquals(calcComponent.getAutowire(), Boolean.FALSE); + assertEquals(calcComponent.getRequiredIntents().get(0).getName(), new QName("http://test", + "confidentiality")); + assertEquals(calcComponent.getPolicySets().get(0).getName(), new QName("http://test", "SecureReliablePolicy")); + + ComponentService calcComponentService = calcComponent.getServices().get(0); + assertEquals(calcComponentService.getName(), "CalculatorService"); + assertEquals(calcComponentService.getRequiredIntents().get(0).getName(), + new QName("http://test", "confidentiality")); + assertEquals(calcComponentService.getPolicySets().get(0).getName(), new QName("http://test", "SecureReliablePolicy")); + // TODO test operations + + ComponentReference calcComponentReference = calcComponent.getReferences().get(0); + assertEquals(calcComponentReference.getName(), "addService"); + assertEquals(calcComponentReference.getAutowire(), Boolean.FALSE); + assertEquals(calcComponentReference.isWiredByImpl(), false); + assertEquals(calcComponentReference.getRequiredIntents().get(0).getName(), + new QName("http://test", "confidentiality")); + assertEquals(calcComponentReference.getPolicySets().get(0).getName(), new QName("http://test", "SecureReliablePolicy")); + // TODO test operations + + Property property = calcComponent.getProperties().get(0); + assertEquals(property.getName(), "round"); + Document doc = (Document) property.getValue(); + Element element = doc.getDocumentElement(); + String value = element.getTextContent(); + assertEquals(value, "true"); + assertEquals(property.getXSDType(), new QName("http://www.w3.org/2001/XMLSchema", "boolean")); + assertEquals(property.isMany(), false); + + CompositeReference calcCompositeReference = (CompositeReference)composite.getReferences().get(0); + assertEquals(calcCompositeReference.getName(), "MultiplyService"); + assertTrue(calcCompositeReference.getPromotedReferences().get(0).isUnresolved()); + assertEquals(calcCompositeReference.getPromotedReferences().get(0).getName(), + "CalculatorServiceComponent/multiplyService"); + assertEquals(calcCompositeReference.getRequiredIntents().get(0).getName(), + new QName("http://test", "confidentiality")); + assertEquals(calcCompositeReference.getPolicySets().get(0).getName(), new QName("http://test", "SecureReliablePolicy")); + // TODO test operations + Callback calcCallback = calcCompositeReference.getCallback(); + assertEquals(calcCompositeReference.getRequiredIntents().get(0).getName(), + new QName("http://test", "confidentiality")); + assertEquals(calcCompositeReference.getPolicySets().get(0).getName(), new QName("http://test", "SecureReliablePolicy")); + assertNotNull(calcCallback); + // TODO test operations + + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java new file mode 100644 index 0000000000..473e483d31 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java @@ -0,0 +1,192 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.net.URI; +import java.net.URL; +import java.util.HashMap; + +import javax.xml.XMLConstants; +import javax.xml.parsers.SAXParserFactory; +import javax.xml.stream.XMLInputFactory; +import javax.xml.validation.Schema; +import javax.xml.validation.SchemaFactory; +import javax.xml.validation.ValidatorHandler; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.processor.DefaultValidatingXMLInputFactory; +import org.apache.tuscany.sca.contribution.processor.DefaultValidationSchemaExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint; +import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.DefaultFactoryExtensionPoint; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.junit.BeforeClass; +import org.junit.Test; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; + +/** + * Test reading SCA XML assembly documents. + * + * @version $Rev$ $Date$ + */ +public class ReadDocumentTestCase { + private static final String TUSCANY_11_XSD = "tuscany-sca-1.1.xsd"; + + private static URLArtifactProcessor documentProcessor; + private static ModelResolver resolver; + private static XMLInputFactory inputFactory; + private static StAXArtifactProcessor staxProcessor; + private static ValidatorHandler handler; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + URLArtifactProcessorExtensionPoint documentProcessors = + extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); + documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors); + + StAXArtifactProcessorExtensionPoint staxProcessors = + extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + inputFactory = XMLInputFactory.newInstance(); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null); + + resolver = new DefaultModelResolver(); + handler = getValidationHandler(); + + } + + @Test + public void testValidateAssembly() throws Exception { + SAXParserFactory parserFactory = SAXParserFactory.newInstance(); + URL url = getClass().getResource("Calculator.composite"); + XMLReader reader = parserFactory.newSAXParser().getXMLReader(); + reader.setFeature("http://xml.org/sax/features/namespaces", true); + reader.setContentHandler(handler); + reader.parse(new InputSource(url.openStream())); + + } + + private static ValidatorHandler getValidationHandler() throws SAXException { + SchemaFactory schemaFactory; + try { + schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); + schemaFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); + } catch (Error e) { + // Some old JDKs don't support XMLSchema validation + return null; + } catch (Exception e) { + // Some old JDKs don't support XMLSchema validation + return null; + } + Schema schema = schemaFactory.newSchema(ReadDocumentTestCase.class.getClassLoader().getResource(TUSCANY_11_XSD)); + ValidatorHandler handler = schema.newValidatorHandler(); + return handler; + } + + @Test + public void testValidateImplementation() throws Exception { + SAXParserFactory parserFactory = SAXParserFactory.newInstance(); + URL url = getClass().getResource("Calculator.composite"); + XMLReader reader = parserFactory.newSAXParser().getXMLReader(); + reader.setFeature("http://xml.org/sax/features/namespaces", true); + reader.setContentHandler(handler); + reader.parse(new InputSource(url.openStream())); + } + + @Test + public void testReadImplementation() throws Exception { + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + ValidationSchemaExtensionPoint schemas = new DefaultValidationSchemaExtensionPoint(registry, new HashMap()); + schemas.addSchema(getClass().getClassLoader().getResource(TUSCANY_11_XSD).toString()); + XMLInputFactory validatingInputFactory = new DefaultValidatingXMLInputFactory(inputFactory, schemas); + DefaultFactoryExtensionPoint factories = new DefaultFactoryExtensionPoint(registry); + factories.addFactory(validatingInputFactory); + + CompositeDocumentProcessor compositeDocumentProcessor = + new CompositeDocumentProcessor(factories, staxProcessor); + + URL url = getClass().getResource("Calculator.composite"); + URI uri = URI.create("Calculator.composite"); + Composite composite = (Composite)compositeDocumentProcessor.read(null, uri, url, context); + assertNotNull(composite); + } + + @Test + public void testValidateBinding() throws Exception { + SAXParserFactory parserFactory = SAXParserFactory.newInstance(); + URL url = getClass().getResource("RMIBindingTest.composite"); + XMLReader reader = parserFactory.newSAXParser().getXMLReader(); + reader.setFeature("http://xml.org/sax/features/namespaces", true); + reader.setContentHandler(handler); + reader.parse(new InputSource(url.openStream())); + } + + @Test + public void testReadBinding() throws Exception { + + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + ValidationSchemaExtensionPoint schemas = new DefaultValidationSchemaExtensionPoint(registry, new HashMap()); + schemas.addSchema(getClass().getClassLoader().getResource(TUSCANY_11_XSD).toString()); + XMLInputFactory validatingInputFactory = new DefaultValidatingXMLInputFactory(inputFactory, schemas); + DefaultFactoryExtensionPoint factories = new DefaultFactoryExtensionPoint(registry); + factories.addFactory(validatingInputFactory); + CompositeDocumentProcessor compositeDocumentProcessor = + new CompositeDocumentProcessor(factories, staxProcessor); + + URL url = getClass().getResource("RMIBindingTest.composite"); + URI uri = URI.create("RMIBindingTest.composite"); + Composite composite = (Composite)compositeDocumentProcessor.read(null, uri, url, context); + assertNotNull(composite); + } + + @Test + public void testResolveComposite() throws Exception { + URL url = getClass().getResource("Calculator.composite"); + URI uri = URI.create("Calculator.composite"); + Composite nestedComposite = (Composite)documentProcessor.read(null, uri, url, context); + assertNotNull(nestedComposite); + resolver.addModel(nestedComposite, context); + + url = getClass().getResource("TestAllCalculator.composite"); + uri = URI.create("TestAllCalculator.composite"); + Composite composite = (Composite)documentProcessor.read(null, uri, url, context); + + documentProcessor.resolve(composite, resolver, context); + + assertEquals(composite.getComponents().get(2).getImplementation(), nestedComposite); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadTestCase.java new file mode 100644 index 0000000000..05d320b211 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadTestCase.java @@ -0,0 +1,85 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertNotNull; + +import java.io.InputStream; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test reading SCA XML assemblies. + * + * @version $Rev$ $Date$ + */ +public class ReadTestCase { + + private static XMLInputFactory inputFactory; + private static StAXArtifactProcessor staxProcessor; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + inputFactory = XMLInputFactory.newInstance(); + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance()); + } + + + @Test + public void testReadComponentType() throws Exception { + InputStream is = getClass().getResourceAsStream("CalculatorImpl.componentType"); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + assertNotNull(staxProcessor.read(reader, context)); + is.close(); + } + + @Test + public void testReadComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("Calculator.composite"); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + assertNotNull(staxProcessor.read(reader, context)); + is.close(); + + } + + @Test + public void testReadCompositeAndWireIt() throws Exception { + InputStream is = getClass().getResourceAsStream("Calculator.composite"); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + assertNotNull(staxProcessor.read(reader, context)); + is.close(); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java new file mode 100644 index 0000000000..28a2bb6851 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java @@ -0,0 +1,130 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.StringReader; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessorExtensionPoint; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.junit.Test; + +/** + * Test reading SCA XML assemblies. + * + * @version $Rev$ $Date$ + */ +public class ReadWriteAnyAttributeTestCase { + + private static final String XML = ""+ + ""+ + ""+ + ""+ + ""+ + ""; + + private XMLInputFactory inputFactory; + private ExtensibleStAXArtifactProcessor staxProcessor; + private ProcessorContext context; + + /** + * Initialize the test environment + * This takes care to register attribute processors when provided + * + * @param attributeProcessor + * @throws Exception + */ + private void init(StAXAttributeProcessor attributeProcessor) throws Exception { + ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + inputFactory = XMLInputFactory.newInstance(); + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + + if(attributeProcessor != null) { + StAXAttributeProcessorExtensionPoint staxAttributeProcessors = extensionPoints.getExtensionPoint(StAXAttributeProcessorExtensionPoint.class); + staxAttributeProcessors.addArtifactProcessor(attributeProcessor); + } + + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance()); + } + + /** + * Read and Write a composite that has a extended attribute + * and a particular attribute processor + * @throws Exception + */ + @Test + public void testReadWriteCompositeWithAttributeProcessor() throws Exception { + init(new TestAttributeProcessor()); + + XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML)); + Composite composite = (Composite) staxProcessor.read(reader, context); + assertNotNull(composite); + reader.close(); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos, context); + + // used for debug comparison + // System.out.println(XML); + // System.out.println(bos.toString()); + + assertEquals(XML, bos.toString()); + } + + /** + * Read and Write a composite that has a extended attribute + * but no particular processor for it + * @throws Exception + */ + @Test + public void testDefaultReadWriteComposite() throws Exception { + init(null); + + XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML)); + Composite composite = (Composite) staxProcessor.read(reader, context); + assertNotNull(composite); + reader.close(); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos, context); + + // used for debug comparison + // System.out.println(XML); + // System.out.println(bos.toString()); + + assertEquals(XML, bos.toString()); + } +} \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java new file mode 100644 index 0000000000..7a36c1d97d --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyElementTestCase.java @@ -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.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.StringReader; + +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +public class ReadWriteAnyElementTestCase { + private static final String XML_RECURSIVE_EXTENDED_ELEMENT = + "" + + "" + + "" + + "" + + "" + + "" + + ""; + + private static final String XML_UNKNOWN_IMPL = + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + ""; + + private static final String XML_UNKNOWN_IMPL_WITH_INVALID_ATTRIBUTE = + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + ""; + + + private ValidatingXMLInputFactory inputFactory; + private ExtensibleStAXArtifactProcessor staxProcessor; + private ProcessorContext context; + + @Before + public void setUp() throws Exception { + ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); + inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class); + + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, XMLOutputFactory.newInstance()); + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testReadWriteExtendedRecursiveElement() throws Exception { + XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML_RECURSIVE_EXTENDED_ELEMENT)); + ValidatingXMLInputFactory.setMonitor(reader, context.getMonitor()); + Composite composite = (Composite)staxProcessor.read(reader, context); + assertNotNull(composite); + reader.close(); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos, context); + + // used for debug comparison + // System.out.println(XML_RECURSIVE_EXTENDED_ELEMENT); + // System.out.println(bos.toString()); + + assertEquals(XML_RECURSIVE_EXTENDED_ELEMENT, bos.toString()); + bos.close(); + } + + @Test + public void testReadWriteUnknwonImpl() throws Exception { + XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML_UNKNOWN_IMPL)); + Composite composite = (Composite)staxProcessor.read(reader, context); + assertNotNull(composite); + reader.close(); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos, context); + + // used for debug comparison + // System.out.println(XML_UNKNOWN_IMPL); + // System.out.println(bos.toString()); + + assertEquals(XML_UNKNOWN_IMPL, bos.toString()); + bos.close(); + } + + // @Test + @Ignore() + public void testReadWriteInvalidAttribute() throws Exception { + XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML_UNKNOWN_IMPL_WITH_INVALID_ATTRIBUTE)); + Composite composite = (Composite)staxProcessor.read(reader, context); + assertNotNull(composite); + reader.close(); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos, context); + + // used for debug comparison + // System.out.println(XML_UNKNOWN_IMPL); + // System.out.println(bos.toString()); + + assertEquals(XML_UNKNOWN_IMPL, bos.toString()); + bos.close(); + } +} \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteLocalCompositeTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteLocalCompositeTestCase.java new file mode 100644 index 0000000000..fc675dcdce --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteLocalCompositeTestCase.java @@ -0,0 +1,103 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessorExtensionPoint; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + + +/** + * Test reading SCA XML assemblies. + * + * @version $Rev$ $Date$ + */ +public class ReadWriteLocalCompositeTestCase { + + private XMLInputFactory inputFactory; + private ExtensibleStAXArtifactProcessor staxProcessor; + private ProcessorContext context; + + private static final String LOCAL_COMPOSITE_XML = ""+ + ""+ + ""; + + @Before + public void setUp() throws Exception { + ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + inputFactory = XMLInputFactory.newInstance(); + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + + StAXAttributeProcessorExtensionPoint staxAttributeProcessors = extensionPoints.getExtensionPoint(StAXAttributeProcessorExtensionPoint.class); + staxAttributeProcessors.addArtifactProcessor(new TestAttributeProcessor()); + + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance()); + } + + @After + public void tearDown() throws Exception { + + } + + @Test + public void testReadComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("local.composite"); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + Composite composite = (Composite) staxProcessor.read(reader, context); + assertNotNull(composite); + assertTrue(composite.isLocal()); + is.close(); + } + + @Test + public void testWriteComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("local.composite"); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + Composite composite = (Composite) staxProcessor.read(reader, context); + assertNotNull(composite); + assertTrue(composite.isLocal()); + is.close(); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos, context); + System.out.println(bos.toString()); + + assertEquals(LOCAL_COMPOSITE_XML, bos.toString()); + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java new file mode 100644 index 0000000000..df588e3504 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java @@ -0,0 +1,143 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.net.URI; +import java.net.URL; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.definitions.Definitions; +import org.apache.tuscany.sca.policy.PolicySubject; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test reading SCA XML assembly documents. + * + * @version $Rev$ $Date$ + */ +public class ResolvePolicyTestCase { + + private static URLArtifactProcessor documentProcessor; + private static ModelResolver resolver; + private static URLArtifactProcessor policyDefinitionsProcessor; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + resolver = new DefaultModelResolver(); + + URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); + documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors); + policyDefinitionsProcessor = documentProcessors.getProcessor(Definitions.class); + + // Create StAX processors + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessors.addArtifactProcessor(new TestPolicyProcessor()); + } + + private void preResolvePolicyTests(Composite composite) { + assertNull(((PolicySubject)composite).getRequiredIntents().get(0).getDescription()); + assertTrue(((PolicySubject)composite).getPolicySets().get(0).getProvidedIntents().isEmpty()); + + assertNull(composite.getServices().get(0).getRequiredIntents().get(0).getDescription()); + assertTrue(composite.getServices().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNull(composite.getServices().get(0).getCallback().getRequiredIntents().get(0).getDescription()); + assertTrue(composite.getServices().get(0).getCallback().getPolicySets().get(0).getProvidedIntents().isEmpty()); + + assertNull(composite.getComponents().get(0).getRequiredIntents().get(0).getDescription()); + assertTrue(composite.getComponents().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNull(composite.getComponents().get(0).getServices().get(0).getRequiredIntents().get(0).getDescription()); + assertTrue(composite.getComponents().get(0).getServices().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNull(composite.getComponents().get(0).getReferences().get(0).getRequiredIntents().get(0).getDescription()); + assertTrue(composite.getComponents().get(0).getReferences().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + + assertNull(composite.getReferences().get(0).getRequiredIntents().get(0).getDescription()); + assertTrue(composite.getReferences().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNull(composite.getReferences().get(0).getCallback().getRequiredIntents().get(0).getDescription()); + assertTrue(composite.getReferences().get(0).getCallback().getPolicySets().get(0).getProvidedIntents().isEmpty()); + } + + private void postResolvePolicyTests(Composite composite) { + assertNotNull(((PolicySubject)composite).getRequiredIntents().get(0).getDescription()); + assertFalse(((PolicySubject)composite).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNotNull(((PolicySubject)composite).getPolicySets().get(0).getProvidedIntents().get(1).getDescription()); + + assertNotNull(composite.getServices().get(0).getRequiredIntents().get(0).getDescription()); + assertFalse(composite.getServices().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNotNull(composite.getServices().get(0).getPolicySets().get(0).getProvidedIntents().get(1).getDescription()); + assertNotNull(composite.getServices().get(0).getCallback().getRequiredIntents().get(0).getDescription()); + assertFalse(composite.getServices().get(0).getCallback().getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNotNull(composite.getServices().get(0).getCallback().getPolicySets().get(0).getProvidedIntents().get(1).getDescription()); + + assertNotNull(composite.getComponents().get(0).getRequiredIntents().get(0).getDescription()); + assertFalse(composite.getComponents().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNotNull(composite.getComponents().get(0).getPolicySets().get(0).getProvidedIntents().get(1).getDescription()); + assertNotNull(composite.getComponents().get(0).getServices().get(0).getRequiredIntents().get(0).getDescription()); + assertFalse(composite.getComponents().get(0).getServices().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNotNull(composite.getComponents().get(0).getServices().get(0).getPolicySets().get(0).getProvidedIntents().get(1).getDescription()); + assertNotNull(composite.getComponents().get(0).getReferences().get(0).getRequiredIntents().get(0).getDescription()); + assertFalse(composite.getComponents().get(0).getReferences().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNotNull(composite.getComponents().get(0).getReferences().get(0).getPolicySets().get(0).getProvidedIntents().get(1).getDescription()); + + assertNotNull(composite.getReferences().get(0).getRequiredIntents().get(0).getDescription()); + assertFalse(composite.getReferences().get(0).getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNotNull(composite.getReferences().get(0).getPolicySets().get(0).getProvidedIntents().get(1).getDescription()); + assertNotNull(composite.getReferences().get(0).getCallback().getRequiredIntents().get(0).getDescription()); + assertFalse(composite.getReferences().get(0).getCallback().getPolicySets().get(0).getProvidedIntents().isEmpty()); + assertNotNull(composite.getReferences().get(0).getCallback().getPolicySets().get(0).getProvidedIntents().get(1).getDescription()); + + + } + + @Test + public void testResolveComposite() throws Exception { + URL url = getClass().getResource("Calculator.composite"); + URI uri = URI.create("Calculator.composite"); + Composite nestedComposite = (Composite)documentProcessor.read(null, uri, url, context); + assertNotNull(nestedComposite); + resolver.addModel(nestedComposite, context); + + url = getClass().getResource("TestAllCalculator.composite"); + uri = URI.create("TestAllCalculator.composite"); + Composite composite = (Composite)documentProcessor.read(null, uri, url, context); + + documentProcessor.resolve(composite, resolver, context); + + assertEquals(composite.getComponents().get(2).getImplementation(), nestedComposite); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolveTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolveTestCase.java new file mode 100644 index 0000000000..28e679da4a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolveTestCase.java @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.InputStream; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.junit.BeforeClass; +import org.junit.Test; + + +/** + * Test resolving SCA XML assemblies. + * + * @version $Rev$ $Date$ + */ +public class ResolveTestCase { + + private static XMLInputFactory inputFactory; + private static StAXArtifactProcessorExtensionPoint staxProcessors; + private static ModelResolver resolver; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + inputFactory = XMLInputFactory.newInstance(); + staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + resolver = new DefaultModelResolver(); + } + + @Test + public void testResolveComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("Calculator.composite"); + StAXArtifactProcessor compositeReader = staxProcessors.getProcessor(Composite.class); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + Composite nestedComposite = compositeReader.read(reader, context); + is.close(); + assertNotNull(nestedComposite); + resolver.addModel(nestedComposite, context); + + is = getClass().getResourceAsStream("TestAllCalculator.composite"); + reader = inputFactory.createXMLStreamReader(is); + Composite composite = compositeReader.read(reader, context); + is.close(); + + compositeReader.resolve(composite, resolver, context); + + assertEquals(composite.getComponents().get(2).getImplementation(), nestedComposite); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/StripURISpacesTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/StripURISpacesTestCase.java new file mode 100644 index 0000000000..8d9bc72389 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/StripURISpacesTestCase.java @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertEquals; + +import java.io.InputStream; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.CompositeService; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test reading SCA XML assemblies. + * + * @version $Rev$ $Date$ + */ +public class StripURISpacesTestCase { + + private static XMLInputFactory inputFactory; + private static StAXArtifactProcessor staxProcessor; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + inputFactory = XMLInputFactory.newInstance(); + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance()); + } + + + + @Test + public void testReadComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("CalculatorURISpaces.composite"); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + Composite composite = (Composite)staxProcessor.read(reader, context); + assertNotNull(composite); + is.close(); + + CompositeService compositeService = (CompositeService)composite.getServices().get(0); + assertNotNull(compositeService); + + // Promoted component name with leading and training spaces removed + assertEquals("CalculatorServiceComponent", compositeService.getPromotedComponent().getName()); + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java new file mode 100644 index 0000000000..b6f4c11ac2 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.xml; + +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.contribution.processor.BaseStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; + +/** + * A Policy Processor used for testing. + * + * @version $Rev$ $Date$ + */ +public class TestAttributeProcessor extends BaseStAXArtifactProcessor implements StAXAttributeProcessor { + private static final QName ATTRIBUTE = new QName("http://test", "customAttribute"); + + public QName getArtifactType() { + return ATTRIBUTE; + } + + public String read(QName attributeName, XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { + return reader.getAttributeValue(attributeName.getNamespaceURI(), attributeName.getLocalPart()); + } + + public void write(String value, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException { + writer.setPrefix(ATTRIBUTE.getPrefix(), ATTRIBUTE.getNamespaceURI()); + writer.writeAttribute(ATTRIBUTE.getLocalPart(), value); + } + + public Class getModelType() { + return String.class; + } + + public void resolve(String arg0, ModelResolver arg1, ProcessorContext context) throws ContributionResolveException { + + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestPolicyProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestPolicyProcessor.java new file mode 100644 index 0000000000..cfec8dee7a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestPolicyProcessor.java @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.xml; + +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.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.policy.PolicyExpression; + +/** + * A PolicyExpression Processor used for testing. + * + * @version $Rev$ $Date$ + */ +public class TestPolicyProcessor implements StAXArtifactProcessor { + + public QName getArtifactType() { + return new QName("http://schemas.xmlsoap.org/ws/2004/09/policy", "PolicyAttachment"); + } + + public PolicyExpression read(XMLStreamReader arg0, ProcessorContext context) throws ContributionReadException, XMLStreamException { + return new MockPolicyImplOne(); + } + + public void write(PolicyExpression arg0, XMLStreamWriter arg1, ProcessorContext context) throws ContributionWriteException, + XMLStreamException { + } + + public Class getModelType() { + return PolicyExpression.class; + } + + public void resolve(PolicyExpression arg0, ModelResolver arg1, ProcessorContext context) throws ContributionResolveException { + } + + public class MockPolicyImplOne implements PolicyExpression { + public T getPolicy() { + return null; + } + + public void setName(QName name) { + } + + public void setPolicy(T policy) { + } + + public QName getName() { + return new QName("http://schemas.xmlsoap.org/ws/2004/09/policy", "PolicyAttachment"); + } + + public boolean isUnresolved() { + return false; + } + + public void setUnresolved(boolean unresolved) { + } + + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestSCABindingFactoryImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestSCABindingFactoryImpl.java new file mode 100644 index 0000000000..5e3fa15b69 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestSCABindingFactoryImpl.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import org.apache.tuscany.sca.assembly.SCABinding; +import org.apache.tuscany.sca.assembly.SCABindingFactory; + +/** + * A factory for the SCA binding model. + * + * @version $Rev$ $Date$ + */ +public class TestSCABindingFactoryImpl implements SCABindingFactory { + public SCABinding createSCABinding() { + return new TestSCABindingImpl(); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestSCABindingImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestSCABindingImpl.java new file mode 100644 index 0000000000..f83a2ebd14 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestSCABindingImpl.java @@ -0,0 +1,162 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.xml; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.OperationSelector; +import org.apache.tuscany.sca.assembly.SCABinding; +import org.apache.tuscany.sca.assembly.WireFormat; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * A test cheel for the SCA binding. + * + * @version $Rev$ $Date$ + */ +public class TestSCABindingImpl implements SCABinding, PolicySubject { + private String name; + private String uri; + private List extensions = new ArrayList(); + + private List requiredIntents = new ArrayList(); + private List policySets = new ArrayList(); + private ExtensionType bindingType = new TestSCABindingType(); + + /** + * Constructs a new SCA binding. + */ + protected TestSCABindingImpl() { + } + + public String getName() { + return name; + } + + public String getURI() { + return uri; + } + + public void setName(String name) { + this.name = name; + } + + public void setURI(String uri) { + this.uri = uri; + } + + public List getExtensions() { + return extensions; + } + + public boolean isUnresolved() { + return false; + } + + public void setUnresolved(boolean unresolved) { + } + + /** + * @see java.lang.Object#clone() + */ + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + public List getPolicySets() { + // TODO Auto-generated method stub + return policySets; + } + + public List getRequiredIntents() { + // TODO Auto-generated method stub + return requiredIntents; + } + + public ExtensionType getExtensionType() { + // TODO Auto-generated method stub + return bindingType; + } + + public void setExtensionType(ExtensionType type) { + this.bindingType = type; + } + + public QName getType() { + return TYPE; + } + + private class TestSCABindingType implements ExtensionType { + private QName name = new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912","binding"); + public QName getBaseType() { + return BINDING_BASE; + } + + public QName getType() { + return name; + } + + public void setType(QName type) { + } + + public List getAlwaysProvidedIntents() { + return Collections.emptyList(); + } + + public List getMayProvidedIntents() { + return Collections.emptyList(); + } + + public boolean isUnresolved() { + return false; + } + + public void setUnresolved(boolean unresolved) { + } + } + + public WireFormat getRequestWireFormat() { + return null; + } + + public void setRequestWireFormat(WireFormat wireFormat) { + } + + public WireFormat getResponseWireFormat() { + return null; + } + + public void setResponseWireFormat(WireFormat wireFormat) { + } + + public OperationSelector getOperationSelector() { + return null; + } + + public void setOperationSelector(OperationSelector operationSelector) { + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java new file mode 100644 index 0000000000..543aaf9893 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java @@ -0,0 +1,109 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.URL; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.SCABindingFactory; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.definitions.Definitions; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test the wiring of SCA XML assemblies. + * + * @version $Rev$ $Date$ + */ +public class WireTestCase { + + private static XMLInputFactory inputFactory; + private static StAXArtifactProcessor staxProcessor; + private static ModelResolver resolver; + private static URLArtifactProcessor policyDefinitionsProcessor; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + inputFactory = XMLInputFactory.newInstance(); + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null); + resolver = new DefaultModelResolver(); + + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); + SCABindingFactory scaBindingFactory = new TestSCABindingFactoryImpl(); + modelFactories.addFactory(scaBindingFactory); + + URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); + policyDefinitionsProcessor = documentProcessors.getProcessor(Definitions.class); + } + + @Test + public void testResolveComposite() throws Exception { + Composite nestedComposite = readComposite("Calculator.composite"); + assertNotNull(nestedComposite); + resolver.addModel(nestedComposite, context); + + Composite composite = readComposite("TestAllCalculator.composite"); + + URL url = getClass().getResource("test_definitions.xml"); + URI uri = URI.create("test_definitions.xml"); + Definitions scaDefns = (Definitions)policyDefinitionsProcessor.read(null, uri, url, context); + assertNotNull(scaDefns); + + policyDefinitionsProcessor.resolve(scaDefns, resolver, context); + + staxProcessor.resolve(composite, resolver, context); + + assertEquals(composite.getComponents().get(2).getImplementation(), nestedComposite); + } + + private Composite readComposite(String resource) throws XMLStreamException, ContributionReadException, IOException { + InputStream is = getClass().getResourceAsStream(resource); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + Composite composite = (Composite)staxProcessor.read(reader, context); + is.close(); + return composite; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java new file mode 100644 index 0000000000..a19ce79490 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java @@ -0,0 +1,136 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.net.URI; +import java.net.URL; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; + +import org.apache.tuscany.sca.assembly.ComponentType; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.SCABindingFactory; +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.definitions.Definitions; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test writing SCA XML assemblies. + * + * @version $Rev$ $Date$ + */ +public class WriteAllTestCase { + private static XMLInputFactory inputFactory; + private static XMLOutputFactory outputFactory; + private static ExtensibleStAXArtifactProcessor staxProcessor; + private static ModelResolver resolver; + private static URLArtifactProcessor policyDefinitionsProcessor; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + inputFactory = XMLInputFactory.newInstance(); + outputFactory = XMLOutputFactory.newInstance(); + StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory); + resolver = new DefaultModelResolver(); + + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); + SCABindingFactory scaBindingFactory = new TestSCABindingFactoryImpl(); + modelFactories.addFactory(scaBindingFactory); + + URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); + policyDefinitionsProcessor = documentProcessors.getProcessor(Definitions.class); + } + + @Test + public void testReadWriteComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("TestAllCalculator.composite"); + Composite composite = staxProcessor.read(is, Composite.class, context); + + verifyComposite(composite); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos, context); + bos.close(); + + ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); + composite = staxProcessor.read(bis, Composite.class, context); + + verifyComposite(composite); + + } + + @Test + public void testReadWireWriteComposite() throws Exception { + InputStream is = getClass().getResourceAsStream("TestAllCalculator.composite"); + Composite composite = staxProcessor.read(is, Composite.class, context); + + URL url = getClass().getResource("test_definitions.xml"); + URI uri = URI.create("test_definitions.xml"); + Definitions scaDefns = (Definitions)policyDefinitionsProcessor.read(null, uri, url, context); + assertNotNull(scaDefns); + policyDefinitionsProcessor.resolve(scaDefns, resolver, context); + + staxProcessor.resolve(composite, resolver, context); + // compositeBuilder.build(composite, null, monitor); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(composite, bos, context); + } + + @Test + public void testReadWriteComponentType() throws Exception { + InputStream is = getClass().getResourceAsStream("CalculatorImpl.componentType"); + ComponentType componentType = staxProcessor.read(is, ComponentType.class, context); + staxProcessor.resolve(componentType, resolver, context); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + staxProcessor.write(componentType, bos, context); + } + + + private void verifyComposite(Composite composite) { + assertEquals(composite.getProperties().get(0).getName(),"prop1"); + assertEquals(composite.getProperties().get(0).isMany(), true); + assertEquals(composite.getProperties().get(1).getName(),"prop2"); + assertEquals(composite.getProperties().get(1).isMustSupply(), true); + assertEquals(composite.getProperties().get(0).getXSDType(), new QName("http://foo", "MyComplexType")); + assertEquals(composite.getProperties().get(1).getXSDElement(), new QName("http://foo", "MyComplexPropertyValue1")); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteNamespacesTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteNamespacesTestCase.java new file mode 100644 index 0000000000..f50cd5811f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteNamespacesTestCase.java @@ -0,0 +1,99 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xml; + +import static org.junit.Assert.assertEquals; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; + +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test writing SCA XML assemblies. + * + * @version $Rev$ $Date$ + */ +public class WriteNamespacesTestCase { + private static StAXArtifactProcessor compositeProcessor; + private static XMLOutputFactory outputFactory; + private static XMLInputFactory inputFactory; + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); + outputFactory = modelFactories.getFactory(XMLOutputFactory.class); + //outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.TRUE); + inputFactory = modelFactories.getFactory(XMLInputFactory.class); + + StAXArtifactProcessorExtensionPoint artifactProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + compositeProcessor = artifactProcessors.getProcessor(Composite.class); + } + + @Test + public void testReadWriteComposite() throws Exception { + + // Read + InputStream is = getClass().getResourceAsStream("NestedCalculator.composite"); + XMLStreamReader reader = inputFactory.createXMLStreamReader(is); + Composite composite = compositeProcessor.read(reader, context); + Component component = composite.getComponents().get(0); + Composite implementation = (Composite)component.getImplementation(); + QName qname = implementation.getName(); + + // Write + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + XMLStreamWriter writer = outputFactory.createXMLStreamWriter(bos); + compositeProcessor.write(composite, writer, context); + System.out.println(bos); + + // Read again + is = new ByteArrayInputStream(bos.toByteArray()); + reader = inputFactory.createXMLStreamReader(is); + composite = compositeProcessor.read(reader, context); + + // Compare + component = composite.getComponents().get(0); + implementation = (Composite)component.getImplementation(); + + assertEquals(qname, implementation.getName()); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/MockPolicy.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/MockPolicy.java new file mode 100644 index 0000000000..58e6e534b9 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/MockPolicy.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.definitions.xml; + +import javax.xml.namespace.QName; + +/** + * Mocked Policy + */ +public class MockPolicy { + public QName getName() { + return new QName("http://schemas.xmlsoap.org/ws/2004/09/policy", "PolicyAttachment"); + } + + public boolean isUnresolved() { + return false; + } + + public void setUnresolved(boolean unresolved) { + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/ReadDocumentTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/ReadDocumentTestCase.java new file mode 100644 index 0000000000..f99b81f73f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/ReadDocumentTestCase.java @@ -0,0 +1,230 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.definitions.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.net.URI; +import java.net.URL; +import java.util.Hashtable; +import java.util.Map; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.definitions.Definitions; +import org.apache.tuscany.sca.policy.BindingType; +import org.apache.tuscany.sca.policy.ImplementationType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.IntentMap; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.Qualifier; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test reading SCA XML assembly documents. + * + * @version $Rev$ $Date$ + */ +public class ReadDocumentTestCase { + + private static URLArtifactProcessor policyDefinitionsProcessor = null; + private static Definitions definitions; + private static Map intentTable = new Hashtable(); + private static Map policySetTable = new Hashtable(); + private static Map bindingTypesTable = new Hashtable(); + private static Map implTypesTable = new Hashtable(); + public static final String scaNamespace = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + public static final String namespace = "http://test"; + + private static final QName secureWsPolicy = new QName(namespace, "SecureWSPolicy"); + private static final QName confidentiality = new QName(namespace, "confidentiality"); + private static final QName integrity = new QName(namespace, "integrity"); + private static final QName messageProtection = new QName(namespace, "messageProtection"); + private static final QName confidentiality_transport = new QName(namespace, "confidentiality.transport"); + private static final QName confidentiality_message = new QName(namespace, "confidentiality.message"); + private static final QName secureReliablePolicy = new QName(namespace, "SecureReliablePolicy"); + private static final QName secureMessagingPolicies = new QName(namespace, "SecureMessagingPolicies"); + private static final QName securityPolicy = new QName(namespace, "SecurityPolicy"); + private static final QName basicAuthMsgProtSecurity = new QName(namespace, "BasicAuthMsgProtSecurity"); + private static final QName wsBinding = new QName(scaNamespace, "binding.ws"); + private static final QName javaImpl = new QName(scaNamespace, "implementation.java"); + private static ProcessorContext context; + + @BeforeClass + public static void setUp() throws Exception { + DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + context = new ProcessorContext(extensionPoints); + + // Create StAX processors + StAXArtifactProcessorExtensionPoint staxProcessors = + extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessors.addArtifactProcessor(new TestPolicyProcessor()); + + URLArtifactProcessorExtensionPoint documentProcessors = + extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); + policyDefinitionsProcessor = documentProcessors.getProcessor(Definitions.class); + + URL url = ReadDocumentTestCase.class.getResource("test_definitions.xml"); + URI uri = URI.create("test_definitions.xml"); + definitions = policyDefinitionsProcessor.read(null, uri, url, context); + + for (Intent intent : definitions.getIntents()) { + intentTable.put(intent.getName(), intent); + for (Intent i : intent.getQualifiedIntents()) { + intentTable.put(i.getName(), i); + } + } + + for (PolicySet policySet : definitions.getPolicySets()) { + policySetTable.put(policySet.getName(), policySet); + } + + for (BindingType bindingType : definitions.getBindingTypes()) { + bindingTypesTable.put(bindingType.getType(), bindingType); + } + + for (ImplementationType implType : definitions.getImplementationTypes()) { + implTypesTable.put(implType.getType(), implType); + } + } + + @Test + public void testReadSCADefinitions() throws Exception { + assertNotNull(definitions); + + assertNotNull(intentTable.get(confidentiality)); + assertNotNull(intentTable.get(messageProtection)); + assertNotNull(intentTable.get(confidentiality_transport)); + assertTrue(intentTable.get(confidentiality).getDescription().length() > 0); + + assertNotNull(policySetTable.get(secureReliablePolicy)); + assertTrue(policySetTable.get(secureReliablePolicy).getProvidedIntents().size() == 2); + assertTrue(policySetTable.get(secureReliablePolicy).getPolicies().size() == 2); + + assertNotNull(policySetTable.get(secureMessagingPolicies)); + assertEquals(2, policySetTable.get(secureMessagingPolicies).getIntentMaps().get(0).getQualifiers().size()); + //assertTrue(policySetTable.get(secureWsPolicy).getPolicies().get(0) instanceof org.apache.neethi.Policy); + + assertEquals(bindingTypesTable.size(), 1); + assertNotNull(bindingTypesTable.get(wsBinding)); + assertEquals(implTypesTable.size(), 1); + assertNotNull(implTypesTable.get(javaImpl)); + } + + private boolean isRealizedBy(PolicySet policySet, Intent intent) { + if (intent.getName().getLocalPart().indexOf('.') == -1) { + return policySet.getProvidedIntents().contains(intent); + } + for (IntentMap map : policySet.getIntentMaps()) { + for (Qualifier q : map.getQualifiers()) { + if (q.getIntent().equals(intent)) { + return true; + } + } + } + return false; + } + + private int getNumberOfQualifiedPolicies(PolicySet policySet) { + int count = 0; + for(IntentMap intentMap: policySet.getIntentMaps()) { + for(Qualifier q: intentMap.getQualifiers()) { + count += q.getPolicies().size(); + } + } + return count; + } + + @Test + public void testResolveSCADefinitions() throws Exception { + Intent i1 = intentTable.get(messageProtection); + assertTrue(!i1.getRequiredIntents().isEmpty()); + assertNull(i1.getRequiredIntents().get(0).getDescription()); + + QName confidentiality_transport = new QName(namespace, "confidentiality.transport"); + Intent i2 = intentTable.get(confidentiality_transport); + assertNotNull(i2.getQualifiableIntent()); + + PolicySet secureReliablePolicySet = policySetTable.get(secureReliablePolicy); + PolicySet secureMessagingPolicySet = policySetTable.get(secureMessagingPolicies); + PolicySet securityPolicySet = policySetTable.get(securityPolicy); + + assertEquals(secureReliablePolicySet.getProvidedIntents().get(1).getName(), integrity); + assertNull(secureReliablePolicySet.getProvidedIntents().get(1).getDescription()); + assertTrue(secureMessagingPolicySet.isUnresolved()); + assertEquals(3, getNumberOfQualifiedPolicies(securityPolicySet)); + + //testing to ensure that inclusion of referred policy sets has not happened + PolicySet basicAuthMsgProtSecurityPolicySet = policySetTable.get(basicAuthMsgProtSecurity); + assertTrue(basicAuthMsgProtSecurityPolicySet.getPolicies().isEmpty()); + assertTrue(basicAuthMsgProtSecurityPolicySet.getIntentMaps().isEmpty()); + + BindingType wsBindingType = bindingTypesTable.get(wsBinding); + assertNull(wsBindingType.getAlwaysProvidedIntents().get(0).getDescription()); + assertNull(wsBindingType.getMayProvidedIntents().get(0).getDescription()); + + ImplementationType javaImplType = implTypesTable.get(javaImpl); + assertNull(javaImplType.getAlwaysProvidedIntents().get(0).getDescription()); + assertNull(javaImplType.getMayProvidedIntents().get(0).getDescription()); + + ModelResolver resolver = new DefaultModelResolver(); + policyDefinitionsProcessor.resolve(definitions, resolver, context); + //builder.build(scaDefinitions); + + //testing if policy intents have been linked have property been linked up + assertNotNull(i1.getRequiredIntents().get(0).getDescription()); + // assertNotNull(i2.getQualifiableIntent().getDescription()); + assertEquals(secureReliablePolicySet.getProvidedIntents().get(1).getName(), integrity); + assertNotNull(secureReliablePolicySet.getProvidedIntents().get(1).getDescription()); + + //testing if policysets have been properly linked up with intents + assertFalse(secureMessagingPolicySet.isUnresolved()); + assertTrue(isRealizedBy(secureMessagingPolicySet, intentTable.get(confidentiality))); + assertTrue(isRealizedBy(secureMessagingPolicySet, intentTable.get(confidentiality_transport))); + + //testing if intent maps have been properly mapped to policies + assertFalse(securityPolicySet.isUnresolved()); + assertTrue(isRealizedBy(securityPolicySet, intentTable.get(confidentiality))); + assertTrue(isRealizedBy(securityPolicySet, intentTable.get(confidentiality_message))); + + //testing for inclusion of referred policysets + assertFalse(basicAuthMsgProtSecurityPolicySet.getPolicies().isEmpty()); + assertFalse(basicAuthMsgProtSecurityPolicySet.getIntentMaps().get(0).getQualifiers().isEmpty()); + assertTrue(isRealizedBy(basicAuthMsgProtSecurityPolicySet, intentTable.get(confidentiality_transport))); + + assertNotNull(wsBindingType.getAlwaysProvidedIntents().get(0).getDescription()); + assertNotNull(wsBindingType.getMayProvidedIntents().get(0).getDescription()); + + assertNotNull(javaImplType.getAlwaysProvidedIntents().get(0).getDescription()); + assertNotNull(javaImplType.getMayProvidedIntents().get(0).getDescription()); + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/TestPolicyProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/TestPolicyProcessor.java new file mode 100644 index 0000000000..a148e33029 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/TestPolicyProcessor.java @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.definitions.xml; + +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.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; + +/** + * A PolicyProcessor used for testing. + * + * @version $Rev$ $Date$ + */ +public class TestPolicyProcessor implements StAXArtifactProcessor { + public QName getArtifactType() { + return new QName("http://schemas.xmlsoap.org/ws/2004/09/policy", "PolicyAttachment"); + } + + public MockPolicy read(XMLStreamReader arg0, ProcessorContext context) throws ContributionReadException, XMLStreamException { + return new MockPolicy(); + } + + public void write(MockPolicy arg0, XMLStreamWriter arg1, ProcessorContext context) throws ContributionWriteException, XMLStreamException { + } + + public Class getModelType() { + return MockPolicy.class; + } + + public void resolve(MockPolicy arg0, ModelResolver arg1, ProcessorContext context) throws ContributionResolveException { + + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunctionResolverTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunctionResolverTestCase.java new file mode 100644 index 0000000000..d2b0775361 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/PolicyXPathFunctionResolverTestCase.java @@ -0,0 +1,161 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +import static org.apache.tuscany.sca.policy.xml.PolicyXPathFunction.normalize; + +import java.util.Collections; +import java.util.Iterator; + +import javax.xml.namespace.NamespaceContext; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpression; +import javax.xml.xpath.XPathFactory; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; + +/** + * + */ +public class PolicyXPathFunctionResolverTestCase { + private static XPath xpath; + + /** + * @throws java.lang.Exception + */ + @BeforeClass + public static void setUpBeforeClass() throws Exception { + XPathFactory factory = XPathFactory.newInstance(); + xpath = factory.newXPath(); + xpath.setNamespaceContext(new NamespaceContextImpl()); + xpath.setXPathFunctionResolver(new PolicyXPathFunctionResolver(xpath.getNamespaceContext())); + } + + @Test + public void testIntentsRef() throws Exception { + InputSource xml = new InputSource(getClass().getResourceAsStream("Calculator.composite")); + String str = "//sca:composite/sca:component[IntentRefs('sca:confidentiality')]"; + str = normalize(str, "sca"); + // Test the rewrite of xpath so that the self:node() is passed into the SCA function + XPathExpression exp = xpath.compile(str); + Object result = exp.evaluate(xml, XPathConstants.NODESET); + Assert.assertTrue(result instanceof NodeList); + NodeList nodes = (NodeList)result; + Assert.assertEquals(1, nodes.getLength()); + } + + @Test + public void testIntentsRef2() throws Exception { + InputSource xml = new InputSource(getClass().getResourceAsStream("Calculator.composite")); + String str = " //sca:composite/sca:component[sca:IntentRefs('sca:confidentiality')]"; + str = normalize(str, "sca"); + // Test the rewrite of xpath so that the self:node() is passed into the SCA function + XPathExpression exp = xpath.compile(str); + Object result = exp.evaluate(xml, XPathConstants.NODESET); + Assert.assertTrue(result instanceof NodeList); + NodeList nodes = (NodeList)result; + Assert.assertEquals(1, nodes.getLength()); + } + + @Test + public void testIntentsRef3() throws Exception { + InputSource xml = new InputSource(getClass().getResourceAsStream("Calculator.composite")); + String str = " IntentRefs('sca:confidentiality') "; + str = normalize(str, "sca"); + // Test the rewrite of xpath so that the self:node() is passed into the SCA function + XPathExpression exp = xpath.compile(str); + Object result = exp.evaluate(xml, XPathConstants.NODESET); + Assert.assertTrue(result instanceof NodeList); + NodeList nodes = (NodeList)result; + Assert.assertEquals(1, nodes.getLength()); + } + @Test + public void testURIRef() throws Exception { + InputSource xml = new InputSource(getClass().getResourceAsStream("Calculator.composite")); + XPathExpression exp = xpath.compile(normalize("sca:composite/sca:component[sca:URIRef('AddServiceComponent')]","sca")); + Object result = exp.evaluate(xml, XPathConstants.NODESET); + Assert.assertTrue(result instanceof NodeList); + NodeList nodes = (NodeList)result; + // Assert.assertEquals(1, nodes.getLength()); + } + + @Test + public void testInterfaceRef() throws Exception { + InputSource xml = new InputSource(getClass().getResourceAsStream("Calculator.composite")); + XPathExpression exp = xpath.compile(normalize("//sca:composite/sca:component/sca:service[sca:InterfaceRef('AddService')]","sca")); + Object result = exp.evaluate(xml, XPathConstants.NODESET); + Assert.assertTrue(result instanceof NodeList); + NodeList nodes = (NodeList)result; + // Assert.assertEquals(1, nodes.getLength()); + } + + @Test + public void testOperationRef() throws Exception { + InputSource xml = new InputSource(getClass().getResourceAsStream("Calculator.composite")); + XPathExpression exp = xpath.compile(normalize("//sca:composite/sca:component/sca:reference[sca:OperationRef('AddService/add')]","sca")); + Object result = exp.evaluate(xml, XPathConstants.NODESET); + Assert.assertTrue(result instanceof NodeList); + NodeList nodes = (NodeList)result; + // Assert.assertEquals(1, nodes.getLength()); + } + + + /** + * @throws java.lang.Exception + */ + @AfterClass + public static void tearDownAfterClass() throws Exception { + } + + private static class NamespaceContextImpl implements NamespaceContext { + + private static final String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + + public String getNamespaceURI(String prefix) { + if ("sca".equals(prefix)) { + return SCA11_NS; + } else { + return null; + } + } + + public String getPrefix(String namespaceURI) { + if (SCA11_NS.equals(namespaceURI)) { + return "sca"; + } + return null; + } + + public Iterator getPrefixes(String namespaceURI) { + if (SCA11_NS.equals(namespaceURI)) { + return Collections.singleton("sca").iterator(); + } + return null; + } + + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/ReadDocumentTestCase.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/ReadDocumentTestCase.java new file mode 100644 index 0000000000..231bdfd516 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/ReadDocumentTestCase.java @@ -0,0 +1,286 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.xml; + +import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.io.InputStream; +import java.net.URL; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; + +import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; +import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.policy.BindingType; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.ImplementationType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.IntentMap; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.Qualifier; +import org.junit.Before; +import org.junit.Test; + +/** + * Test reading SCA XML assembly documents. + * + * @version $Rev$ $Date$ + */ +public class ReadDocumentTestCase { + + private ModelResolver resolver; + private StAXArtifactProcessor staxProcessor; + private ProcessorContext context; + + private static final QName elementToProcess = + new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912", "implementationType"); + + private Map intentTable = new Hashtable(); + private Map policySetTable = new Hashtable(); + private Map bindingTypesTable = new Hashtable(); + private Map implTypesTable = new Hashtable(); + private static final String scaNamespace = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + private static final String namespace = "http://test"; + + private static final QName confidentiality = new QName(namespace, "confidentiality"); + private static final QName integrity = new QName(namespace, "integrity"); + private static final QName messageProtection = new QName(namespace, "messageProtection"); + private static final QName confidentiality_transport = new QName(namespace, "confidentiality.transport"); + private static final QName confidentiality_message = new QName(namespace, "confidentiality.message"); + private static final QName secureReliablePolicy = new QName(namespace, "SecureReliablePolicy"); + private static final QName secureMessagingPolicies = new QName(namespace, "SecureMessagingPolicies"); + private static final QName securityPolicy = new QName(namespace, "SecurityPolicy"); + private static final QName basicAuthMsgProtSecurity = new QName(namespace, "BasicAuthMsgProtSecurity"); + private static final QName wsBinding = new QName(scaNamespace, "binding.ws"); + private static final QName javaImpl = new QName(scaNamespace, "implementation.java"); + + @Before + public void setUp() throws Exception { + DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + resolver = new DefaultModelResolver(); + context = new ProcessorContext(extensionPoints); + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + + StAXArtifactProcessorExtensionPoint staxProcessors = + extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null); + staxProcessors.addArtifactProcessor(new TestPolicyProcessor()); + + URL url = getClass().getResource("test_definitions.xml"); + InputStream urlStream = url.openStream(); + XMLStreamReader reader = inputFactory.createXMLStreamReader(urlStream); + reader.next(); + + //position on the right element qname to get processed + while (reader.hasNext()) { + reader.next(); + int event = reader.getEventType(); + if (event == START_ELEMENT && reader.getName().equals(elementToProcess)) { + break; + } + } + while (true) { + int event = reader.getEventType(); + switch (event) { + case START_ELEMENT: { + Object artifact = staxProcessor.read(reader, context); + if (artifact instanceof PolicySet) { + PolicySet policySet = (PolicySet)artifact; + policySet.setName(new QName(namespace, policySet.getName().getLocalPart())); + policySetTable.put(policySet.getName(), policySet); + } else if (artifact instanceof Intent) { + Intent intent = (Intent)artifact; + intent.setName(new QName(namespace, intent.getName().getLocalPart())); + intentTable.put(intent.getName(), intent); + for (Intent i : intent.getQualifiedIntents()) { + i.setName(new QName(namespace, i.getName().getLocalPart())); + intentTable.put(i.getName(), i); + resolver.addModel(i, context); + } + } else if (artifact instanceof BindingType) { + BindingType bindingType = (BindingType)artifact; + bindingTypesTable.put(bindingType.getType(), bindingType); + } else if (artifact instanceof ImplementationType) { + ImplementationType implType = (ImplementationType)artifact; + implTypesTable.put(implType.getType(), implType); + } + + if (artifact != null) { + resolver.addModel(artifact, context); + } + + break; + } + } + if (reader.hasNext()) { + reader.next(); + } else { + break; + } + } + urlStream.close(); + } + + @Test + public void testReadSCADefinitions() throws Exception { + assertNotNull(intentTable.get(confidentiality)); + assertNotNull(intentTable.get(messageProtection)); + assertNotNull(intentTable.get(confidentiality_transport)); + assertTrue(intentTable.get(confidentiality).getDescription().length() > 0); + + assertNotNull(policySetTable.get(secureReliablePolicy)); + assertTrue(policySetTable.get(secureReliablePolicy).getProvidedIntents().size() == 2); + assertTrue(policySetTable.get(secureReliablePolicy).getPolicies().size() == 2); + + assertNotNull(policySetTable.get(secureMessagingPolicies)); + assertEquals(2, policySetTable.get(secureMessagingPolicies).getIntentMaps().get(0).getQualifiers().get(0).getPolicies().size()); + + assertEquals(bindingTypesTable.size(), 1); + assertNotNull(bindingTypesTable.get(wsBinding)); + assertEquals(implTypesTable.size(), 1); + assertNotNull(implTypesTable.get(javaImpl)); + } + + private int getNumberOfQualifiedPolicies(PolicySet policySet) { + int count = 0; + for(IntentMap intentMap: policySet.getIntentMaps()) { + for(Qualifier q: intentMap.getQualifiers()) { + count += q.getPolicies().size(); + } + } + return count; + } + + @Test + public void testResolution() throws Exception { + assertTrue(!intentTable.get(messageProtection).getRequiredIntents().isEmpty()); + Intent profileIntent = intentTable.get(new QName(namespace, "messageProtection")); + assertNull(profileIntent.getRequiredIntents().get(0).getDescription()); + + QName confidentiality_transport = new QName(namespace, "confidentiality.transport"); + assertTrue(intentTable.get(confidentiality_transport) instanceof Intent); + Intent qualifiedIntent = (Intent)intentTable.get(new QName(namespace, "confidentiality.transport")); + assertNull(qualifiedIntent.getDescription()); + assertNotNull(qualifiedIntent.getQualifiableIntent().getDescription()); + + PolicySet secureReliablePolicySet = policySetTable.get(secureReliablePolicy); + PolicySet secureMessagingPolicySet = policySetTable.get(secureMessagingPolicies); + PolicySet securityPolicySet = policySetTable.get(securityPolicy); + + assertEquals(secureReliablePolicySet.getProvidedIntents().get(1).getName(), integrity); + assertNull(secureReliablePolicySet.getProvidedIntents().get(1).getDescription()); + assertTrue(secureMessagingPolicySet.isUnresolved()); + assertEquals(2, getNumberOfQualifiedPolicies(securityPolicySet)); + + //testing to ensure that inclusion of referred policy sets has not happened + PolicySet basicAuthMsgProtSecurityPolicySet = policySetTable.get(basicAuthMsgProtSecurity); + assertTrue(basicAuthMsgProtSecurityPolicySet.getPolicies().isEmpty()); + assertTrue(basicAuthMsgProtSecurityPolicySet.getIntentMaps().isEmpty()); + + ExtensionType wsBindingType = bindingTypesTable.get(wsBinding); + assertNull(wsBindingType.getAlwaysProvidedIntents().get(0).getDescription()); + assertNull(wsBindingType.getMayProvidedIntents().get(0).getDescription()); + + ExtensionType javaImplType = implTypesTable.get(javaImpl); + assertNull(javaImplType.getAlwaysProvidedIntents().get(0).getDescription()); + assertNull(javaImplType.getMayProvidedIntents().get(0).getDescription()); + + List intents = new ArrayList(intentTable.values()); + + for (Intent intent : intents) { + staxProcessor.resolve(intent, resolver, context); + } + + for (PolicySet policySet : policySetTable.values()) { + if (policySet.getReferencedPolicySets().isEmpty()) + staxProcessor.resolve(policySet, resolver, context); + } + + for (PolicySet policySet : policySetTable.values()) { + if (!policySet.getReferencedPolicySets().isEmpty()) + staxProcessor.resolve(policySet, resolver, context); + } + + for (ExtensionType bindingType : bindingTypesTable.values()) { + staxProcessor.resolve(bindingType, resolver, context); + } + + for (ExtensionType implType : implTypesTable.values()) { + staxProcessor.resolve(implType, resolver, context); + } + + //testing if policy intents have been linked have property been linked up + assertNotNull(profileIntent.getRequiredIntents().get(0).getDescription()); + assertNotNull(qualifiedIntent.getQualifiableIntent().getDescription()); + assertEquals(secureReliablePolicySet.getProvidedIntents().get(1).getName(), integrity); + assertNotNull(secureReliablePolicySet.getProvidedIntents().get(1).getDescription()); + + //testing if policysets have been properly linked up with intents + assertFalse(secureMessagingPolicySet.isUnresolved()); + assertTrue(isRealizedBy(secureMessagingPolicySet, intentTable.get(confidentiality))); + assertTrue(isRealizedBy(secureMessagingPolicySet, intentTable.get(confidentiality_transport))); + + //testing if intent maps have been properly mapped to policies + assertFalse(securityPolicySet.isUnresolved()); + assertTrue(isRealizedBy(securityPolicySet, intentTable.get(confidentiality))); + assertTrue(isRealizedBy(securityPolicySet, intentTable.get(confidentiality_message))); + + //testing for inclusion of referred policysets + assertFalse(basicAuthMsgProtSecurityPolicySet.getPolicies().isEmpty()); + assertFalse(basicAuthMsgProtSecurityPolicySet.getIntentMaps().isEmpty()); + assertTrue(isRealizedBy(basicAuthMsgProtSecurityPolicySet, intentTable.get(confidentiality_transport))); + + assertNotNull(wsBindingType.getAlwaysProvidedIntents().get(0).getDescription()); + assertNotNull(wsBindingType.getMayProvidedIntents().get(0).getDescription()); + + assertNotNull(javaImplType.getAlwaysProvidedIntents().get(0).getDescription()); + assertNotNull(javaImplType.getMayProvidedIntents().get(0).getDescription()); + } + + private boolean isRealizedBy(PolicySet policySet, Intent intent) { + if (intent.getName().getLocalPart().indexOf('.') == -1) { + return policySet.getProvidedIntents().contains(intent); + } + for (IntentMap map : policySet.getIntentMaps()) { + for (Qualifier q : map.getQualifiers()) { + if (q.getIntent().equals(intent)) { + return true; + } + } + } + return false; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/TestPolicyProcessor.java b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/TestPolicyProcessor.java new file mode 100644 index 0000000000..aea2c3adb8 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/policy/xml/TestPolicyProcessor.java @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.policy.xml; + +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.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.policy.PolicyExpression; + +/** + * + * @version $Rev$ $Date$ + */ +public class TestPolicyProcessor implements StAXArtifactProcessor { + + public QName getArtifactType() { + return new QName("http://schemas.xmlsoap.org/ws/2004/09/policy", "PolicyAttachment"); + } + + public PolicyExpression read(XMLStreamReader arg0, ProcessorContext context) throws ContributionReadException, XMLStreamException { + return new MockPolicyImplOne(); + } + + public void write(PolicyExpression arg0, XMLStreamWriter arg1, ProcessorContext context) throws ContributionWriteException, XMLStreamException { + } + + public Class getModelType() { + // TODO Auto-generated method stub + return PolicyExpression.class; + } + + public void resolve(PolicyExpression arg0, ModelResolver arg1, ProcessorContext context) throws ContributionResolveException { + + } + + public class MockPolicyImplOne implements PolicyExpression { + public T getPolicy() { + return null; + } + + public void setName(QName name) { + } + + public void setPolicy(T policy) { + } + + public QName getName() { + return new QName("http://schemas.xmlsoap.org/ws/2004/09/policy", "PolicyAttachment"); + } + + public boolean isUnresolved() { + return false; + } + + public void setUnresolved(boolean unresolved) { + } + + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/Calculator.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/Calculator.composite new file mode 100644 index 0000000000..be0c1eb737 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/Calculator.composite @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorImpl.componentType b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorImpl.componentType new file mode 100644 index 0000000000..83fa64cef4 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorImpl.componentType @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorURISpaces.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorURISpaces.composite new file mode 100644 index 0000000000..287810b156 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorURISpaces.composite @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/Multiplicity.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/Multiplicity.composite new file mode 100644 index 0000000000..0d344ac937 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/Multiplicity.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/NestedCalculator.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/NestedCalculator.composite new file mode 100644 index 0000000000..5606e653bb --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/NestedCalculator.composite @@ -0,0 +1,29 @@ + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite new file mode 100644 index 0000000000..9140403fc4 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllCalculator.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllCalculator.composite new file mode 100644 index 0000000000..195dfcf106 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllCalculator.composite @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AValue + InterestingURI + + + BValue + BoringURI + + + + + 123 + + + 123 + 123 + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllDivide.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllDivide.composite new file mode 100644 index 0000000000..42e6c1c3ec --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllDivide.composite @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllPolicyCalculator.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllPolicyCalculator.composite new file mode 100644 index 0000000000..424cec3e8a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/TestAllPolicyCalculator.composite @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AValue + InterestingURI + + + BValue + BoringURI + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/another_test_definitions.xml b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/another_test_definitions.xml new file mode 100644 index 0000000000..489d6abed1 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/another_test_definitions.xml @@ -0,0 +1,96 @@ + + + + + + + + Sample Intent + + + + + + + Sample Intent + + + + + + + Sample Intent + + + + + + Sample Intent + + + + + + Sample Intent + + + + + + Sample Intent + + + + + + Sample Intent + + + + + + Sample Intent + + + + + + Sample Intent + + + + + + Sample Intent + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/local.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/local.composite new file mode 100644 index 0000000000..279f7d534e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/local.composite @@ -0,0 +1,27 @@ + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/test_definitions.xml b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/test_definitions.xml new file mode 100644 index 0000000000..2cfbd6bcff --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/test_definitions.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + Test Intent + + + + + + Protect messages from unauthorized reading or modification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + + + + ... + + + + + + + + + + + sp:X509v3 + + + + + + + + + + + + + + + + + + Protect messages from unauthorized reading or modification + + + + + + Protect messages from unauthorized reading or modification + + + + + + + Communitcation thro this binding must prevent + unauthorized users from reading the messages. + + + + + + + + Communitcation thro this binding must prevent + unauthorized modification of the messages. + + + + + + Communitcation thro this binding required + Authentication. + + + + + + All messages to and from this implementation must be logged + + + + + + Need to figure out some description for this + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/definitions/xml/test_definitions.xml b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/definitions/xml/test_definitions.xml new file mode 100644 index 0000000000..dc7f5c422c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/definitions/xml/test_definitions.xml @@ -0,0 +1,207 @@ + + + + + + + + + + + + Test Intent + + + + + + Protect messages from unauthorized reading or modification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + + + + ... + + + + + + + + + + + sp:X509v3 + + + + + + + + + + + + + + + + + + Protect messages from unauthorized reading or modification + + + + + + Protect messages from unauthorized reading or modification + + + + + + + Communitcation thro this binding must prevent + unauthorized users from reading the messages. + + + + + + + + Communitcation thro this binding must prevent + unauthorized modification of the messages. + + + + + + Communitcation thro this binding required + Authentication. + + + + + + All messages to and from this implementation must be logged + + + + + + Need to figure out some description for this + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/Calculator.composite b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/Calculator.composite new file mode 100644 index 0000000000..0e7aad877e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/Calculator.composite @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml new file mode 100644 index 0000000000..a262b00345 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml @@ -0,0 +1,204 @@ + + + + + + + + + + + + Test Intent + + + + + + Protect messages from unauthorized reading or modification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + + + + ... + + + + + + + + + + + sp:X509v3 + + + + + + + + + + + + + + + + + + Protect messages from unauthorized reading or modification + + + + + + Protect messages from unauthorized reading or modification + + + + + + + Communitcation thro this binding must prevent + unauthorized users from reading the messages. + + + + + + + + Communitcation thro this binding must prevent + unauthorized modification of the messages. + + + + + + Communitcation thro this binding required + Authentication. + + + + + + All messages to and from this implementation must be logged + + + + + + Need to figure out some description for this + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/LICENSE b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/LICENSE new file mode 100644 index 0000000000..0bea130c88 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/LICENSE @@ -0,0 +1,338 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +=============================================================================== + +Apache Tuscany SCA for Java Subcomponents +=========================================: + +The Tuscany SCA for Java release includes a number of subcomponents with +separate copyright notices and license terms. Your use of the source +code for the these subcomponents is subject to the terms and +conditions of the following licenses. + +=============================================================================== + +This module includes XSD files under the following OASIS license: + +Copyright (C) OASIS(R) 2005, 2009. All Rights Reserved. +All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual +Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website. +This document and translations of it may be copied and furnished to others, and derivative works that +comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, +and distributed, in whole or in part, without restriction of any kind, provided that the above copyright +notice and this section are included on all such copies and derivative works. However, this document +itself may not be modified in any way, including by removing the copyright notice or references to OASIS, +except as needed for the purpose of developing any document or deliverable produced by an OASIS +Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR +Policy, must be followed) or as required to translate it into languages other than English. +The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors +or assigns. +This document and the information contained herein is provided on an "AS IS" basis and OASIS +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY +WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. +OASIS requests that any OASIS Party or any other party that believes it has patent claims that would +necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, +to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to +such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that +produced this specification. +OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of +any patent claims that would necessarily be infringed by implementations of this specification by a patent +holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR +Mode of the OASIS Technical Committee that produced this specification. OASIS may include such +claims on its website, but disclaims any obligation to do so. +OASIS takes no position regarding the validity or scope of any intellectual property or other rights that +might be claimed to pertain to the implementation or use of the technology described in this document or +the extent to which any license under such rights might or might not be available; neither does it represent +that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to +rights in any document or deliverable produced by an OASIS Technical Committee can be found on the +OASIS website. Copies of claims of rights made available for publication and any assurances of licenses +to be made available, or the result of an attempt made to obtain a general license or permission for the use +of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS +Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any +information or list of intellectual property rights will at any time be complete, or that any claims in such list +are, in fact, Essential Claims. +The names "OASIS", are trademarks of OASIS, the owner and developer of this specification, and should +be used only to refer to the organization and its official outputs. OASIS welcomes reference to, and +implementation and use of, specifications, while reserving the right to enforce its marks against misleading +uses. Please see http://www.oasis-open.org/who/trademark.php for above guidance. + +=============================================================================== + +This module includes XSD files under the following W3C(r) Software License: + +W3C(r) SOFTWARE NOTICE AND LICENSE +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This work (and included software, documentation such as READMEs, or other related items) +is being provided by the copyright holders under the following license. By obtaining, +using and/or copying this work, you (the licensee) agree that you have read, understood, +and will comply with the following terms and conditions. + +Permission to copy, modify, and distribute this software and its documentation, with or +without modification, for any purpose and without fee or royalty is hereby granted, provided +that you include the following on ALL copies of the software and documentation or portions +thereof, including modifications: + + 1. The full text of this NOTICE in a location viewable to users of the redistributed or + derivative work. + 2. Any pre-existing intellectual property disclaimers, notices, or terms and conditions. + If none exist, the W3C Software Short Notice should be included (hypertext is preferred, + text is permitted) within the body of any redistributed or derivative code. + 3. Notice of any changes or modifications to the files, including the date changes were + made. (We recommend you provide URIs to the location from which the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO +REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES +OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR +DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER +RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL +DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. + +The name and trademarks of copyright holders may NOT be used in advertising or publicity +pertaining to the software without specific, written prior permission. Title to copyright +in this software and any associated documentation will at all times remain with copyright +holders. + +=============================================================================== + +This module includes XSD files under the following license: + +http://www.w3.org/Consortium/Legal/copyright-software-19980720 + +W3C® SOFTWARE NOTICE AND LICENSE +Copyright (c) 1994-2002 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche +en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/ + +This W3C work (including software, documents, or other related items) is being provided by the copyright holders under +the following license. By obtaining, using and/or copying this work, you (the licensee) agree that you have read, understood, +and will comply with the following terms and conditions: + +Permission to use, copy, modify, and distribute this software and its documentation, with or without modification, +for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies +of the software and documentation or portions thereof, including modifications, that you make: + + 1. The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. + 2. Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, a short +notice of the following form (hypertext is preferred, text is permitted) should be used within the body of any redistributed +or derivative code: "Copyright (c) [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of Technology, +Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/" + 3. Notice of any changes or modifications to the W3C files, including the date changes were made. (We recommend you provide URIs +to the location from which the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE +OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE +OF THE SOFTWARE OR DOCUMENTATION. + +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software +without specific, written prior permission. Title to copyright in this software and any associated documentation will +at all times remain with copyright holders. diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/META-INF/MANIFEST.MF b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..ff93db6b14 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-Vendor: The Apache Software Foundation +Bundle-Version: 2.0.0 +SCA-Version: 1.1 +Bundle-Name: Apache Tuscany SCA Assembly Model XML Schemas +Bundle-ManifestVersion: 2 +Bundle-Description: Apache Tuscany SCA Assembly Model XML Schemas +Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt +Bundle-DocURL: http://www.apache.org/ +Bundle-SymbolicName: org.apache.tuscany.sca.assembly.xsd +Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 +Export-Package: org.apache.tuscany.sca.assembly.xsd;version="2.0.0" +Import-Package: javax.xml.namespace diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/NOTICE b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/NOTICE new file mode 100644 index 0000000000..c5118ba0fd --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/NOTICE @@ -0,0 +1,38 @@ +${pom.name} +Copyright (c) 2005 - 2010 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + +This product also includes software under the OASIS license +(see the LICENSE file contained in this distribution), with the following +copyright: + +Copyright (C) OASIS(R) 2005, 2009. All Rights Reserved. +OASIS trademark, IPR and other policies apply. + +This product also includes software under the W3C(r) Software License +(see the LICENSE file contained in this distribution), with the following +copyright: + +Copyright (c) 2004 World Wide Web Consortium (Massachusetts Institute of Technology, +European Research Consortium for Informatics and Mathematics, Keio University). +All Rights Reserved. This work is distributed under the W3C(r) Software License [1] +in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This product also includes software under the W3C(c) Software License +with the following copyright: + +Copyright 2001 The Internet Society and W3C (Massachusetts Institute +of Technology, Institut National de Recherche en Informatique et en +Automatique, Keio University). All Rights Reserved. +http://www.w3.org/Consortium/Legal/ + +This document is governed by the W3C Software License [1] as described +in the FAQ [2]. + +[1] http://www.w3.org/Consortium/Legal/copyright-software-19980720 +[2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/pom.xml b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/pom.xml new file mode 100644 index 0000000000..8193461b62 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/pom.xml @@ -0,0 +1,31 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-modules + 2.0-SNAPSHOT + ../pom.xml + + tuscany-assembly-xsd + Apache Tuscany SCA Assembly Model XSD Files + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/java/org/apache/tuscany/sca/assembly/xsd/Constants.java b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/java/org/apache/tuscany/sca/assembly/xsd/Constants.java new file mode 100644 index 0000000000..d782b20a4f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/java/org/apache/tuscany/sca/assembly/xsd/Constants.java @@ -0,0 +1,140 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.xsd; + +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import javax.xml.namespace.QName; + +/** + * Constants used in SCA assembly XML files. + * + * @version $Rev$ $Date$ + */ +public interface Constants { + String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + String SCA11_TUSCANY_NS = "http://tuscany.apache.org/xmlns/sca/1.1"; + + String COMPONENT_TYPE = "componentType"; + QName COMPONENT_TYPE_QNAME = new QName(SCA11_NS, COMPONENT_TYPE); + + String SERVICE = "service"; + QName SERVICE_QNAME = new QName(SCA11_NS, SERVICE); + + String REFERENCE = "reference"; + QName REFERENCE_QNAME = new QName(SCA11_NS, REFERENCE); + + String PROPERTY = "property"; + QName PROPERTY_QNAME = new QName(SCA11_NS, PROPERTY); + + String COMPOSITE = "composite"; + QName COMPOSITE_QNAME = new QName(SCA11_NS, COMPOSITE); + + String INCLUDE = "include"; + QName INCLUDE_QNAME = new QName(SCA11_NS, INCLUDE); + + String COMPONENT = "component"; + QName COMPONENT_QNAME = new QName(SCA11_NS, COMPONENT); + + String WIRE = "wire"; + QName WIRE_QNAME = new QName(SCA11_NS, WIRE); + + String OPERATION = "operation"; + QName OPERATION_QNAME = new QName(SCA11_NS, OPERATION); + + String CALLBACK = "callback"; + QName CALLBACK_QNAME = new QName(SCA11_NS, CALLBACK); + + String IMPLEMENTATION_COMPOSITE = "implementation.composite"; + QName IMPLEMENTATION_COMPOSITE_QNAME = new QName(SCA11_NS, IMPLEMENTATION_COMPOSITE); + + String IMPLEMENTATION = "implementation"; + QName IMPLEMENTATION_QNAME = new QName(SCA11_NS, IMPLEMENTATION); + + String BINDING_SCA = "binding.sca"; + QName BINDING_SCA_QNAME = new QName(Constants.SCA11_NS, BINDING_SCA); + + String NAME = "name"; + String VALUE = "value"; + QName VALUE_QNAME = new QName(SCA11_NS, VALUE); + String TARGET_NAMESPACE = "targetNamespace"; + String LOCAL = "local"; + String AUTOWIRE = "autowire"; + String NONOVERRIDABLE = "nonOverridable"; + String REPLACE = "replace"; + String REQUIRES = "requires"; + String POLICY_SETS = "policySets"; + String APPLICABLE_POLICY_SETS = "applicablePolicySets"; + String PROMOTE = "promote"; + String TARGET = "target"; + String WIRED_BY_IMPL = "wiredByImpl"; + String MULTIPLICITY = "multiplicity"; + String TYPE = "type"; + String ELEMENT = "element"; + String MANY = "many"; + String MUST_SUPPLY = "mustSupply"; + String SOURCE = "source"; + String FILE = "file"; + String URI = "uri"; + String ZERO_ONE = "0..1"; + String ZERO_N = "0..n"; + String ONE_ONE = "1..1"; + String ONE_N = "1..n"; + + /** + * Cache for public XSDs and DTDs + */ + Map CACHED_XSDS = XSDCache.cache(); + + static class XSDCache { + static Map cache() { + Map cachedXSDs = new HashMap(); + cachedXSDs.put(Constants.SCA11_NS, Constants.class.getResource("/sca-1.1-cd05.xsd")); + cachedXSDs + .put("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", + Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-secext-1.0.xsd")); + cachedXSDs + .put("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd", + Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-utility-1.0.xsd")); + cachedXSDs.put("http://www.w3.org/2005/08/addressing", Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/ws-addr.xsd")); + cachedXSDs.put("http://www.w3.org/ns/ws-policy", Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/ws-policy.xsd")); + cachedXSDs.put("http://www.w3.org/ns/wsdl-instance", Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/wsdli.xsd")); + cachedXSDs.put("http://www.w3.org/XML/1998/namespace", Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/xml.xsd")); + cachedXSDs.put("http://www.w3.org/2000/09/xmldsig#", Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/xmldsig-core-schema.xsd")); + + cachedXSDs.put("-//W3C//DTD XMLSchema 200102//EN", Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/XMLSchema.dtd")); + cachedXSDs.put("-//W3C//DTD XMLSCHEMA 200102//EN", Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/XMLSchema.dtd")); + cachedXSDs.put("datatypes", Constants.class + .getResource("/org/apache/tuscany/sca/assembly/xsd/datatypes.dtd")); + return cachedXSDs; + } + }; +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema new file mode 100644 index 0000000000..ad8ef70c3c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +tuscany-sca-1.1.xsd +sca-1.1-cd05.xsd diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/XMLSchema.dtd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/XMLSchema.dtd new file mode 100644 index 0000000000..e8e8f7625a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/XMLSchema.dtd @@ -0,0 +1,402 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%xs-datatypes; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/datatypes.dtd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/datatypes.dtd new file mode 100644 index 0000000000..685e89a57e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/datatypes.dtd @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-secext-1.0.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-secext-1.0.xsd new file mode 100644 index 0000000000..641798b17f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-secext-1.0.xsd @@ -0,0 +1,195 @@ + + + + + + + + + This type represents an element with arbitrary attributes. + + + + + + + + + + + This type is used for password elements per Section 4.1. + + + + + + + + + + This type is used for elements containing stringified binary data. + + + + + + + + + + This type represents a username token per Section 4.1 + + + + + + + + + + + A security token that is encoded in binary + + + + + + + + + + A security token key identifier + + + + + + + + + + Typedef to allow a list of usages (as URIs). + + + + + + This global attribute is used to indicate the usage of a referenced or indicated token within the containing context + + + + + This type represents a reference to an external security token. + + + + + + + + This type represents a reference to an embedded security token. + + + + + + + + + + This type is used reference a security token. + + + + + + + + + + + This complexType defines header block to use for security-relevant data directed at a specific SOAP actor. + + + + + The use of "any" is to allow extensibility and different forms of security data. + + + + + + + + This complexType defines a container for elements to be specified from any namespace as properties/parameters of a DSIG transformation. + + + + + The use of "any" is to allow extensibility from any namespace. + + + + + + + + This element defines the wsse:UsernameToken element per Section 4.1. + + + + + This element defines the wsse:BinarySecurityToken element per Section 4.2. + + + + + This element defines a security token reference + + + + + This element defines a security token embedded reference + + + + + This element defines a key identifier reference + + + + + This element defines the wsse:SecurityTokenReference per Section 4.3. + + + + + This element defines the wsse:Security SOAP header element per Section 4. + + + + + This element contains properties for transformations from any namespace, including DSIG. + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-utility-1.0.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-utility-1.0.xsd new file mode 100644 index 0000000000..f8d74e9c6e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/oasis-200401-wss-wssecurity-utility-1.0.xsd @@ -0,0 +1,108 @@ + + + + + + + +This type defines the fault code value for Timestamp message expiration. + + + + + + + + + + +This global attribute supports annotating arbitrary elements with an ID. + + + + + + +Convenience attribute group used to simplify this schema. + + + + + + + + + +This type is for elements whose [children] is a psuedo-dateTime and can have arbitrary attributes. + + + + + + + + + + + +This type is for elements whose [children] is an anyURI and can have arbitrary attributes. + + + + + + + + + + + + +This complex type ties together the timestamp related elements into a composite type. + + + + + + + + + + + + + + +This element allows Timestamps to be applied anywhere element wildcards are present, +including as a SOAP header. + + + + + + + +This element allows an expiration time to be applied anywhere element wildcards are present. + + + + + + +This element allows a creation time to be applied anywhere element wildcards are present. + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/ws-addr.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/ws-addr.xsd new file mode 100644 index 0000000000..f6fc9c53b0 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/ws-addr.xsd @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/ws-policy.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/ws-policy.xsd new file mode 100644 index 0000000000..c43e5814ed --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/ws-policy.xsd @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/wsdli.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/wsdli.xsd new file mode 100644 index 0000000000..7fb8c1beed --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/wsdli.xsd @@ -0,0 +1,35 @@ + + + + + + + + + This attribute can be used to provide some hints on where + additional WSDL information for a given namespace can be + found in order to help with QName resolution + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/xml.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/xml.xsd new file mode 100644 index 0000000000..ac4b0ec8e6 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/xml.xsd @@ -0,0 +1,117 @@ + + + + + + + See http://www.w3.org/XML/1998/namespace.html and + http://www.w3.org/TR/REC-xml for information about this namespace. + + This schema document describes the XML namespace, in a form + suitable for import by other schema documents. + + Note that local names in this namespace are intended to be defined + only by the World Wide Web Consortium or its subgroups. The + following names are currently defined in this namespace and should + not be used with conflicting semantics by any Working Group, + specification, or document instance: + + base (as an attribute name): denotes an attribute whose value + provides a URI to be used as the base for interpreting any + relative URIs in the scope of the element on which it + appears; its value is inherited. This name is reserved + by virtue of its definition in the XML Base specification. + + lang (as an attribute name): denotes an attribute whose value + is a language code for the natural language of the content of + any element; its value is inherited. This name is reserved + by virtue of its definition in the XML specification. + + space (as an attribute name): denotes an attribute whose + value is a keyword indicating what whitespace processing + discipline is intended for the content of the element; its + value is inherited. This name is reserved by virtue of its + definition in the XML specification. + + Father (in any context at all): denotes Jon Bosak, the chair of + the original XML Working Group. This name is reserved by + the following decision of the W3C XML Plenary and + XML Coordination groups: + + In appreciation for his vision, leadership and dedication + the W3C XML Plenary on this 10th day of February, 2000 + reserves for Jon Bosak in perpetuity the XML name + xml:Father + + + + + This schema defines attributes and an attribute group + suitable for use by + schemas wishing to allow xml:base, xml:lang or xml:space attributes + on elements they define. + + To enable this, such a schema must import this schema + for the XML namespace, e.g. as follows: + <schema . . .> + . . . + <import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/03/xml.xsd"/> + + Subsequently, qualified reference to any of the attributes + or the group defined below will have the desired effect, e.g. + + <type . . .> + . . . + <attributeGroup ref="xml:specialAttrs"/> + + will define a type which will schema-validate an instance + element with any of those attributes + + + + In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + http://www.w3.org/2001/03/xml.xsd. + At the date of issue it can also be found at + http://www.w3.org/2001/xml.xsd. + The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XML Schema + itself. In other words, if the XML Schema namespace changes, the version + of this document at + http://www.w3.org/2001/xml.xsd will change + accordingly; the version at + http://www.w3.org/2001/03/xml.xsd will not change. + + + + + + In due course, we should install the relevant ISO 2- and 3-letter + codes as the enumerated possible values . . . + + + + + + + + + + + + + + + See http://www.w3.org/TR/xmlbase/ for + information about this attribute. + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/xmldsig-core-schema.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/xmldsig-core-schema.xsd new file mode 100644 index 0000000000..c4e9808cfd --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/org/apache/tuscany/sca/assembly/xsd/xmldsig-core-schema.xsd @@ -0,0 +1,318 @@ + + + + + + ]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-1.1-cd05.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-1.1-cd05.xsd new file mode 100644 index 0000000000..5f3c796810 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-1.1-cd05.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ejb-1.1-cd01.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ejb-1.1-cd01.xsd new file mode 100644 index 0000000000..4bccf9d5f8 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ejb-1.1-cd01.xsd @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-jca-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-jca-1.1-cd04.xsd new file mode 100644 index 0000000000..824ba95b47 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-jca-1.1-cd04.xsd @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-jms-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-jms-1.1-cd04.xsd new file mode 100644 index 0000000000..50e6aa6201 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-jms-1.1-cd04.xsd @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-sca-1.1-cd05.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-sca-1.1-cd05.xsd new file mode 100644 index 0000000000..a337296d45 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-sca-1.1-cd05.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ws-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ws-1.1-cd04.xsd new file mode 100644 index 0000000000..65e200bf8a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ws-1.1-cd04.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ws-callback-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ws-callback-1.1-cd04.xsd new file mode 100644 index 0000000000..874e36bab8 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-binding-ws-callback-1.1-cd04.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-1.1-cd05.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-1.1-cd05.xsd new file mode 100644 index 0000000000..da391a983f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-1.1-cd05.xsd @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-c-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-c-1.1-cd04.xsd new file mode 100644 index 0000000000..a93c4c5960 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-c-1.1-cd04.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-cpp-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-cpp-1.1-cd04.xsd new file mode 100644 index 0000000000..98fffa201f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-cpp-1.1-cd04.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-java-1.1-cd02.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-java-1.1-cd02.xsd new file mode 100644 index 0000000000..6131804edc --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-contribution-java-1.1-cd02.xsd @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-core-1.1-cd05.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-core-1.1-cd05.xsd new file mode 100644 index 0000000000..ab0fce9ac8 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-core-1.1-cd05.xsd @@ -0,0 +1,478 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-definitions-1.1-cd05.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-definitions-1.1-cd05.xsd new file mode 100644 index 0000000000..8f2f20db19 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-definitions-1.1-cd05.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-bpel-1.1-cd03.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-bpel-1.1-cd03.xsd new file mode 100644 index 0000000000..967dadf395 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-bpel-1.1-cd03.xsd @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-c-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-c-1.1-cd04.xsd new file mode 100644 index 0000000000..ee4b313e6d --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-c-1.1-cd04.xsd @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-composite-1.1-cd05.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-composite-1.1-cd05.xsd new file mode 100644 index 0000000000..f2780f9895 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-composite-1.1-cd05.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-cpp-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-cpp-1.1-cd04.xsd new file mode 100644 index 0000000000..b54ced4e4e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-cpp-1.1-cd04.xsd @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-java-1.1-cd02.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-java-1.1-cd02.xsd new file mode 100644 index 0000000000..2856a51450 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-java-1.1-cd02.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-spring-1.1-cd01.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-spring-1.1-cd01.xsd new file mode 100644 index 0000000000..5ef3e86c92 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-implementation-spring-1.1-cd01.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-c-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-c-1.1-cd04.xsd new file mode 100644 index 0000000000..518f0747fb --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-c-1.1-cd04.xsd @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-cpp-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-cpp-1.1-cd04.xsd new file mode 100644 index 0000000000..b07bf01f1d --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-cpp-1.1-cd04.xsd @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-java-1.1-cd04.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-java-1.1-cd04.xsd new file mode 100644 index 0000000000..7b78e13749 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-java-1.1-cd04.xsd @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-wsdl-1.1-cd05.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-wsdl-1.1-cd05.xsd new file mode 100644 index 0000000000..8d3510be7d --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-interface-wsdl-1.1-cd05.xsd @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-jee-1.1-wd03.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-jee-1.1-wd03.xsd new file mode 100644 index 0000000000..97b44f8da5 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-jee-1.1-wd03.xsd @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-policy-1.1-cd03.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-policy-1.1-cd03.xsd new file mode 100644 index 0000000000..61693046c1 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-policy-1.1-cd03.xsd @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-policy-1.1-intents-definitions-cd03.xml b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-policy-1.1-intents-definitions-cd03.xml new file mode 100644 index 0000000000..4505850072 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/sca-policy-1.1-intents-definitions-cd03.xml @@ -0,0 +1,249 @@ + + + + + + + + Communication through the binding requires that the + server is authenticated by the client + + + + + + + + Communication through the binding requires that the + client is authenticated by the server + + + + + + + + A convenience intent to help migration + + + + + + Communication through the binding requires that the + client and server to authenticate each other + + + + + + Communication through the binding prevents unauthorized + users from reading the messages + + + + + + + + Communication through the binding prevents tampering + with the messages sent between the client and the service. + + + + + + + + Ensures clients are authorized to use services. + + + + + + + + This intent is used to indicate that a message sent + by a client is always delivered to the component. + + + + + + This intent is used to indicate that a message that was + successfully sent by a client is not delivered more than + once to the component. + + + + + + This profile intent is used to indicate that a message sent + by a client is always delivered to the component. It also + indicates that duplicate messages are not delivered to the + component. + + + + + + This intent is used to indicate that all the messages are + delivered to the component in the order they were sent by + the client. + + + + + + + A managed transaction environment is necessary in order to + run the component. The specific type of managed transaction + needed is not constrained. + + + + For a component marked with managedTransaction.global + a global transaction needs to be present before dispatching + any method on the component - using any transaction + propagated from the client or else beginning and completing + a new transaction. + + + + + A component marked with managedTransaction.local needs to + run within a local transaction containment (LTC) that + is started and ended by the SCA runtime. + + + + + + + A component marked with noManagedTransaction needs to run without + a managed transaction, under neither a global transaction nor + an LTC. A transaction propagated to the hosting SCA runtime + is not joined by the hosting runtime on behalf of a + component marked with noManagedtransaction. + + + + + + For a reference marked as transactedOneWay any OneWay invocation + messages are transacted as part of a client global + transaction. + For a service marked as transactedOneWay any OneWay invocation + message are received from the transport binding in a + transacted fashion, under the service’s global transaction. + + + + + + For a reference indicates that any OneWay invocation messages + are sent immediately regardless of any client transaction. + For a service indicates that any OneWay invocation is + received immediately regardless of any target service + transaction. + + + + + + A service marked with propagatesTransaction is dispatched + under any propagated (client) transaction and the service binding + needs to be capable of receiving a transaction context. + A reference marked with propagatesTransaction propagates any + transaction context under which the client runs when the + reference is used for a request-response interaction and the + binding of a reference marked with propagatesTransaction needs to + be capable of propagating a transaction context. + + + + + + A service marked with suspendsTransaction is not dispatched + under any propagated (client) transaction. + A reference marked with suspendsTransaction does not propagate + any transaction context under which the client runs when the + reference is used. + + + + + + Used to indicate that the component requires both the + managedTransaction.global and the propagatesTransactions + intents + + + + + + + Indicates that request/response operations for the + interface of this wire are "long running" and must be + treated as two separate message transmissions + + + + + + Specifies that the EJB API is needed to communicate with + the service or reference. + + + + + + Specifies that the SOAP messaging model is used for delivering + messages. + + + + + + + + Requires that the messages are delivered and received via the + JMS API. + + + + + + This intent can only be used on a reference. Indicates that the + client is not able to handle new inbound connections. The binding + and callback binding are configured so that any + response or callback comes either through a back channel of the + connection from the client to the server or by having the client + poll the server for messages. + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-atom.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-atom.xsd new file mode 100644 index 0000000000..603455a1f2 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-atom.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-dwr.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-dwr.xsd new file mode 100644 index 0000000000..52445c14c5 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-dwr.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-http.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-http.xsd new file mode 100644 index 0000000000..67feb54963 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-http.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jms.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jms.xsd new file mode 100644 index 0000000000..200f3e50a4 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jms.xsd @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jsonrpc.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jsonrpc.xsd new file mode 100644 index 0000000000..d1bdcbdfae --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jsonrpc.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rest.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rest.xsd new file mode 100644 index 0000000000..05adf814c3 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rest.xsd @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rmi.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rmi.xsd new file mode 100644 index 0000000000..ea39a773e0 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rmi.xsd @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rss.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rss.xsd new file mode 100644 index 0000000000..9857ec62b7 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rss.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-osgi.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-osgi.xsd new file mode 100644 index 0000000000..c97b91251b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-osgi.xsd @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-script.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-script.xsd new file mode 100644 index 0000000000..fab809c7e1 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-script.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-widget.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-widget.xsd new file mode 100644 index 0000000000..491cb2abce --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-widget.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1.xsd b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1.xsd new file mode 100644 index 0000000000..4cf8649bc6 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1.xsd @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/LICENSE b/sandbox/sebastien/java/dynamic/modules/assembly/LICENSE new file mode 100644 index 0000000000..8aa906c321 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/LICENSE @@ -0,0 +1,205 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/META-INF/MANIFEST.MF b/sandbox/sebastien/java/dynamic/modules/assembly/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..61b8b3ffea --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/META-INF/MANIFEST.MF @@ -0,0 +1,60 @@ +Manifest-Version: 1.0 +Export-Package: org.apache.tuscany.sca.assembly;version="2.0.0"; + uses:="javax.xml.xpath, + org.apache.tuscany.sca.assembly.impl, + org.apache.tuscany.sca.core, + org.apache.tuscany.sca.policy, + org.apache.tuscany.sca.interfacedef, + javax.xml.namespace", + org.apache.tuscany.sca.assembly.builder;version="2.0.0"; + uses:="org.apache.tuscany.sca.assembly, + org.apache.tuscany.sca.definitions, + org.apache.tuscany.sca.core, + org.apache.tuscany.sca.monitor", + org.apache.tuscany.sca.assembly.impl;version="2.0.0"; + uses:="javax.xml.xpath, + org.apache.tuscany.sca.assembly, + org.apache.tuscany.sca.core, + org.apache.tuscany.sca.policy, + org.apache.tuscany.sca.interfacedef, + javax.xml.namespace", + org.apache.tuscany.sca.definitions;version="2.0.0", + org.apache.tuscany.sca.definitions.util;version="2.0.0";uses:="org.apache.tuscany.sca.definitions,org.apache.tuscany.sca.monitor", + org.apache.tuscany.sca.interfacedef;version="2.0.0";uses:="org.apache.tuscany.sca.interfacedef.util,org.apache.tuscany.sca.policy", + org.apache.tuscany.sca.interfacedef.impl;version="2.0.0";uses:="org.apache.tuscany.sca.interfacedef.util,org.apache.tuscany.sca.policy,org.apache.tuscany.sca.interfacedef", + org.apache.tuscany.sca.interfacedef.util;version="2.0.0";uses:="org.apache.tuscany.sca.interfacedef,javax.xml.namespace", + org.apache.tuscany.sca.policy;version="2.0.0";uses:="javax.xml.xpath,org.apache.tuscany.sca.policy.impl,javax.xml.namespace", + org.apache.tuscany.sca.policy.impl;version="2.0.0";uses:="javax.xml.xpath,org.apache.tuscany.sca.policy,javax.xml.namespace", + org.apache.tuscany.sca.policy.util;version="2.0.0";uses:="javax.xml.parsers,org.apache.tuscany.sca.policy" +Private-Package: org.apache.tuscany.sca.assembly.builder.impl;version= + "2.0.0" +SCA-Version: 1.1 +Bundle-Name: Apache Tuscany SCA Assembly Model +Bundle-Vendor: The Apache Software Foundation +Bundle-Version: 2.0.0 +Bundle-ManifestVersion: 2 +Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt +Bundle-Description: Apache Tuscany SCA Assembly Model +Import-Package: javax.xml.datatype, + javax.xml.namespace, + javax.xml.parsers, + javax.xml.transform, + javax.xml.transform.dom, + javax.xml.transform.stream, + javax.xml.xpath, + org.apache.tuscany.sca.assembly;version="2.0.0", + org.apache.tuscany.sca.assembly.builder;version="2.0.0", + org.apache.tuscany.sca.assembly.impl;version="2.0.0", + org.apache.tuscany.sca.core;version="2.0.0", + org.apache.tuscany.sca.definitions;version="2.0.0", + org.apache.tuscany.sca.extensibility;version="2.0.0", + org.apache.tuscany.sca.interfacedef;version="2.0.0", + org.apache.tuscany.sca.interfacedef.impl;version="2.0.0";resolution:=optional, + org.apache.tuscany.sca.monitor;version="2.0.0", + org.apache.tuscany.sca.policy;version="2.0.0", + org.apache.tuscany.sca.policy.impl;version="2.0.0", + org.apache.tuscany.sca.policy.util;version="2.0.0", + org.w3c.dom +Bundle-SymbolicName: org.apache.tuscany.sca.assembly +Bundle-DocURL: http://www.apache.org/ +Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/NOTICE b/sandbox/sebastien/java/dynamic/modules/assembly/NOTICE new file mode 100644 index 0000000000..ad2ba40961 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/NOTICE @@ -0,0 +1,6 @@ +${pom.name} +Copyright (c) 2005 - 2010 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/pom.xml b/sandbox/sebastien/java/dynamic/modules/assembly/pom.xml new file mode 100644 index 0000000000..11fa07c1e6 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/pom.xml @@ -0,0 +1,45 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-modules + 2.0-SNAPSHOT + ../pom.xml + + tuscany-assembly + Apache Tuscany SCA Assembly Model + + + + + org.apache.tuscany.sca + tuscany-monitor + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-extensibility + 2.0-SNAPSHOT + + + + diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractContract.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractContract.java new file mode 100644 index 0000000000..dca1decb76 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractContract.java @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Interface contracts define one or more business functions. These business + * functions are provided by services and are used by references. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface AbstractContract extends Base, Extensible, PolicySubject { + + /** + * Returns the name of the contract. + * + * @return the name of the contract + */ + String getName(); + + /** + * Sets the name of the contract. + * + * @param name the name of the contract + */ + void setName(String name); + + /** + * Returns the interface contract defining the interface and callback + * interface for the contract. + * + * @return the interface contract + */ + InterfaceContract getInterfaceContract(); + + /** + * Sets the interface contract defining the interface and callback + * interface for the contract. + * + * @param interfaceContract the interface contract + */ + void setInterfaceContract(InterfaceContract interfaceContract); + + /** + * Returns true if this contract is a reference or service created internally + * to handle a callback interface of another contract, false otherwise. + * + * @return true for a callback contract, false otherwise + */ + boolean isForCallback(); + + /** + * Sets a flag indicating whether this is a callback contract. + * + * @param isCallback true for a callback contract, false otherwise + */ + void setForCallback(boolean isCallback); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractProperty.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractProperty.java new file mode 100644 index 0000000000..45fa05d66c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractProperty.java @@ -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.sca.assembly; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.interfacedef.DataType; + +/** + * A property allows for the configuration of an implementation with externally + * set data values. An implementation can have zero or more properties. Each + * property has a data type, which may be either simple or complex. An + * implementation may also define a default value for a property. + * + * @version $Rev$ $Date$ + */ +public interface AbstractProperty extends Base, Extensible { + + /** + * Returns the property name. + * + * @return the property name + */ + String getName(); + + /** + * Sets the property name. + * + * @param name the property name + */ + void setName(String name); + + /** + * Returns the default value of the property. + * + * @return the default value of this property + */ + Object getValue(); + + /** + * Sets the default value of the property. + * + * @param defaultValue the default value of this property + */ + void setValue(Object defaultValue); + + /** + * Returns true if the property allows multiple values. + * + * @return true if the property allows multiple values + */ + boolean isMany(); + + /** + * Sets whether or not the property allows multiple values. + * + * @param many true if the property should allow multiple values + */ + void setMany(boolean many); + + /** + * Returns true if a value must be supplied for the property. + * + * @return true is a value must be supplied for the property + */ + boolean isMustSupply(); + + /** + * Sets whether a value must be supplied for the property. + * + * @param mustSupply set to true to require that a value be supplied for + * uses of this property + */ + void setMustSupply(boolean mustSupply); + + /** + * Returns the data type of this property. This is the qualified name of an + * XML schema type. + * + * @return the type of this property + */ + QName getXSDType(); + + /** + * Sets the data type of this property. This is the qualified name of an XML + * schema type. + * + * @param type the type of this property + */ + void setXSDType(QName type); + + /** + * Returns the element defining the data type of this property. This is the + * qualified name of an XML schema element. + * + * @return the element defining the type of this property + */ + QName getXSDElement(); + + /** + * Sets the element defining the data type of this property. This is the + * qualified name of an XML schema element. + * + * @param element the element defining the type of this property + */ + void setXSDElement(QName element); + + /** + * Get the data type for this property + * @return The data type + */ + DataType getDataType(); + + /** + * Set the data type + * @param dataType The data type + */ + void setDataType(DataType dataType); + + /** + * Get the XML schema that represents the type if this property. + * Used during property value validation + * + * @return + */ + Object getXSDDefinition(); + + /** + * Set the XML schema that represents the type if this property. + * Used during property value validation + * + * @param xsdDefintion + */ + void setXSDDefinition(Object xsdDefintion); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractReference.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractReference.java new file mode 100644 index 0000000000..a9ef26bbb9 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractReference.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * Represents a reference contract. + * + * @version $Rev$ $Date$ + */ +public interface AbstractReference extends AbstractContract { + + /** + * Returns the multiplicity allowed for wires connected to this reference. + * + * @return the multiplicity allowed for wires connected to this reference + */ + Multiplicity getMultiplicity(); + + /** + * Sets the multiplicity allowed for wires connected to this reference. + * + * @param multiplicity the multiplicity allowed for wires connected to this + * reference + */ + void setMultiplicity(Multiplicity multiplicity); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractService.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractService.java new file mode 100644 index 0000000000..9ae511c07b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractService.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * Represents a service contract. + * + * @version $Rev$ $Date$ + */ +public interface AbstractService extends AbstractContract { + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AssemblyFactory.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AssemblyFactory.java new file mode 100644 index 0000000000..5d82b9b727 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AssemblyFactory.java @@ -0,0 +1,167 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * A factory for the assembly model + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface AssemblyFactory { + + /** + * Create a new abstract property. + * + * @return a new abstract property + */ + AbstractProperty createAbstractProperty(); + + /** + * Create a new abstract reference. + * + * @return a new abstract reference + */ + AbstractReference createAbstractReference(); + + /** + * Create a new abstract service. + * + * @return a new abstract service + */ + AbstractService createAbstractService(); + + /** + * Create a new callback. + * + * @return + */ + Callback createCallback(); + + /** + * Create a new component. + * + * @return a new component + */ + Component createComponent(); + + /** + * Create a new component property. + * + * @return a new component property + */ + ComponentProperty createComponentProperty(); + + /** + * Create a new component reference. + * + * @return a new component reference + */ + ComponentReference createComponentReference(); + + /** + * Create a new component service. + * + * @return a new component service + */ + ComponentService createComponentService(); + + /** + * Create a new component type + * + * @return a new component type + */ + ComponentType createComponentType(); + + /** + * Create a new composite. + * + * @return a new composite + */ + Composite createComposite(); + + /** + * Create a new composite reference. + * + * @return a new composite reference + */ + CompositeReference createCompositeReference(); + + /** + * Create a new composite service. + * + * @return a new composite service + */ + CompositeService createCompositeService(); + + /** + * Create a new property. + * + * @return a new property + */ + Property createProperty(); + + /** + * Create a new reference. + * + * @return a new reference + */ + Reference createReference(); + + /** + * Create a new service. + * + * @return a new service + */ + Service createService(); + + /** + * Create a new wire. + * + * @return a new wire + */ + Wire createWire(); + + /** + * Create an Extension + * @return + */ + Extension createExtension(); + + /** + * Create a new endpoint + * + * @return a new endpoint + */ + Endpoint createEndpoint(); + + /** + * Create a new endpoint reference + * + * @return a new endpoint reference + */ + EndpointReference createEndpointReference(); + + /** + * Create a new configured operation. + * + * @return a new ConfiguredOperation + */ + ConfiguredOperation createConfiguredOperation(); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Base.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Base.java new file mode 100644 index 0000000000..b9abb90b03 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Base.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * Base interface for all assembly model objects. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public interface Base { + String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912"; + String SCA11_TUSCANY_NS = "http://tuscany.apache.org/xmlns/sca/1.1"; + + /** + * Returns true if the model element is unresolved. + * + * @return true if the model element is unresolved. + */ + boolean isUnresolved(); + + /** + * Sets whether the model element is unresolved. + * + * @param unresolved whether the model element is unresolved + */ + void setUnresolved(boolean unresolved); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Binding.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Binding.java new file mode 100644 index 0000000000..9b96556173 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Binding.java @@ -0,0 +1,114 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import javax.xml.namespace.QName; + +/** + * Represents a binding. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public interface Binding extends Base, Cloneable { + + /** + * Returns the binding URI. + * + * @return the binding URI + */ + String getURI(); + + /** + * Sets the binding URI. + * + * @param uri the binding URI + */ + void setURI(String uri); + + /** + * Returns the binding name. + * + * @return the binding name + */ + String getName(); + + /** + * Sets the binding name. + * + * @param name the binding name + */ + void setName(String name); + + /** + * Clone the binding + * + * @return the clone + */ + Object clone() throws CloneNotSupportedException; + + /** + * Returns the QName type for the binding + * + * @return the binding type QName + */ + QName getType(); + + /** + * Returns the request wire format + * + * @return the request wire format or null is none is specified + */ + WireFormat getRequestWireFormat(); + + /** + * Sets the request wire format + * + * @param wireFormat the request wire format + */ + void setRequestWireFormat(WireFormat wireFormat); + + /** + * Returns the response wire format + * + * @return the response wire format or null is none is specified + */ + WireFormat getResponseWireFormat(); + + /** + * Sets the response wire format + * + * @param wireFormat the response wire format + */ + void setResponseWireFormat(WireFormat wireFormat); + + /** + * Returns the operation selector + * + * @return the operation selector or null is none is specified + */ + OperationSelector getOperationSelector(); + + /** + * Sets the operation selector + * + * @param operationSelector the operation selector + */ + void setOperationSelector(OperationSelector operationSelector); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Callback.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Callback.java new file mode 100644 index 0000000000..a220f14159 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Callback.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Represents a callback object describing the bindings to use for callbacks. + * + * @version $Rev$ $Date$ + */ +public interface Callback extends Base, Extensible, PolicySubject { + + /** + * Returns the bindings supported for callbacks. + * + * @return the bindings supported for callbacks + */ + List getBindings(); + + /** + * Returns the contract that holds this callback + * + * @return the contract that holds this callback + */ + Contract getParentContract(); + + /** + * Sets the contract that holds this callback + * + * @param contract the contract that holds this callback + */ + void setParentContract(Contract contract); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Component.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Component.java new file mode 100644 index 0000000000..efd8557e07 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Component.java @@ -0,0 +1,142 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Represents a component. A component is a configured instance of an + * implementation. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface Component extends Base, Extensible, PolicySubject, Cloneable { + + /** + * Returns the URI of the component. + * + * @return the URI of the component + */ + String getURI(); + + /** + * Sets the URI of the component. + * + * @param uri the URI of the component + */ + void setURI(String uri); + + /** + * Returns the name of the component. + * + * @return the name of the component + */ + String getName(); + + /** + * Sets the name of the component. + * + * @param name the name of the component + */ + void setName(String name); + + /** + * Returns the component implementation. + * + * @return the component implementation + */ + Implementation getImplementation(); + + /** + * Sets the component implementation + * + * @param implementation the component implementation + */ + void setImplementation(Implementation implementation); + + /** + * Returns a list of references used by the component. + * + * @return a list of references used by the component + */ + List getReferences(); + + /** + * Return a reference by name + * + * @param name the reference name + * @return reference the reference + */ + ComponentReference getReference(String name); + + /** + * Returns a list of services exposed by the component. + * + * @return a list of services exposed by the component + */ + List getServices(); + + /** + * Return a service by name + * + * @param name the service name + * @return service the service + */ + ComponentService getService(String name); + + /** + * Returns a list of properties for the component. + * + * @return a list of properties + */ + List getProperties(); + + /** + * Return a property by name + * + * @param name the property name + * @return property the property + */ + ComponentProperty getProperty(String name); + + /** + * Return the Boolean value of autowire + * @return null/TRUE/FALSE + */ + Boolean getAutowire(); + + /** + * Sets whether component references should be autowired. + * + * @param autowire whether component references should be autowired + */ + void setAutowire(Boolean autowire); + + /** + * Returns a clone of the component. + * + * @return a clone of the component + * @throws CloneNotSupportedException + */ + Object clone() throws CloneNotSupportedException; + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentProperty.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentProperty.java new file mode 100644 index 0000000000..1202b4d83a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentProperty.java @@ -0,0 +1,89 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import javax.xml.xpath.XPathExpression; + +/** + * Represents a configured property of a component. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface ComponentProperty extends Property { + + /** + * Returns the property defined by the component implementation. + * + * @return the property defined by the component implementation + */ + Property getProperty(); + + /** + * Sets the property defined by this component implementation. + * + * @param property the property defined by this component implementation + */ + void setProperty(Property property); + + /** + * Returns an XPath expression referencing a property of the enclosing + * composite. + * + * @return an XPath expression referencing a property of the enclosing + * composite + */ + String getSource(); + + /** + * Sets an XPath expression referencing a property of the enclosing + * composite. + * + * @param source an XPath expression referencing a property of the enclosing + * composite + */ + void setSource(String source); + + /** + * Get the XPath expression for the source attribute + * @return the XPath expression for the source attribute + */ + XPathExpression getSourceXPathExpression(); + + /** + * Set the XPath expression for the source attribute + * @param sourceXPathExpression the XPath expression for the source attribute + */ + void setSourceXPathExpression(XPathExpression sourceXPathExpression); + + /** + * Returns a URI to a file containing the property value. + * + * @return a URI to a file containing the property value + */ + String getFile(); + + /** + * Sets a URI to a file containing the property value. + * + * @param file a URI to a file containing the property value + */ + void setFile(String file); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentReference.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentReference.java new file mode 100644 index 0000000000..ad72780de8 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentReference.java @@ -0,0 +1,113 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * An instance of a reference associated with a particular component. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface ComponentReference extends Reference { + + /** + * Returns the reference defined by the implementation for this reference. + * + * @return the implementation reference + */ + Reference getReference(); + + /** + * Sets the reference defined by the implementation for this reference. + * + * @param reference the implementation reference + */ + void setReference(Reference reference); + + /** + * Return the Boolean value of autowire + * @return null/TRUE/FALSE + */ + Boolean getAutowire(); + + /** + * Sets whether component references should be autowired. + * + * @param autowire whether component references should be autowired + */ + void setAutowire(Boolean autowire); + + /** + * Returns the callback service created internally as a target endpoint + * for callbacks to this reference. + * + * @return the callback service + */ + ComponentService getCallbackService(); + + /** + * Sets the callback service created internally as a target endpoint + * for callbacks to this reference. + * + * @param callbackService the callback service + */ + void setCallbackService(ComponentService callbackService); + + /** + * A boolean value, "false" by default, which indicates whether this component reference + * can have its targets overridden by a composite reference which promotes the + * component reference. + * + * If @nonOverridable==false, the target(s) of the promoting composite reference + * replace all the targets explicitly declared on the component reference for any + * value of @multiplicity on the component reference. + * + * If the component reference has @nonOverridable==false and @multiplicity 1..1 + * and the reference has a target, then any composite reference which promotes + * the component reference has @multiplicity 0..1.by default and MAY have an explicit @multiplicity of either + * 0..1 or 1..1. + * + * If @nonOverridable==true, and the component reference has @multiplicity 0..1 or + * 1..1 and the component reference also declares a target, promotion implies + * that the promoting composite reference has @wiredbyImpl==true and the composite + * reference cannot supply a target, but can influence the policy attached to the + * component reference. + * + * If @nonOverridable==true, and the component reference @multiplicity is 0..n + * or 1..n, promotion targeting is additive + * + * @return + */ + boolean isNonOverridable(); + + /** + * Set the nonOverridable flag + * @param nonOverridable + */ + void setNonOverridable(boolean nonOverridable); + + /** + * Sets whether this Component Reference is promoted + * @param isPromoted - true if the component reference is promoted + */ + void setPromoted(boolean isPromoted); + + boolean isPromoted(); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentService.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentService.java new file mode 100644 index 0000000000..e1e3eab90c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentService.java @@ -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.sca.assembly; + +/** + * An addressable instance of a service associated with a particular component. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface ComponentService extends Service { + + /** + * Returns the service defined by the implementation for this service. + * + * @return + */ + Service getService(); + + /** + * Sets the service defined by the implementation for this service. + * + * @param service + */ + void setService(Service service); + + /** + * Returns the callback reference created internally as a source endpoint + * for callbacks from this service. + * + * @return the callback reference + */ + ComponentReference getCallbackReference(); + + /** + * Sets the callback reference created internally as a source endpoint + * for callbacks from this service. + * + * @param callbackReference the callback reference + */ + void setCallbackReference(ComponentReference callbackReference); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentType.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentType.java new file mode 100644 index 0000000000..f748828999 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentType.java @@ -0,0 +1,90 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Describes an implementation and represents its configurable aspects. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface ComponentType extends Base, PolicySubject { + + /** + * Returns the URI of this component type. + * @return the URI of the component type + */ + String getURI(); + + /** + * Sets the URI of this component type. + * @param uri the URI of the component type + */ + void setURI(String uri); + + /** + * Returns a list of services that are offered. + * + * @return a list of services that are offered + */ + List getServices(); + + /** + * Return a service by name + * + * @param name the service name + * @return service the service + */ + Service getService(String name); + + /** + * Returns the list of reference types that are used. + * + * @return the list of reference types that are used + */ + List getReferences(); + + /** + * Return a reference by name + * + * @param name the reference name + * @return reference the reference + */ + Reference getReference(String name); + + /** + * Returns the list of properties that can be set. + * + * @return the list of properties that can be set + */ + List getProperties(); + + /** + * Return a property by name + * + * @param name the property name + * @return property the property + */ + Property getProperty(String name); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Composite.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Composite.java new file mode 100644 index 0000000000..64a55f1b44 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Composite.java @@ -0,0 +1,132 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Represents a composite. + * + * @version $Rev$ $Date$ + */ +public interface Composite extends Implementation, Extensible, Cloneable, PolicySubject { + /** + * Special name for the domain composite + */ + QName DOMAIN_COMPOSITE = new QName(SCA11_NS, ""); + QName TYPE = new QName(SCA11_NS, "implementation.composite"); + + /** + * Returns the spec version of the composite used to build this model + * + * @return the spec version used to build this model + */ + String getSpecVersion(); + + /** + * Sets the spec version of the composite used to build this model + * + * @param specVersion the spec version used to build this model + */ + void setSpecVersion(String specVersion); + + /** + * Returns the name of the composite. + * + * @return the name of the composite + */ + QName getName(); + + /** + * Sets the name of the composite. + * + * @param name the name of the composite + */ + void setName(QName name); + + /** + * Returns a list of composites included in this composite. + * + * @return a list of composites included in this composite. + */ + List getIncludes(); + + /** + * Returns a list of components contained in this composite. + * + * @return a list of components contained in this composite + */ + List getComponents(); + + /** + * Returns a component by name + */ + Component getComponent(String name); + + /** + * Returns a list of wires contained in this composite. + * + * @return a list of wires contained in this composite + */ + List getWires(); + + /** + * Returns true if all the components within the composite must run in the + * same process. + * + * @return true if all the components within the composite must run in the + * same process + */ + boolean isLocal(); + + /** + * Sets whether all the components within the composite must run in the same + * process. + * + * @param local whether all the components within the composite must run in + * the same process + */ + void setLocal(boolean local); + + /** + * Return the Boolean value of autowire + * @return null/TRUE/FALSE + */ + Boolean getAutowire(); + + /** + * Sets whether component references should be autowired. + * + * @param autowire whether component references should be autowired + */ + void setAutowire(Boolean autowire); + + /** + * Returns a clone of the component type. + * + * @return a clone of the component type + * @throws CloneNotSupportedException + */ + Object clone() throws CloneNotSupportedException; + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/CompositeReference.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/CompositeReference.java new file mode 100644 index 0000000000..88cb2f9a2c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/CompositeReference.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +/** + * Represents composite reference. + * + * @version $Rev$ $Date$ + */ +public interface CompositeReference extends Reference { + /** + * Returns the promoted components. For each promoted component/reference, + * they have the same index in the component and reference list. + * + * @return the promoted components + */ + List getPromotedComponents(); + + /** + * Returns the promoted component references. + * + * @return the promoted component references + */ + List getPromotedReferences(); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/CompositeService.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/CompositeService.java new file mode 100644 index 0000000000..575d0784ce --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/CompositeService.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * Represents a composite service. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface CompositeService extends Service { + + /** + * Returns the promoted component. + * + * @return the promoted component. + */ + Component getPromotedComponent(); + + /** + * Sets the promoted component + * + * @param promotedComponent the promoted component. + */ + void setPromotedComponent(Component promotedComponent); + + /** + * Returns the promoted component service . + * + * @return the promoted component service. + */ + ComponentService getPromotedService(); + + /** + * Sets the promoted component service + * + * @param promotedService the promoted component service. + */ + void setPromotedService(ComponentService promotedService); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ConfiguredOperation.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ConfiguredOperation.java new file mode 100644 index 0000000000..25ae82aa8f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ConfiguredOperation.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Represents an Operation. Typically Operation elements are used when there is a + * need to apply certain facets such as intents and policysets only to a specific + * operation provided by a service or reference. + * + * @tuscany.spi.extension.asclient + * @version $Rev$ $Date$ + */ +public interface ConfiguredOperation extends Base, PolicySubject { + /** + * Returns the name of the operation. + * + * @return the name of the operation + */ + String getName(); + + /** + * Sets the name of the operation. + * + * @param name the name of the operation + */ + void setName(String name); + + /** + * Returns the name of the service or reference to which this operation belongs. + * This method is particularly useful when operation elements are specified under implementation + * elements and it is necessary to identify which of the various services provided by the + * implementation is referred to by the operation element in question + * + * @return the name of the contract to which this operation belongs + */ + String getContractName(); + + /** + * Sets the name of the service or reference to which this operation belongs. + * + * @param contractName the name of the contract to which this operation belongs + */ + void setContractName(String contractName); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Contract.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Contract.java new file mode 100644 index 0000000000..0c57c74ec0 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Contract.java @@ -0,0 +1,111 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Represents a contract. A contract can be either a service or a reference. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface Contract extends AbstractContract, PolicySubject, Cloneable { + + /** + * Returns the bindings supported by this contract. + * + * @return the bindings supported by this contract + */ + List getBindings(); + + /** + * Returns a binding of the specified type or null if there is no such + * binding configured on this contract. + * + * @param the binding type + * @param bindingClass the binding type class + * @return the binding or null if there is no binding of the specified type + */ + B getBinding(Class bindingClass); + + /** + * Returns a callback binding of the specified type or null if there is no such + * callback binding configured on this contract. + * + * @param the callback binding type + * @param bindingClass the callback binding type class + * @return the callback binding or null if there is no callback binding of the specified type + */ + B getCallbackBinding(Class bindingClass); + + /** + * Returns a callback definition of the bindings to use for callbacks. + * + * @return a definition of the bindings to use for callbacks + */ + Callback getCallback(); + + /** + * Sets a callback definition of the bindings to use for callbacks + * + * @param callback a definition of the bindings to use for callbacks + */ + void setCallback(Callback callback); + + /** + * Returns a clone of the contract. + * + * @return a clone of the reference + * @throws CloneNotSupportedException + */ + Object clone() throws CloneNotSupportedException; + + /** + * Returns the interface contract given a binding. Important in the case where + * a reference with multiplicity > 1 has been promoted and has it's list of + * resolved bindings extended by a promoting reference. Here the binding + * from the promoting reference may need the interface contract from the + * promoting reference and not the promoted reference. + * TODO - remove this wrinkle with better endpoint support. + * + * @param binding the binding for which the interface contract is required + * @return the interface contract + */ + InterfaceContract getInterfaceContract(Binding binding); + + /** + * A flag to tell if there are any binding elements specified for this service or reference. + * If true, they override the the bindings in the corresponding reference/service in the + * component type or promoted reference/service. + * @return + */ + boolean isOverridingBindings(); + + /** + * Set the flag depending on if there are any binding elements specified for this service or + * reference. + * @param overridingBindings true if there are binding elements specified + */ + void setOverridingBindings(boolean overridingBindings); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DefaultAssemblyFactory.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DefaultAssemblyFactory.java new file mode 100644 index 0000000000..6d8350fc66 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DefaultAssemblyFactory.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly; + +import org.apache.tuscany.sca.assembly.impl.AssemblyFactoryImpl; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; + +/** + * A factory for the assembly model. + * + * @version $Rev$ $Date$ + */ +public class DefaultAssemblyFactory extends AssemblyFactoryImpl implements AssemblyFactory { + + public DefaultAssemblyFactory(ExtensionPointRegistry registry) { + super(registry); + } + + public DefaultAssemblyFactory() { + super(new DefaultExtensionPointRegistry()); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java new file mode 100644 index 0000000000..43bf17d66a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java @@ -0,0 +1,139 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.io.Serializable; +import java.util.List; + +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Represents a service endpoint which is what results from having a configured + * binding applied to a component service. In a deployed application an endpoint + * will relate directly to a physical endpoint, for example, a HTTP URL or a + * JMS destination. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface Endpoint extends Base, PolicySubject, Cloneable, Serializable { + /** + * Get the structural URI of the service binding + * @return structural URI of the service/binding + */ + String getURI(); + + /** + * Set the structural URI of the service binding + * @param uri <componentURI>#service-binding(serviceName/bindingName) + * or <componentURI>#service(serviceName) + */ + void setURI(String uri); + + /** + * Get the component model object + * + * @return component + */ + Component getComponent(); + + /** + * Set the component model object + * + * @param component + */ + void setComponent(Component component); + + /** + * Get the service model object + * + * @return service + */ + ComponentService getService(); + + /** + * Set the service model object + * + * @param service + */ + void setService(ComponentService service); + + /** + * Get the resolved target binding + * + * @return target binding + */ + Binding getBinding(); + + /** + * Set the binding + * + * @param binding + */ + void setBinding(Binding binding); + + /** + * Returns the interface contract defining the interface + * + * @return the interface contract + */ + InterfaceContract getComponentServiceInterfaceContract(); + + /** + * Get the service's callback endpoint references that + * represent endpoint references from which callbacks + * originate + * + * @return callbackEndpoint the reference callback endpoint + */ + List getCallbackEndpointReferences(); + + /** + * Returns true if this endpoint represents a serivce that is not + * running in this JVM + * + * @return true if the endpoint is remote + */ + boolean isRemote(); + + /** + * Set true if this endpoint represents a serivce that is not + * running in this JVM + * + * @param remote set to true if the endpoint is remote + */ + void setRemote(boolean remote); + + /** + * Supports endpoint cloning + * + * @return endpoint + * @throws CloneNotSupportedException + */ + Object clone() throws CloneNotSupportedException; + + /** + * Tests if the URI of this endpoint matches the service URI + * @param serviceName the service URI to test + * @return true if the endpoint URI matches the service URI + */ + boolean matches(String serviceURI); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/EndpointReference.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/EndpointReference.java new file mode 100644 index 0000000000..f9edbe6e87 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/EndpointReference.java @@ -0,0 +1,165 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.io.Serializable; + +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Represents an endpoint reference. An SCA reference can reference service endpoints in a + * number of ways. Target names, autowire, configured bindings. The endpoint reference + * captures the result of specifying one of these things. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface EndpointReference extends Base, PolicySubject, Cloneable, Serializable { + + /** + * Status of the endpoint reference resolution + */ + enum Status { + NOT_CONFIGURED, // Not configured + RESOLVED_BINDING, // The endpoint reference is configured with a binding + AUTOWIRE_PLACEHOLDER, // Autowire to be performed + WIRED_TARGET_NOT_FOUND, // Wire target not found + WIRED_TARGET_FOUND_READY_FOR_MATCHING, // Wire target found and ready to be resolved to an endpoint + WIRED_TARGET_FOUND_AND_MATCHED, // Wire target found and resolved to an endpoint + WIRED_TARGET_IN_BINDING_URI // SCA target specified by the binding uri + }; + + /** + * Get the structural URI of the reference binding + * @return The structural URI of the reference/binding + */ + String getURI(); + + /** + * Set the structural URI of the reference binding + * @param uri <componentURI>#reference-binding(referenceName/bindingName) + * or <componentURI>#reference(referenceName) if binding is not present + * + */ + void setURI(String uri); + + /** + * Supports endpoint reference cloning + * + * @return endpointReference + * @throws CloneNotSupportedException + */ + Object clone() throws CloneNotSupportedException; + + /** + * Get the component model object + * + * @return component + */ + Component getComponent(); + + /** + * Set the component model object + * + * @param component the component for the endpoint + */ + void setComponent(Component component); + + /** + * Get the source component reference model object + * + * @return reference the source component reference for the endpoint + */ + ComponentReference getReference(); + + /** + * Set the source component reference model object + * + * @param reference + */ + void setReference(ComponentReference reference); + + /** + * Get the resolved reference binding + * + * @return binding the resolved reference binding + */ + Binding getBinding(); + + /** + * Set the resolved reference binding + * + * @param binding the resolved reference binding + */ + void setBinding(Binding binding); + + /** + * Get the target endpoint + * + * @return endpoint the target endpoint + */ + Endpoint getTargetEndpoint(); + + /** + * Set the target endpoint model object + * + * @param endpoint the target endpoint + */ + void setTargetEndpoint(Endpoint targetEndpoint); + + /** + * Returns the interface contract defining the interface + * + * @return the interface contract + */ + InterfaceContract getComponentReferenceInterfaceContract(); + + /** + * Get the reference callback endpoint that + * represents that target endpoint to which callback + * messages will be directed + * + * @return callbackEndpoint the reference callback endpoint + */ + Endpoint getCallbackEndpoint(); + + /** + * Set the reference callback endpoint + * + * @param callbackEndpoint the reference callback endpoint + */ + void setCallbackEndpoint(Endpoint callbackEndpoint); + + /** + * Rather than relying on combinations of unresolved flags and + * other data we maintain a status enumeration + * + * @return status + */ + Status getStatus(); + + /** + * Rather than relying on combinations of unresolved flags and + * other data we maintain a status enumeration + * + * @param status the new status + */ + void setStatus(Status status); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java new file mode 100644 index 0000000000..da8d054140 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +/** + * Base interface for extensible assembly model objects. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public interface Extensible extends Base { + + /** + * Returns a list of extension objects contained in this model object. + * + * @return a list of extension objects container in this model object + */ + List getExtensions(); + + /** + * Returns a list of attribute extensions contained in this model object + * + * @return a list of attribute extensions contained in this model object + */ + List getAttributeExtensions(); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extension.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extension.java new file mode 100644 index 0000000000..d179ce7b3b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extension.java @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import javax.xml.namespace.QName; + +/** + * Base interface for storing contents of extensible assembly model objects. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface Extension { + + /** + * Return QName for the extension + * @return the extension QName + */ + QName getQName(); + + /** + * Set QName for the extension + * @param qName the extension QName + */ + void setQName(QName qName); + + /** + * Return the original extension value + * @return the extension value + */ + T getValue(); + + /** + * Set the original extension value + * @param value the extension value + */ + void setValue(T value); + + /** + * Return whether or not the extension is an attribute + * @return + */ + boolean isAttribute(); + + /** + * Set whether or not the extension is an attribute + * @param value + */ + void setAttribute(boolean isAttribute); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Implementation.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Implementation.java new file mode 100644 index 0000000000..3912896f0c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Implementation.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.interfacedef.Operation; + +/** + * Represents a component implementation. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public interface Implementation extends ComponentType { + QName getType(); + List getOperations(); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Multiplicity.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Multiplicity.java new file mode 100644 index 0000000000..5b719e50bc --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Multiplicity.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * Enumeration for multiplicity. Defines the number of wires that can connect a + * reference to target services. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension + */ +public enum Multiplicity { + + /** + * Zero or one wire can have the reference as a source. + */ + ZERO_ONE, + + /** + * The default setting, one wire can have the reference as a source. + */ + ONE_ONE, + + /** + * Zero or more wires can have the reference as a source. + */ + ZERO_N, + + /** + * One or more wires can have the reference as a source. + */ + ONE_N + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/OperationSelector.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/OperationSelector.java new file mode 100644 index 0000000000..9df72e358d --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/OperationSelector.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * Represents an operationSelector + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface OperationSelector extends Base, Cloneable { + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/OperationsConfigurator.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/OperationsConfigurator.java new file mode 100644 index 0000000000..9563d2e1cb --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/OperationsConfigurator.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +/** + * Interface to be implemented by SCA artifacts that support configuration of 'operation' child + * elements for policies etc. + * @tuscany.spi.extension.inheritfrom + * @version $Rev$ $Date$ + */ + +public interface OperationsConfigurator { + List getConfiguredOperations(); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Property.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Property.java new file mode 100644 index 0000000000..c65b6213b0 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Property.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * A property allows for the configuration of an implementation with externally + * set data values. An implementation can have zero or more properties. Each + * property has a data type, which may be either simple or complex. An + * implementation may also define a default value for a property. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface Property extends AbstractProperty, Cloneable { + + /** + * Returns a clone of the property. + * + * @return a clone of the property + * @throws CloneNotSupportedException + */ + Object clone() throws CloneNotSupportedException; + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Reference.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Reference.java new file mode 100644 index 0000000000..2ee3e774e4 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Reference.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +/** + * Represents a reference. References within an implementation represent links + * to services that the implementation uses that must be provided by other + * components. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface Reference extends AbstractReference, Contract { + + /** + * Returns a boolean value, "false" by default, which indicates that the + * implementation wires this reference dynamically. + * + * @return true if the implementation wires this reference dynamically + */ + boolean isWiredByImpl(); + + /** + * Sets a boolean value, "false" by default, which indicates that the + * implementation wires this reference dynamically. + * + * @param wiredByImpl whether the implementation wires this reference + * dynamically + */ + void setWiredByImpl(boolean wiredByImpl); + + + /** + * Returns the targets of this reference. + * + * @return the targets of this reference. + */ + List getTargets(); + + /** + * Returns the endpoint references implied by this reference. + * + * Endpoint references are used to represent: + * + * - manually specified reference targets + * - reference targets determined by autowire + * - manually configured remote bindings + * + * @return the endpoint references implied by this reference + */ + List getEndpointReferences(); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/SCABinding.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/SCABinding.java new file mode 100644 index 0000000000..aa356e3857 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/SCABinding.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import javax.xml.namespace.QName; + +/** + * Represents an SCA binding. + * + * @version $Rev$ $Date$ + */ +public interface SCABinding extends Binding { + QName TYPE = new QName(SCA11_NS, "binding.sca"); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/SCABindingFactory.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/SCABindingFactory.java new file mode 100644 index 0000000000..feae980326 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/SCABindingFactory.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +/** + * A factory for the SCA binding model + * + * @version $Rev$ $Date$ + */ +public interface SCABindingFactory { + + /** + * Create a new SCA binding. + * + * @return a new SCA binding + */ + SCABinding createSCABinding(); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Service.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Service.java new file mode 100644 index 0000000000..1f3d412364 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Service.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import java.util.List; + +/** + * Represents a service. Services are used to publish services provided by + * implementations, so that they are addressable by other components. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface Service extends AbstractService, Contract { + /** + * Returns the endpoints implied by this service. + * + * Endpoints represent configured bindings for a service. Hence a service + * with two bindings will expose two Endpoints. Where a promoted service has + * new binding configuration applied by a promoting component Endpoints are + * introduced to represent these new bindings. + * + * @return the endpoints implied by this service + */ + List getEndpoints(); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Wire.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Wire.java new file mode 100644 index 0000000000..075b50eec1 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Wire.java @@ -0,0 +1,85 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Represents a wire. + * + * @version $Rev$ $Date$ + */ +public interface Wire extends Base, Extensible, PolicySubject, Cloneable { + + /** + * Returns the source of the wire. + * + * @return the source of the wire + */ + ComponentReference getSource(); + + /** + * Sets the source of the wire. + * + * @param source the source of the wire + */ + void setSource(ComponentReference source); + + /** + * Returns the target of the wire. + * + * @return the target of the wire + */ + ComponentService getTarget(); + + /** + * Sets the target of the wire. + * + * @param target the target of the wire + */ + void setTarget(ComponentService target); + + /** + * A boolean value, with the default of "false". When a wire element has + * @replace="false", the wire is added to the set of wires which apply to + * the reference identified by the @source attribute. When a wire element + * has @replace="true", the wire is added to the set of wires which apply to + * the reference identified by the @source attribute - but any wires for that + * reference specified by means of the @target attribute of the reference + * are removed from the set of wires which apply to the reference. + * + * @return + */ + boolean isReplace(); + + /** + * Set the replace flag for the wire + * @param replace + */ + void setReplace(boolean replace); + + /** + * Returns a clone of the wire. + * + * @return a clone of the wire + * @throws CloneNotSupportedException + */ + Object clone() throws CloneNotSupportedException; + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/WireFormat.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/WireFormat.java new file mode 100644 index 0000000000..c622737454 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/WireFormat.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly; + +import javax.xml.namespace.QName; + +/** + * Represents a wireFormat. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public interface WireFormat extends Base, Cloneable { + QName getSchemaName(); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BindingBuilder.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BindingBuilder.java new file mode 100644 index 0000000000..8c56385c9e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BindingBuilder.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.Contract; + +/** + * A builder that handles any build-time configuration needed by bindings. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public interface BindingBuilder { + + /** + * Configure a binding. + * + * @param component The component for the binding's service or reference + * @param contract The binding's service or reference + * @param context The context for the builder + * @param rebuild Set true to have derived data in the binding rebuilt + * caching can cause problems in the late binding case so we + * need to be able to remove cached data + */ + void build(Component component, Contract contract, B binding, BuilderContext context, boolean rebuild); + + /** + * Get QName of the binding type + * @return The binding type + */ + QName getBindingType(); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderContext.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderContext.java new file mode 100644 index 0000000000..374c36c1f5 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderContext.java @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.UtilityExtensionPoint; +import org.apache.tuscany.sca.definitions.Definitions; +import org.apache.tuscany.sca.monitor.DefaultMonitorFactory; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.MonitorFactory; + +/** + * Context for builders + * @tuscany.spi.extension.asclient + */ +public class BuilderContext { + protected Definitions definitions; + protected Map> bindingBaseURIs = Collections.emptyMap(); + protected Monitor monitor; + + /** + * @param definitions + * @param bindingBaseURIs + * @param monitor + */ + public BuilderContext(Definitions definitions, Map> bindingBaseURIs, Monitor monitor) { + super(); + this.definitions = definitions; + if (bindingBaseURIs != null) { + this.bindingBaseURIs = bindingBaseURIs; + } + this.monitor = monitor; + } + + /** + * Create a builder context with the monitor + * @param monitor + */ + public BuilderContext(Monitor monitor) { + super(); + this.monitor = monitor; + } + + /** + * Create a builder context with the extension point registry + * @param registry + */ + public BuilderContext(ExtensionPointRegistry registry) { + super(); + MonitorFactory monitorFactory = + registry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(MonitorFactory.class); + this.monitor = monitorFactory.createMonitor(); + } + + /** + * Create a builder context with a default monitor + */ + public BuilderContext() { + super(); + this.monitor = new DefaultMonitorFactory().createMonitor(); + } + + public Monitor getMonitor() { + return monitor; + } + + public Monitor setMonitor(Monitor monitor) { + Monitor old = this.monitor; + this.monitor = monitor; + return old; + } + + public Definitions getDefinitions() { + return definitions; + } + + public Map> getBindingBaseURIs() { + return bindingBaseURIs; + } + + public void setDefinitions(Definitions definitions) { + this.definitions = definitions; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderExtensionPoint.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderExtensionPoint.java new file mode 100644 index 0000000000..14ae2042d3 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderExtensionPoint.java @@ -0,0 +1,149 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +import java.util.Collection; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Implementation; + +/** + * An extension point for Composite builders. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface BuilderExtensionPoint { + + /** + * Adds a contract builder. + * + * @param compositeBuilder + */ + void addContractBuilder(ContractBuilder contractBuilder); + + /** + * Removes a contract builder. + * + * @param compositeBuilder + */ + void removeContractBuilder(ContractBuilder contractBuilder); + + /** + * Returns the contract builder + * + * @param id + * @return + */ + ContractBuilder getContractBuilder(); + + /** + * Adds a composite builder. + * + * @param compositeBuilder + */ + void addCompositeBuilder(CompositeBuilder compositeBuilder); + + /** + * Removes a composite builder. + * + * @param compositeBuilder + */ + void removeCompositeBuilder(CompositeBuilder compositeBuilder); + + /** + * Returns the composite builder with the given id. + * + * @param id + * @return + */ + CompositeBuilder getCompositeBuilder(String id); + + /** + * Add a binding builder + * @param bindingBuilder + */ + void addBindingBuilder(BindingBuilder bindingBuilder); + + /** + * Look up a binding builder by the binding type + * @param + * @param bindingType + * @return + */ + BindingBuilder getBindingBuilder(QName bindingType); + + /** + * Remove a binding builder + * @param + * @param builder + */ + void removeBindingBuilder(BindingBuilder builder); + + /** + * Add an implementation builder + * @param implementationBuilder + */ + void addImplementationBuilder(ImplementationBuilder implementationBuilder); + + /** + * Look up an implementation builder by implementation type + * @param + * @param implementationType + * @return + */ + ImplementationBuilder getImplementationBuilder(QName implementationType); + + /** + * Remove an implementation builder + * @param + * @param builder + */ + void removeImplementationBuilder(ImplementationBuilder builder); + + /** + * Add a policy builder + * @param policyBuilder + */ + void addPolicyBuilder(PolicyBuilder policyBuilder); + + /** + * Look up a Policy builder by the Policy type + * @param

+ * @param policyType + * @return + */ +

PolicyBuilder

getPolicyBuilder(QName policyType); + + /** + * Remove a Policy builder + * @param

+ * @param builder + */ +

void removePolicyBuilder(PolicyBuilder

builder); + + /** + * Get a collection of policy builders + * @return + */ + public Collection getPolicyBuilders(); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java new file mode 100644 index 0000000000..50bf10f54a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +import org.apache.tuscany.sca.assembly.Composite; + +/** + * A builder that handles the configuration of the components inside a + * composite and the wiring of component references to component services. + * + * @version $Rev$ $Date$ + */ +public interface CompositeBuilder { + + /** + * Returns the ID of the builder. + * + * @return An ID that identifies the builder + */ + String getID(); + + /** + * Build a composite. + * + * @param composite The composite + * @param context The builder context + * @return The composite built from the original one. In most cases, it is the same as the orginal one as + * most builders only change the content of the composite. + * + * @throws CompositeBuilderException + */ + Composite build(Composite composite, BuilderContext context) throws CompositeBuilderException; + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderException.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderException.java new file mode 100644 index 0000000000..5a2015f55e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderException.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +/** + * Reports a composite builder exception. + * + * @version $Rev$ $Date$ + */ +public class CompositeBuilderException extends Exception { + private static final long serialVersionUID = -8916323176803443856L; + + public CompositeBuilderException() { + } + + public CompositeBuilderException(String message) { + super(message); + } + + public CompositeBuilderException(Throwable cause) { + super(cause); + } + + public CompositeBuilderException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ContractBuilder.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ContractBuilder.java new file mode 100644 index 0000000000..99a58dc1c8 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ContractBuilder.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; + +/** + * A builder that builds WSDL versions of component contracts so that the + * component contracts can be compared with binding contracts in a generic way. + * The generic interface format defined by the Assembly spec is WSDL 1.1 + */ +public interface ContractBuilder { + + /** + * Build the WSDL version of the Interface Contract + */ + boolean build(InterfaceContract interfaceContract, BuilderContext context); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java new file mode 100644 index 0000000000..8b037a7534 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java @@ -0,0 +1,479 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +import java.lang.reflect.Constructor; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.Contract; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.assembly.Implementation; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.core.LifeCycleListener; +import org.apache.tuscany.sca.core.UtilityExtensionPoint; +import org.apache.tuscany.sca.extensibility.ServiceDeclaration; +import org.apache.tuscany.sca.extensibility.ServiceDeclarationParser; +import org.apache.tuscany.sca.extensibility.ServiceDiscovery; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; + +/** + * Default implementation of a provider factory extension point. + * + * @version $Rev$ $Date$ + */ +public class DefaultBuilderExtensionPoint implements BuilderExtensionPoint, LifeCycleListener { + + private ExtensionPointRegistry registry; + private final Map builders = new HashMap(); + private final Map bindingBuilders = new HashMap(); + private final Map implementationBuilders = + new HashMap(); + private final Map policyBuilders = new HashMap(); + private ContractBuilder contractBuilder = null; + + private boolean loaded; + + public DefaultBuilderExtensionPoint(ExtensionPointRegistry registry) { + this.registry = registry; + } + + public void start() { + } + + public void stop() { + builders.clear(); + bindingBuilders.clear(); + implementationBuilders.clear(); + loaded = false; + } + + public void addCompositeBuilder(CompositeBuilder builder) { + builders.put(builder.getID(), builder); + } + + public void removeCompositeBuilder(CompositeBuilder builder) { + builders.remove(builder.getID()); + } + + public CompositeBuilder getCompositeBuilder(String id) { + loadBuilders(); + return builders.get(id); + } + + public void addContractBuilder(ContractBuilder contractBuilder){ + this.contractBuilder = contractBuilder; + } + + public void removeContractBuilder(ContractBuilder contractBuilder){ + this.contractBuilder = null; + } + + public ContractBuilder getContractBuilder(){ + loadBuilders(); + return contractBuilder; + } + + /** + * Load builders declared under META-INF/services. + */ + private synchronized void loadBuilders() { + if (loaded) + return; + + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); + + UtilityExtensionPoint utils = registry.getExtensionPoint(UtilityExtensionPoint.class); + InterfaceContractMapper mapper = utils.getUtility(InterfaceContractMapper.class); + + // Get the provider factory service declarations + Collection builderDeclarations; + ServiceDiscovery serviceDiscovery = registry.getServiceDiscovery(); + try { + builderDeclarations = serviceDiscovery.getServiceDeclarations(CompositeBuilder.class.getName()); + } catch (Exception e) { + throw new IllegalStateException(e); + } + + for (ServiceDeclaration builderDeclaration : builderDeclarations) { + Map attributes = builderDeclaration.getAttributes(); + String id = attributes.get("id"); + + CompositeBuilder builder = new LazyCompositeBuilder(id, builderDeclaration, this, factories, mapper); + builders.put(id, builder); + } + + try { + builderDeclarations = serviceDiscovery.getServiceDeclarations(BindingBuilder.class); + } catch (Exception e) { + throw new IllegalStateException(e); + } + + for (ServiceDeclaration builderDeclaration : builderDeclarations) { + BindingBuilder builder = new LazyBindingBuilder(builderDeclaration); + bindingBuilders.put(builder.getBindingType(), builder); + } + + try { + builderDeclarations = serviceDiscovery.getServiceDeclarations(ImplementationBuilder.class); + } catch (Exception e) { + throw new IllegalStateException(e); + } + + for (ServiceDeclaration builderDeclaration : builderDeclarations) { + ImplementationBuilder builder = new LazyImplementationBuilder(builderDeclaration); + implementationBuilders.put(builder.getImplementationType(), builder); + } + + try { + builderDeclarations = serviceDiscovery.getServiceDeclarations(PolicyBuilder.class); + } catch (Exception e) { + throw new IllegalStateException(e); + } + + for (ServiceDeclaration builderDeclaration : builderDeclarations) { + PolicyBuilder builder = new LazyPolicyBuilder(builderDeclaration); + policyBuilders.put(builder.getPolicyType(), builder); + } + + try { + builderDeclarations = serviceDiscovery.getServiceDeclarations(ContractBuilder.class); + } catch (Exception e) { + throw new IllegalStateException(e); + } + + for (ServiceDeclaration builderDeclaration : builderDeclarations) { + contractBuilder = new LazyContractBuilder(builderDeclaration); + } + + + loaded = true; + + } + + public void addBindingBuilder(BindingBuilder bindingBuilder) { + bindingBuilders.put(bindingBuilder.getBindingType(), bindingBuilder); + } + + public BindingBuilder getBindingBuilder(QName bindingType) { + loadBuilders(); + return (BindingBuilder)bindingBuilders.get(bindingType); + } + + public void removeBindingBuilder(BindingBuilder builder) { + bindingBuilders.remove(builder.getBindingType()); + } + + public void addImplementationBuilder(ImplementationBuilder implementationBuilder) { + implementationBuilders.put(implementationBuilder.getImplementationType(), implementationBuilder); + } + + public ImplementationBuilder getImplementationBuilder(QName implementationType) { + loadBuilders(); + return (ImplementationBuilder)implementationBuilders.get(implementationType); + } + + public void removeImplementationBuilder(ImplementationBuilder builder) { + implementationBuilders.remove(builder.getImplementationType()); + } + + public void addPolicyBuilder(PolicyBuilder policyBuilder) { + policyBuilders.put(policyBuilder.getPolicyType(), policyBuilder); + } + + public PolicyBuilder getPolicyBuilder(QName policyType) { + loadBuilders(); + return (PolicyBuilder)policyBuilders.get(policyType); + } + + public Collection getPolicyBuilders() { + loadBuilders(); + return policyBuilders.values(); + } + + public void removePolicyBuilder(PolicyBuilder builder) { + policyBuilders.remove(builder.getPolicyType()); + } + + /** + * A wrapper around a composite builder allowing lazy + * loading and initialization of implementation providers. + */ + private class LazyCompositeBuilder implements CompositeBuilder { + + private FactoryExtensionPoint factories; + private InterfaceContractMapper mapper; + private String id; + private ServiceDeclaration builderDeclaration; + private CompositeBuilder builder; + private BuilderExtensionPoint builders; + + private LazyCompositeBuilder(String id, + ServiceDeclaration factoryDeclaration, + BuilderExtensionPoint builders, + FactoryExtensionPoint factories, + InterfaceContractMapper mapper) { + this.id = id; + this.builderDeclaration = factoryDeclaration; + this.builders = builders; + this.factories = factories; + this.mapper = mapper; + } + + public String getID() { + return id; + } + + public Composite build(Composite composite, BuilderContext context) + throws CompositeBuilderException { + return getBuilder().build(composite, context); + } + + private CompositeBuilder getBuilder() { + if (builder == null) { + try { + Class builderClass = (Class)builderDeclaration.loadClass(); + try { + Constructor constructor = + builderClass.getConstructor(FactoryExtensionPoint.class, InterfaceContractMapper.class); + builder = constructor.newInstance(factories, mapper); + } catch (NoSuchMethodException e) { + try { + Constructor constructor = + builderClass.getConstructor(BuilderExtensionPoint.class, + FactoryExtensionPoint.class, + InterfaceContractMapper.class); + builder = constructor.newInstance(builders, factories, mapper); + } catch (NoSuchMethodException ex) { + Constructor constructor = + builderClass.getConstructor(ExtensionPointRegistry.class); + builder = constructor.newInstance(registry); + } + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + return builder; + } + + } + + private class LazyBindingBuilder implements BindingBuilder { + private ServiceDeclaration sd; + private BindingBuilder builder; + private QName qname;; + + /** + * @param sd + */ + public LazyBindingBuilder(ServiceDeclaration sd) { + super(); + this.sd = sd; + this.qname = ServiceDeclarationParser.getQName(sd.getAttributes().get("qname")); + } + + public void build(Component component, Contract contract, Binding binding, BuilderContext context, boolean rebuild) { + getBuilder().build(component, contract, binding, context, rebuild); + } + + public QName getBindingType() { + return qname; + } + + + private synchronized BindingBuilder getBuilder() { + if (builder == null) { + try { + Class builderClass = sd.loadClass(); + try { + Constructor constructor = builderClass.getConstructor(ExtensionPointRegistry.class); + builder = (BindingBuilder)constructor.newInstance(registry); + } catch (NoSuchMethodException e) { + Constructor constructor = builderClass.getConstructor(); + builder = (BindingBuilder)constructor.newInstance(); + + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + return builder; + } + + } + + private class LazyImplementationBuilder implements ImplementationBuilder { + private ServiceDeclaration sd; + private ImplementationBuilder builder; + private QName qname;; + + /** + * @param sd + */ + public LazyImplementationBuilder(ServiceDeclaration sd) { + super(); + this.sd = sd; + this.qname = ServiceDeclarationParser.getQName(sd.getAttributes().get("qname")); + } + + public void build(Component component, Implementation implementation, BuilderContext context) { + getBuilder().build(component, implementation, context); + } + + public QName getImplementationType() { + return qname; + } + + private synchronized ImplementationBuilder getBuilder() { + if (builder == null) { + try { + Class builderClass = sd.loadClass(); + try { + Constructor constructor = builderClass.getConstructor(ExtensionPointRegistry.class); + builder = (ImplementationBuilder)constructor.newInstance(registry); + } catch (NoSuchMethodException e) { + Constructor constructor = builderClass.getConstructor(); + builder = (ImplementationBuilder)constructor.newInstance(); + + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + return builder; + } + + } + + private class LazyPolicyBuilder implements PolicyBuilder { + private ServiceDeclaration sd; + private PolicyBuilder builder; + private QName qname;; + + /** + * @param sd + */ + public LazyPolicyBuilder(ServiceDeclaration sd) { + super(); + this.sd = sd; + this.qname = ServiceDeclarationParser.getQName(sd.getAttributes().get("qname")); + } + + public boolean build(Component component, Implementation implementation, BuilderContext context) { + return getBuilder().build(component, implementation, context); + } + + public QName getPolicyType() { + return qname; + } + + public List getSupportedBindings() { + return getBuilder().getSupportedBindings(); + } + + private synchronized PolicyBuilder getBuilder() { + if (builder == null) { + try { + Class builderClass = sd.loadClass(); + try { + Constructor constructor = builderClass.getConstructor(ExtensionPointRegistry.class); + builder = (PolicyBuilder)constructor.newInstance(registry); + } catch (NoSuchMethodException e) { + Constructor constructor = builderClass.getConstructor(); + builder = (PolicyBuilder)constructor.newInstance(); + + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + return builder; + } + + public boolean build(Endpoint endpoint, BuilderContext context) { + return getBuilder().build(endpoint, context); + } + + public boolean build(org.apache.tuscany.sca.assembly.EndpointReference endpointReference, BuilderContext context) { + return getBuilder().build(endpointReference, context); + } + + public boolean build(EndpointReference endpointReference, Endpoint endpoint, BuilderContext context) { + return getBuilder().build(endpointReference, endpoint, context); + } + } + + private class LazyContractBuilder implements ContractBuilder { + private ServiceDeclaration sd; + private ContractBuilder builder; + + /** + * @param sd + */ + public LazyContractBuilder(ServiceDeclaration sd) { + super(); + this.sd = sd; + } + +/* + public boolean build(EndpointReference endpointReference, BuilderContext context){ + return getBuilder().build(endpointReference, context); + } + + public boolean build(Endpoint endpoint, BuilderContext context){ + return getBuilder().build(endpoint, context); + } +*/ + + public boolean build(InterfaceContract interfaceContract, BuilderContext context){ + return getBuilder().build(interfaceContract, context); + } + + private synchronized ContractBuilder getBuilder() { + if (builder == null) { + try { + Class builderClass = sd.loadClass(); + try { + Constructor constructor = builderClass.getConstructor(ExtensionPointRegistry.class); + builder = (ContractBuilder)constructor.newInstance(registry); + } catch (NoSuchMethodException e) { + Constructor constructor = builderClass.getConstructor(); + builder = (ContractBuilder)constructor.newInstance(); + + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + return builder; + } + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ImplementationBuilder.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ImplementationBuilder.java new file mode 100644 index 0000000000..d47c3d9032 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ImplementationBuilder.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.Implementation; + +/** + * A builder that handles any build-time configuration needed by implementations. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public interface ImplementationBuilder { + + /** + * Configure a component implementation. + * + * @param component The component + * @param context TODO + * @param contract The implementation + */ + void build(Component component, I implmentation, BuilderContext context); + + /** + * Get the QName of the implementation type + * @return + */ + QName getImplementationType(); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/Messages.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/Messages.java new file mode 100644 index 0000000000..4f2842c61a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/Messages.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +/** + * Constants for resource bundle names + */ +public interface Messages { + String RESOURCE_PACKAGE = "org.apache.tuscany.sca.assembly.builder."; + String ASSEMBLY_VALIDATION = RESOURCE_PACKAGE + "assembly-validation-messages"; + String ASSEMBLY_CONFORMANCE = RESOURCE_PACKAGE + "assembly-conformance-messages"; + String DEFINITIONS_VALIDATION = RESOURCE_PACKAGE + "definitions-validation-messages"; + String BUILDER_VALIDATION_BUNDLE = "org.apache.tuscany.sca.builder.builder-validation-messages"; +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/PolicyBuilder.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/PolicyBuilder.java new file mode 100644 index 0000000000..423c856973 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/PolicyBuilder.java @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.assembly.Implementation; + +/** + * A builder that is contributed by a specific policy language to validate the configurations + * for SCA endpoints, endpoint references and component implementations + * @tuscany.spi.extension.inheritfrom + */ +public interface PolicyBuilder { + /** + * Get the policy type + * @return + */ + QName getPolicyType(); + + /** + * Return the list of binding type QNames at which this policy implementation + * is targeted. Or null if the policy is not binding specific + * @return list of binding type QNames at which this policy implementation or null if it's not binding specific + */ + List getSupportedBindings(); + + /** + * Build (and validate) the policy settings on the endpoint + * @param endpoint + * @param monitor + * @return true if the policy setting is compatible + */ + boolean build(Endpoint endpoint, BuilderContext context); + + /** + * Build (and validate) the policy settings on the endpoint reference + * @param endpointReference + * @param monitor + * @return true if the policy setting is compatible + */ + boolean build(EndpointReference endpointReference, BuilderContext context); + + /** + * Build (and validate) the policy settings on the component implementation + * @param component + * @param implementation + * @param monitor + * @return true if the policy setting is compatible + */ + boolean build(Component component, Implementation implementation, BuilderContext context); + + /** + * Build (and validate) the policy settings on the endpoint reference is compatible with the endpoint + * @param endpointReference + * @param endpoint + * @param context + * @return if the policy setting is compatible + */ + boolean build(EndpointReference endpointReference, Endpoint endpoint, BuilderContext context); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/WireBuilder.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/WireBuilder.java new file mode 100644 index 0000000000..2bfbe85664 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/WireBuilder.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.builder; + +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; + +/** + * A builder that connects an endpoint reference to an endpoint + */ +public interface WireBuilder { + /** + * Build the endpoint reference against the endpoint. If the endpoint is a valid target for the + * endpoint reference, the wire buidler can populate some information from the endpoint into the + * endpoint reference (such as targetEndpoint, policySets or requiredIntents) + * @param endpointReference + * @param endpoint + * @param context + * @return true if the endpoint is a valid target for the endpoint reference + */ + boolean build(EndpointReference endpointReference, Endpoint endpoint, BuilderContext context); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractPropertyImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractPropertyImpl.java new file mode 100644 index 0000000000..24dc20f815 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractPropertyImpl.java @@ -0,0 +1,112 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.AbstractProperty; +import org.apache.tuscany.sca.interfacedef.DataType; + +/** + * Represents an abstract property. + * + * @version $Rev$ $Date$ + */ +public class AbstractPropertyImpl extends ExtensibleImpl implements AbstractProperty { + protected Object value; + protected String name; + protected QName xsdType; + protected QName xsdElement; + protected boolean many; + protected boolean mustSupply; + protected DataType dataType; + protected Object xsdDefinition; + + /** + * Constructs a new abstract property. + */ + protected AbstractPropertyImpl() { + } + + public Object getValue() { + return value; + } + + public String getName() { + return name; + } + + public QName getXSDElement() { + return xsdElement; + } + + public QName getXSDType() { + return xsdType; + } + + public boolean isMany() { + return many; + } + + public boolean isMustSupply() { + return mustSupply; + } + + public void setValue(Object defaultValue) { + this.value = defaultValue; + } + + public void setMany(boolean many) { + this.many = many; + } + + public void setMustSupply(boolean mustSupply) { + this.mustSupply = mustSupply; + } + + public void setName(String name) { + this.name = name; + } + + public void setXSDElement(QName element) { + this.xsdElement = element; + } + + public void setXSDType(QName type) { + this.xsdType = type; + } + + public DataType getDataType() { + return dataType; + } + + public void setDataType(DataType dataType) { + this.dataType = dataType; + } + + public Object getXSDDefinition() { + return xsdDefinition; + } + + public void setXSDDefinition(Object xsdDefinition) { + this.xsdDefinition = xsdDefinition; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractReferenceImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractReferenceImpl.java new file mode 100644 index 0000000000..3e44f5f7ae --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractReferenceImpl.java @@ -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.sca.assembly.impl; + +import org.apache.tuscany.sca.assembly.AbstractReference; +import org.apache.tuscany.sca.assembly.Multiplicity; + +/** + * Represents an abstract reference + * + * @version $Rev$ $Date$ + */ +public class AbstractReferenceImpl extends ContractImpl implements AbstractReference { + private Multiplicity multiplicity = Multiplicity.ONE_ONE; + + /** + * Constructs a new abstract reference. + */ + protected AbstractReferenceImpl() { + } + + public Multiplicity getMultiplicity() { + return multiplicity; + } + + public void setMultiplicity(Multiplicity multiplicity) { + this.multiplicity = multiplicity; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractServiceImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractServiceImpl.java new file mode 100644 index 0000000000..24b1a0e03e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractServiceImpl.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import org.apache.tuscany.sca.assembly.AbstractService; + +/** + * Represents an abstract service + * + * @version $Rev$ $Date$ + */ +public class AbstractServiceImpl extends ContractImpl implements AbstractService { + + /** + * Constructs a new abstract service. + */ + protected AbstractServiceImpl() { + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AssemblyFactoryImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AssemblyFactoryImpl.java new file mode 100644 index 0000000000..0759ff1361 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AssemblyFactoryImpl.java @@ -0,0 +1,138 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import org.apache.tuscany.sca.assembly.AbstractProperty; +import org.apache.tuscany.sca.assembly.AbstractReference; +import org.apache.tuscany.sca.assembly.AbstractService; +import org.apache.tuscany.sca.assembly.AssemblyFactory; +import org.apache.tuscany.sca.assembly.Callback; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentProperty; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.ComponentType; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.CompositeReference; +import org.apache.tuscany.sca.assembly.CompositeService; +import org.apache.tuscany.sca.assembly.ConfiguredOperation; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.assembly.Extension; +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.Wire; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; + +/** + * A factory for the assembly model. + * + * @version $Rev$ $Date$ + */ +public abstract class AssemblyFactoryImpl implements AssemblyFactory { + + protected ExtensionPointRegistry registry; + + protected AssemblyFactoryImpl(ExtensionPointRegistry registry) { + super(); + this.registry = registry; + } + + public AbstractProperty createAbstractProperty() { + return new AbstractPropertyImpl(); + } + + public AbstractReference createAbstractReference() { + return new AbstractReferenceImpl(); + } + + public AbstractService createAbstractService() { + return new AbstractServiceImpl(); + } + + public Callback createCallback() { + return new CallbackImpl(); + } + + public Component createComponent() { + return new ComponentImpl(); + } + + public ComponentProperty createComponentProperty() { + return new ComponentPropertyImpl(); + } + + public ComponentReference createComponentReference() { + return new ComponentReferenceImpl(); + } + + public ComponentService createComponentService() { + return new ComponentServiceImpl(); + } + + public ComponentType createComponentType() { + return new ComponentTypeImpl(); + } + + public Composite createComposite() { + return new CompositeImpl(); + } + + public CompositeReference createCompositeReference() { + return new CompositeReferenceImpl(); + } + + public CompositeService createCompositeService() { + return new CompositeServiceImpl(); + } + + public Property createProperty() { + return new PropertyImpl(); + } + + public Reference createReference() { + return new ReferenceImpl(); + } + + public Service createService() { + return new ServiceImpl(); + } + + public Wire createWire() { + return new WireImpl(); + } + + public Extension createExtension() { + return new ExtensionImpl(); + } + + public Endpoint createEndpoint() { + return new EndpointImpl(registry); + } + + public EndpointReference createEndpointReference() { + return new EndpointReferenceImpl(registry); + } + + public ConfiguredOperation createConfiguredOperation() { + return new ConfiguredOperationImpl(); + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/BaseImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/BaseImpl.java new file mode 100644 index 0000000000..516b11724f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/BaseImpl.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import org.apache.tuscany.sca.assembly.Base; + +/** + * Convenience base class for assembly model objects. + * + * @version $Rev$ $Date$ + */ +public abstract class BaseImpl implements Base { + private boolean unresolved; + + /** + * Constructs a new base model object. + */ + protected BaseImpl() { + } + + public boolean isUnresolved() { + return unresolved; + } + + public void setUnresolved(boolean undefined) { + this.unresolved = undefined; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/BindingImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/BindingImpl.java new file mode 100644 index 0000000000..d912606f1d --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/BindingImpl.java @@ -0,0 +1,122 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.OperationSelector; +import org.apache.tuscany.sca.assembly.WireFormat; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Base Binding implementation class + */ +public abstract class BindingImpl extends ExtensibleImpl implements Binding { + private String name; + private ExtensionType extensionType; + private String uri; + private List requiredIntents = new ArrayList(); + private List policySets = new ArrayList(); + + protected QName type; + + protected BindingImpl(QName type) { + super(); + this.type = type; + } + + public QName getType() { + return type; + } + + public List getRequiredIntents() { + return requiredIntents; + } + + public List getPolicySets() { + return policySets; + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ExtensionType getExtensionType() { + return extensionType; + } + + public void setExtensionType(ExtensionType type) { + this.extensionType = type; + } + + public String getURI() { + return uri; + } + + public void setURI(String uri) { + this.uri = uri; + } + + public OperationSelector getOperationSelector() { + return null; + } + + public WireFormat getRequestWireFormat() { + return null; + } + + public WireFormat getResponseWireFormat() { + return null; + } + + public void setOperationSelector(OperationSelector operationSelector) { + } + + public void setRequestWireFormat(WireFormat wireFormat) { + } + + public void setResponseWireFormat(WireFormat wireFormat) { + } + + public String toString() { + StringBuffer buf = new StringBuffer(); + buf.append(getType()).append(" ("); + buf.append("uri=").append(getURI()); + buf.append(",name=").append(getName()); + buf.append(")"); + return buf.toString(); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CallbackImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CallbackImpl.java new file mode 100644 index 0000000000..dec68d1413 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CallbackImpl.java @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Callback; +import org.apache.tuscany.sca.assembly.Contract; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Represents a reference. + * + * @version $Rev$ $Date$ + */ +public class CallbackImpl extends ExtensibleImpl implements Callback { + private List bindings = new ArrayList(); + private List requiredIntents = new ArrayList(); + private List policySets = new ArrayList(); + private Contract parentContract; + + public List getPolicySets() { + return policySets; + } + + public List getRequiredIntents() { + return requiredIntents; + } + + protected CallbackImpl() { + } + + public List getBindings() { + return bindings; + } + + public ExtensionType getExtensionType() { + return null; + } + + public void setExtensionType(ExtensionType type) { + } + + public void setRequiredIntents(List intents) { + this.requiredIntents = intents; + } + + public Contract getParentContract() { + return parentContract; + } + + public void setParentContract(Contract contract) { + this.parentContract = contract; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentImpl.java new file mode 100644 index 0000000000..8a03df339c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentImpl.java @@ -0,0 +1,186 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentProperty; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.Implementation; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Represents a component. + * + * @version $Rev$ $Date$ + */ +public class ComponentImpl extends ExtensibleImpl implements Component, Cloneable { + private Implementation implementation; + private String name; + private String uri; + private List properties = new ArrayList(); + private List references = new ArrayList(); + private List services = new ArrayList(); + private List requiredIntents = new ArrayList(); + private List policySets = new ArrayList(); + private Boolean autowire; + private ExtensionType type; + + /** + * Constructs a new component. + */ + protected ComponentImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + ComponentImpl clone = (ComponentImpl)super.clone(); + + clone.properties = new ArrayList(); + for (ComponentProperty property : getProperties()) { + clone.properties.add((ComponentProperty)property.clone()); + } + clone.references = new ArrayList(); + for (ComponentReference reference : getReferences()) { + clone.references.add((ComponentReference)reference.clone()); + } + clone.services = new ArrayList(); + for (ComponentService service : getServices()) { + clone.services.add((ComponentService)service.clone()); + } + + // Clone the implementation.composite + if(implementation instanceof Composite) { + clone.implementation = (Composite) ((Composite) implementation).clone(); + } + + // Clone the Lists for intents and policySets + clone.requiredIntents = new ArrayList(getRequiredIntents()); + clone.policySets = new ArrayList(getPolicySets()); + + return clone; + } + + public String getURI() { + return uri; + } + + public void setURI(String uri) { + this.uri = uri; + } + + public Implementation getImplementation() { + return implementation; + } + + public String getName() { + return name; + } + + public List getProperties() { + return properties; + } + + public ComponentProperty getProperty(String name) { + for (ComponentProperty property : getProperties()) { + if (property.getName().equals(name)) { + return property; + } + } + return null; + } + + public List getReferences() { + return references; + } + + public ComponentReference getReference(String name){ + for (ComponentReference ref : getReferences()){ + if (ref.getName().equals(name)){ + return ref; + } + } + return null; + } + + public List getServices() { + return services; + } + + public ComponentService getService(String name) { + for (ComponentService service : getServices()) { + if (service.getName().equals(name)) { + return service; + } + } + return null; + } + + public void setImplementation(Implementation implementation) { + this.implementation = implementation; + } + + public void setName(String name) { + this.name = name; + } + + public List getRequiredIntents() { + return requiredIntents; + } + + public List getPolicySets() { + return policySets; + } + + public boolean isAutowire() { + return (autowire == null) ? false : autowire.booleanValue(); + } + + public void setAutowire(Boolean autowire) { + this.autowire = autowire; + } + + public Boolean getAutowire() { + return autowire; + } + + public ExtensionType getExtensionType() { + return type; + } + + public void setExtensionType(ExtensionType type) { + this.type = type; + } + + public String toString() { + StringBuffer buf = new StringBuffer("Component ("); + buf.append("uri=").append(uri); + buf.append(",name=").append(name); + buf.append(",implementation=").append(implementation); + buf.append(")"); + return buf.toString(); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentPropertyImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentPropertyImpl.java new file mode 100644 index 0000000000..9db522930f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentPropertyImpl.java @@ -0,0 +1,97 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import javax.xml.xpath.XPathExpression; + +import org.apache.tuscany.sca.assembly.ComponentProperty; +import org.apache.tuscany.sca.assembly.Property; + +/** + * Represents a component property. + * + * @version $Rev$ $Date$ + */ +public class ComponentPropertyImpl extends PropertyImpl implements ComponentProperty, Cloneable { + private String file; + private Property property; + private String source; + private XPathExpression sourceXPathExpression; + + /** + * Constructs a new component property. + */ + protected ComponentPropertyImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + // FIXME getValue should not delegate to property.getValue() + // Doing this violates the setValue/getValue semantics, as you + // can call setValue() then get a different value from getValue() + @Override + public Object getValue() { + if (super.getValue() == null && property != null) { + return property.getValue(); + } else { + return super.getValue(); + } + } + + public String getFile() { + return file; + } + + public Property getProperty() { + return property; + } + + public String getSource() { + return source; + } + + public void setFile(String file) { + this.file = file; + } + + public void setProperty(Property property) { + this.property = property; + } + + public void setSource(String source) { + this.source = source; + } + + public XPathExpression getSourceXPathExpression() { + return sourceXPathExpression; + } + + public void setSourceXPathExpression(XPathExpression sourceXPathExpression) { + this.sourceXPathExpression = sourceXPathExpression; + } + + public String toString() { + return "Property: " + getName() + " Value: " + getValue(); + } // end method toString + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentReferenceImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentReferenceImpl.java new file mode 100644 index 0000000000..78b54668b3 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentReferenceImpl.java @@ -0,0 +1,119 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.CompositeReference; +import org.apache.tuscany.sca.assembly.Reference; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; + +/** + * Represents a component reference + * + * @version $Rev$ $Date$ + */ +public class ComponentReferenceImpl extends ReferenceImpl implements ComponentReference, Cloneable { + private Reference reference; + private Boolean autowire; + private boolean nonOverridable; + private List promotedAs = new ArrayList(); + private ComponentService callbackService; + private boolean isPromoted = false; + + /** + * Constructs a new component reference. + */ + protected ComponentReferenceImpl() { + // Set multiplicity to null so that by default it'll inherit from the Reference + setMultiplicity(null); + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + public Reference getReference() { + return reference; + } + + public void setReference(Reference reference) { + this.reference = reference; + } + + public boolean isAutowire() { + return (autowire == null) ? false : autowire.booleanValue(); + } + + public void setAutowire(Boolean autowire) { + this.autowire = autowire; + } + + public Boolean getAutowire() { + return autowire; + } + + public List promotedAs() { + return promotedAs; + } + + public ComponentService getCallbackService() { + return callbackService; + } + + public void setCallbackService(ComponentService callbackService) { + this.callbackService = callbackService; + } + + /** + * Use endpoint information to work out what the interface contract for the + * binding is. + */ + @Override + public InterfaceContract getInterfaceContract(Binding binding) { + InterfaceContract interfaceContract = null; + + if (interfaceContract == null) { + interfaceContract = getInterfaceContract(); + } + return interfaceContract; + } + + public boolean isNonOverridable() { + return nonOverridable; + } + + public void setNonOverridable(boolean nonOverridable) { + this.nonOverridable = nonOverridable; + } + + public void setPromoted(boolean isPromoted) { + this.isPromoted = isPromoted; + } // end method setPromoted + + public boolean isPromoted() { + return isPromoted; + } +} // end class ComponentReferenceImpl diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentServiceImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentServiceImpl.java new file mode 100644 index 0000000000..f8c9f53413 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentServiceImpl.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.CompositeService; +import org.apache.tuscany.sca.assembly.Service; + +/** + * Represents a component service + * + * @version $Rev$ $Date$ + */ +public class ComponentServiceImpl extends ServiceImpl implements ComponentService, Cloneable { + private Service service; + private List promotedAs = new ArrayList(); + private ComponentReference callbackReference; + + /** + * Constructs a new component service. + */ + protected ComponentServiceImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + public Service getService() { + return service; + } + + public void setService(Service service) { + this.service = service; + } + + public List promotedAs() { + return promotedAs; + } + + public ComponentReference getCallbackReference() { + return callbackReference; + } + + public void setCallbackReference(ComponentReference callbackReference) { + this.callbackReference = callbackReference; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java new file mode 100644 index 0000000000..b52c65ef8b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java @@ -0,0 +1,176 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +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.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Represents a component type. + * + * @version $Rev$ $Date$ + */ +public class ComponentTypeImpl extends ExtensibleImpl implements ComponentType, Cloneable { + private String uri; + private List properties = new ArrayList(); + private List references = new ArrayList(); + private List services = new ArrayList(); + private List requiredIntents = new ArrayList(); + private List policySets = new ArrayList(); + + /** + * Constructs a new component type. + */ + protected ComponentTypeImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + ComponentTypeImpl clone = (ComponentTypeImpl)super.clone(); + + clone.services = new ArrayList(); + for (Service service : getServices()) { + clone.services.add((Service)service.clone()); + } + clone.references = new ArrayList(); + for (Reference reference : getReferences()) { + clone.references.add((Reference)reference.clone()); + } + clone.properties = new ArrayList(); + for (Property property : getProperties()) { + clone.properties.add((Property)property.clone()); + } + clone.requiredIntents = new ArrayList(requiredIntents); + clone.policySets = new ArrayList(policySets); + return clone; + } + + public String getURI() { + return uri; + } + + public void setURI(String uri) { + this.uri = uri; + } + + public List getProperties() { + return properties; + } + + public Property getProperty(String name){ + Property property = null; + + for (Property tmp : getProperties()){ + if (tmp.getName().equals(name)){ + property = tmp; + break; + } + } + + return property; + } + + public List getReferences() { + return references; + } + + public Reference getReference(String name){ + Reference reference = null; + + for (Reference tmp : getReferences()){ + if (tmp.getName().equals(name)){ + reference = tmp; + break; + } + } + + return reference; + } + + public List getServices() { + return services; + } + + public Service getService(String name){ + Service service = null; + + for (Service tmp : getServices()){ + if (tmp.getName().equals(name)){ + service = tmp; + break; + } + } + + return service; + } + + + public List getRequiredIntents() { + return requiredIntents; + } + + public List getPolicySets() { + return policySets; + } + + public ExtensionType getExtensionType() { + return null; + } + + public void setExtensionType(ExtensionType type) { + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((uri == null) ? 0 : uri.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + ComponentTypeImpl other = (ComponentTypeImpl)obj; + if (uri == null) { + if (other.uri != null) { + return false; + } + } else if (!uri.equals(other.uri)) { + return false; + } + return true; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeImpl.java new file mode 100644 index 0000000000..fba6af7e7f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeImpl.java @@ -0,0 +1,185 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.CompositeReference; +import org.apache.tuscany.sca.assembly.CompositeService; +import org.apache.tuscany.sca.assembly.Reference; +import org.apache.tuscany.sca.assembly.Service; +import org.apache.tuscany.sca.assembly.Wire; + +/** + * Implementation of a Composite. + * + * @version $Rev$ $Date$ + */ +public class CompositeImpl extends ImplementationImpl implements Composite, Cloneable { + private String specVersion = "undefined"; + private List components = new ArrayList(); + private List includes = new ArrayList(); + private QName name; + private List wires = new ArrayList(); + private Boolean autowire; + private boolean local = true; + + /** + * Constructs a new composite. + */ + protected CompositeImpl() { + super(TYPE); + } + + @Override + public Object clone() throws CloneNotSupportedException { + CompositeImpl clone = (CompositeImpl)super.clone(); + + // clone the child components + clone.components = new ArrayList(); + for (Component component : getComponents()) { + Component clonedComponent = (Component)component.clone(); + clone.components.add(clonedComponent); + } + + // reset the references and services so the get re-resolved + for (Service service : clone.getServices()) { + CompositeService compositeService = (CompositeService)service; + // Force the promoted component/service to be rebuilt against the clone + if (compositeService.getPromotedComponent() != null) { + compositeService.getPromotedComponent().setUnresolved(true); + } + if (compositeService.getPromotedService() != null) { + compositeService.getPromotedService().setUnresolved(true); + } + } + for (Reference reference : clone.getReferences()) { + CompositeReference compositeReference = (CompositeReference)reference; + for (ComponentReference ref : compositeReference.getPromotedReferences()) { + // Force the promoted reference to be rebuilt against the clone + ref.setUnresolved(true); + } + } + + // clone the wires + clone.wires = new ArrayList(); + for (Wire wire : getWires()) { + clone.wires.add((Wire)wire.clone()); + } + + // Clone the includes + clone.includes = new ArrayList(); + for (Composite included : getIncludes()) { + clone.includes.add((Composite)included.clone()); + } + return clone; + } + + public String getSpecVersion() { + return specVersion; + } + + public void setSpecVersion(String specVersion) { + this.specVersion = specVersion; + } + + public List getComponents() { + return components; + } + + public Component getComponent(String name) { + Component component = null; + + for (Component tmp : getComponents()){ + if (tmp.getName().equals(name)){ + component = tmp; + break; + } + } + return component; + } + + public List getIncludes() { + return includes; + } + + public QName getName() { + return name; + } + + public List getWires() { + return wires; + } + + public boolean isLocal() { + return local; + } + + public void setLocal(boolean local) { + this.local = local; + } + + public boolean isAutowire() { + return (autowire == null) ? false : autowire.booleanValue(); + } + + public void setAutowire(Boolean autowire) { + this.autowire = autowire; + } + + public Boolean getAutowire() { + return autowire; + } + + public void setName(QName name) { + this.name = name; + } + + @Override + public int hashCode() { + return String.valueOf(getName()).hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } else if (obj instanceof Composite) { + if (getName() != null) { + return getName().equals(((Composite)obj).getName()); + } else { + return ((Composite)obj).getName() == null; + } + } else { + return false; + } + } + + @Override + public String toString() { + return "Composite (name=" + getName() + ")"; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeReferenceImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeReferenceImpl.java new file mode 100644 index 0000000000..ae5fad461b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeReferenceImpl.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.CompositeReference; + +/** + * Represents a composite reference. + * + * @version $Rev$ $Date$ + */ +public class CompositeReferenceImpl extends ReferenceImpl implements CompositeReference, Cloneable { + private List promotedComponents = new ArrayList(); + private List promotedReferences = new ArrayList(); + + /** + * Constructs a new composite reference. + */ + protected CompositeReferenceImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + CompositeReferenceImpl copy = (CompositeReferenceImpl)super.clone(); + copy.promotedComponents = new ArrayList(promotedComponents); + copy.promotedReferences = new ArrayList(promotedReferences); + return copy; + } + + public List getPromotedReferences() { + return promotedReferences; + } + + public List getPromotedComponents() { + return promotedComponents; + } + + public String toString() { + return getName(); + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeServiceImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeServiceImpl.java new file mode 100644 index 0000000000..55b48ec578 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeServiceImpl.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.CompositeService; + +/** + * Represents a composite service + * + * @version $Rev$ $Date$ + */ +public class CompositeServiceImpl extends ServiceImpl implements CompositeService, Cloneable { + private ComponentService promotedService; + private Component promotedComponent; + + /** + * Constructs a new composite service. + */ + protected CompositeServiceImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + public ComponentService getPromotedService() { + return promotedService; + } + + public void setPromotedService(ComponentService promotedService) { + this.promotedService = promotedService; + } + + public Component getPromotedComponent() { + return promotedComponent; + } + + public void setPromotedComponent(Component promotedComponent) { + this.promotedComponent = promotedComponent; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ConfiguredOperationImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ConfiguredOperationImpl.java new file mode 100644 index 0000000000..80c1c7cd21 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ConfiguredOperationImpl.java @@ -0,0 +1,95 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.ConfiguredOperation; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Represents an Operation. + * + * @version $Rev$ $Date$ + */ +public class ConfiguredOperationImpl extends BaseImpl implements ConfiguredOperation { + private List policySets = new ArrayList(); + private List requiredIntents = new ArrayList(); + private List applicablePolicySets = new ArrayList(); + + private String name; + private String contractName; + private ExtensionType type; + + /** + * Constructs a new Operation. + */ + protected ConfiguredOperationImpl() { + } + + public List getPolicySets() { + return policySets; + } + + public void setPolicySets(List policySets) { + this.policySets = policySets; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getRequiredIntents() { + return requiredIntents; + } + + public void setRequiredIntents(List intents) { + this.requiredIntents = intents; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public List getApplicablePolicySets() { + return applicablePolicySets; + } + + public ExtensionType getExtensionType() { + return type; + } + + public void setExtensionType(ExtensionType type) { + this.type = type; + } + + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ContractImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ContractImpl.java new file mode 100644 index 0000000000..2b72f1f047 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ContractImpl.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.AbstractContract; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Implementation of a Contract. + * + * @version $Rev$ $Date$ + */ +public class ContractImpl extends ExtensibleImpl implements AbstractContract { + private InterfaceContract interfaceContract; + private String name; + private List requiredIntents = new ArrayList(); + private List policySets = new ArrayList(); + + private boolean isCallback = false; + + /** + * Constructs a new contract. + */ + protected ContractImpl() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public InterfaceContract getInterfaceContract() { + return interfaceContract; + } + + public void setInterfaceContract(InterfaceContract interfaceContract) { + this.interfaceContract = interfaceContract; + } + + public List getRequiredIntents() { + return requiredIntents; + } + + public boolean isForCallback() { + return isCallback; + } + + public void setForCallback(boolean isCallback) { + this.isCallback = isCallback; + } + + public ExtensionType getExtensionType() { + return null; + } + + public void setExtensionType(ExtensionType type) { + } + + public List getPolicySets() { + return policySets; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java new file mode 100644 index 0000000000..e25bd4206b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java @@ -0,0 +1,283 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.assembly.builder.BuilderExtensionPoint; +import org.apache.tuscany.sca.assembly.builder.ContractBuilder; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * The assembly model object for an endpoint. + * + * @version $Rev$ $Date$ + */ +public class EndpointImpl implements Endpoint { + private static final long serialVersionUID = 7344399683703812593L; + + protected transient ExtensionPointRegistry registry; + protected transient BuilderExtensionPoint builders; + protected transient ContractBuilder contractBuilder; + protected boolean unresolved; + protected String uri; + protected Component component; + protected ComponentService service; + protected Binding binding; + protected InterfaceContract interfaceContract; + protected List callbackEndpointReferences = new ArrayList(); + protected List policySets = new ArrayList(); + protected List requiredIntents = new ArrayList(); + protected boolean remote = false; + + protected EndpointImpl(ExtensionPointRegistry registry) { + this.registry = registry; + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + public boolean isUnresolved() { + return unresolved; + } + + public void setUnresolved(boolean unresolved) { + this.unresolved = unresolved; + } + + public Component getComponent() { + resolve(); + return component; + } + + public void setComponent(Component component) { + this.component = component; + reset(); + } + + public ComponentService getService() { + resolve(); + return service; + } + + public void setService(ComponentService service) { + this.service = service; + reset(); + } + + public Binding getBinding() { + resolve(); + return binding; + } + + public void setBinding(Binding binding) { + this.binding = binding; + reset(); + } + + public InterfaceContract getComponentServiceInterfaceContract() { + resolve(); + if (interfaceContract == null && service != null) { + interfaceContract = service.getInterfaceContract(); + } + return interfaceContract; + } + + public void setInterfaceContract(InterfaceContract interfaceContract) { + this.interfaceContract = interfaceContract; + } + + /** + * Get the services callbacl enpoint references that + * represent endpoint references from which callbacks + * originate + * + * @return callbackEndpoint the reference callback endpoint + */ + public List getCallbackEndpointReferences() { + resolve(); + return callbackEndpointReferences; + } + + public List getPolicySets() { + resolve(); + return policySets; + } + + public List getRequiredIntents() { + resolve(); + return requiredIntents; + } + + public ExtensionType getExtensionType() { + getBinding(); + if (binding instanceof PolicySubject) { + return ((PolicySubject)binding).getExtensionType(); + } + return null; + } + + public void setExtensionType(ExtensionType type) { + throw new UnsupportedOperationException(); + } + + public String toStringWithoutHash() { + String output = "Endpoint: "; + + if (getURI() != null) { + output += " URI = " + getURI(); + } + + if (unresolved) { + output += " [Unresolved]"; + } + + return output; + } + + public String toString() { + return "(@" + this.hashCode() + ")" + toStringWithoutHash(); + } + + public String getURI() { + if (uri == null) { + if (component != null && service != null && binding != null) { + String bindingName = binding.getName(); + if (bindingName == null) { + bindingName = service.getName(); + } + uri = component.getURI() + "#service-binding(" + service.getName() + "/" + bindingName + ")"; + } else if (component != null && service != null) { + uri = component.getURI() + "#service(" + service.getName() + ")"; + } else if (component != null) { + uri = component.getURI(); + } + } + return uri; + } + + public void setURI(String uri) { + this.uri = uri; + } + + protected void resolve() { + } + + protected void reset() { + this.uri = null; + } + + protected void setExtensionPointRegistry(ExtensionPointRegistry registry) { + this.registry = registry; + } + + public boolean isRemote() { + return remote; + } + + public void setRemote(boolean remote) { + this.remote = remote; + } + + public boolean matches(String serviceURI) { + String[] parts1 = parseServiceURI(serviceURI); + String[] parts2 = parseStructuralURI(getURI()); + for (int i = 0; i < parts1.length; i++) { + if (parts1[i] == null || parts1[i].equals(parts2[i])) { + continue; + } else { + return false; + } + } + return true; + } + + /** + * Parse the service URI into an array of names. The service URI is in one of the following formats: + *

    + *
  • componentName + *
  • componentName/serviceName + *
  • componentName/serviceName/bindingName + *
+ * @param serviceURI + * @return + */ + private static String[] parseServiceURI(String serviceURI) { + if (serviceURI.startsWith("/")) { + serviceURI = serviceURI.substring(1); + } + if (serviceURI.contains("#")) { + return parseStructuralURI(serviceURI); + } + String[] names = new String[3]; + String[] segments = serviceURI.split("/"); + for (int i = 0; i < names.length && i < segments.length; i++) { + names[i] = segments[i]; + } + return names; + } + + /** + * Parse the structural URI into an array of parts (componentURI, serviceName, bindingName) + * @param structuralURI + * @return [0]: componentURI [1]: serviceName [2]: bindingName + */ + private static String[] parseStructuralURI(String structuralURI) { + String[] names = new String[3]; + int index = structuralURI.lastIndexOf('#'); + if (index == -1) { + names[0] = structuralURI; + } else { + names[0] = structuralURI.substring(0, index); + String str = structuralURI.substring(index + 1); + if (str.startsWith("service-binding(") && str.endsWith(")")) { + str = str.substring("service-binding(".length(), str.length() - 1); + String[] parts = str.split("/"); + if (parts.length != 2) { + throw new IllegalArgumentException("Invalid service-binding URI: " + structuralURI); + } + names[1] = parts[0]; + names[2] = parts[1]; + } else if (str.startsWith("service(") && str.endsWith(")")) { + str = str.substring("service(".length(), str.length() - 1); + // [rfeng] Deal with empty service name + if (!"".equals(str)) { + names[1] = str; + } + } else { + throw new IllegalArgumentException("Invalid structural URI: " + structuralURI); + } + } + return names; + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointReferenceImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointReferenceImpl.java new file mode 100644 index 0000000000..ac35b45678 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointReferenceImpl.java @@ -0,0 +1,233 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.assembly.builder.BuilderExtensionPoint; +import org.apache.tuscany.sca.assembly.builder.ContractBuilder; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * The assembly model object for an endpoint. + * + * @version $Rev$ $Date$ + */ +public class EndpointReferenceImpl implements EndpointReference { + private static final long serialVersionUID = 8838066441709300972L; + + protected transient ExtensionPointRegistry registry; + protected transient BuilderExtensionPoint builders; + protected transient ContractBuilder contractBuilder; + protected boolean unresolved = true; + protected String uri; + protected Component component; + protected ComponentReference reference; + protected Binding binding; + protected List policySets = new ArrayList(); + protected List requiredIntents = new ArrayList(); + protected InterfaceContract interfaceContract; + protected Status status = Status.NOT_CONFIGURED; + + // the target of the endpoint reference + protected Endpoint targetEndpoint; + + // callback endpoint that messages across this reference + // will be directed toward + protected Endpoint callbackEndpoint; + + protected EndpointReferenceImpl(ExtensionPointRegistry registry) { + this.registry = registry; + } + + @Override + public Object clone() throws CloneNotSupportedException { + EndpointReference cloned = (EndpointReference)super.clone(); + + if (targetEndpoint != null) { + cloned.setTargetEndpoint((Endpoint)targetEndpoint.clone()); + } + + return cloned; + } + + public boolean isUnresolved() { + return unresolved; + } + + public void setUnresolved(boolean unresolved) { + this.unresolved = unresolved; + } + + public Component getComponent() { + resolve(); + return component; + } + + public void setComponent(Component component) { + this.component = component; + reset(); + } + + public ComponentReference getReference() { + resolve(); + return reference; + } + + public void setReference(ComponentReference reference) { + this.reference = reference; + reset(); + } + + public Binding getBinding() { + resolve(); + return binding; + } + + public void setBinding(Binding binding) { + this.binding = binding; + reset(); + } + + public Endpoint getTargetEndpoint() { + resolve(); + return targetEndpoint; + } + + public void setTargetEndpoint(Endpoint targetEndpoint) { + this.targetEndpoint = targetEndpoint; + reset(); + } + + public InterfaceContract getComponentReferenceInterfaceContract() { + resolve(); + if (interfaceContract == null && reference != null) { + interfaceContract = reference.getInterfaceContract(); + } + return interfaceContract; + } + + public void setInterfaceContract(InterfaceContract interfaceContract) { + this.interfaceContract = interfaceContract; + reset(); + } + + public List getPolicySets() { + resolve(); + return policySets; + } + + public List getRequiredIntents() { + resolve(); + return requiredIntents; + } + + public ExtensionType getExtensionType() { + getBinding(); + if (binding instanceof PolicySubject) { + return ((PolicySubject)binding).getExtensionType(); + } + return null; + } + + public void setExtensionType(ExtensionType type) { + throw new UnsupportedOperationException(); + } + + public Endpoint getCallbackEndpoint() { + resolve(); + return callbackEndpoint; + } + + public void setCallbackEndpoint(Endpoint callbackEndpoint) { + this.callbackEndpoint = callbackEndpoint; + reset(); + } + + public String toStringWithoutHash() { + StringBuffer output = new StringBuffer("EndpointReference: "); + + if (getURI() != null) { + output.append(" URI = ").append(getURI()); + } + + output.append(" ").append(status); + + if (targetEndpoint != null) { + output.append(" Target = ").append(targetEndpoint); + } + + return output.toString(); + } + + public String toString() { + return "(@" + this.hashCode() + ")" + toStringWithoutHash(); + } + + public String getURI() { + if (uri == null) { + if (component != null && reference != null && binding != null) { + String bindingName = binding.getName(); + if (bindingName == null) { + bindingName = reference.getName(); + } + uri = component.getURI() + "#reference-binding(" + reference.getName() + "/" + bindingName + ")"; + } else if (component != null && reference != null) { + uri = component.getURI() + "#reference(" + reference.getName() + ")"; + } else if (component != null) { + uri = component.getURI(); + } + } + return uri; + } + + public void setURI(String uri) { + this.uri = uri; + } + + protected void resolve() { + } + + protected void reset() { + this.uri = null; + } + + public void setExtensionPointRegistry(ExtensionPointRegistry registry) { + this.registry = registry; + } + + public Status getStatus() { + return status; + } + + public void setStatus(Status status) { + this.status = status; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java new file mode 100644 index 0000000000..340fa2854c --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Extensible; +import org.apache.tuscany.sca.assembly.Extension; + +/** + * Convenience base class for extensible assembly model objects. + * + * @version $Rev$ $Date$ + */ +public abstract class ExtensibleImpl extends BaseImpl implements Extensible { + private List extensions = new ArrayList(); + private List attributeExtensions = new ArrayList(); + + /** + * Constructs a new base model object. + */ + protected ExtensibleImpl() { + } + + public List getExtensions() { + return extensions; + } + + public List getAttributeExtensions() { + return attributeExtensions; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensionImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensionImpl.java new file mode 100644 index 0000000000..e69eb4a771 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensionImpl.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Extension; + +public class ExtensionImpl implements Extension { + private QName qName; + private Object value; + private boolean isAttribute = false; + + public ExtensionImpl() { + } + + public ExtensionImpl(QName qName, Object value, boolean isAttribute) { + this.qName = qName; + this.value = value; + this.isAttribute = isAttribute; + } + + public QName getQName() { + return qName; + } + + public void setQName(QName qName) { + this.qName = qName; + } + + public T getValue() { + return (T)value; + } + + public void setValue(T value) { + this.value = value; + } + + public boolean isAttribute() { + return isAttribute; + } + + public void setAttribute(boolean isAttribute) { + this.isAttribute = isAttribute; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ImplementationImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ImplementationImpl.java new file mode 100644 index 0000000000..677e86c759 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ImplementationImpl.java @@ -0,0 +1,89 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Implementation; +import org.apache.tuscany.sca.interfacedef.Operation; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Base implementation class of Implementation model interface + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public abstract class ImplementationImpl extends ComponentTypeImpl implements Implementation, PolicySubject { + private QName type; + private ExtensionType extensionType; + private List operations = new ArrayList(); + + protected ImplementationImpl(QName type) { + super(); + this.type = type; + } + + public ExtensionType getExtensionType() { + return extensionType; + } + + public void setExtensionType(ExtensionType extensionType) { + this.extensionType = extensionType; + } + + public QName getType() { + return type; + } + + public String toString() { + return String.valueOf(getType()); + } + + public List getOperations() { + return operations; + } + + @Override + public Object clone() throws CloneNotSupportedException { + ImplementationImpl impl = (ImplementationImpl)super.clone(); + impl.operations = new ArrayList(); + for (Operation operation : operations) { + impl.operations.add((Operation)operation.clone()); + } + return impl; + } + + // Override the ComponentTypeImpl.hashCode() + @Override + public int hashCode() { + return System.identityHashCode(this); + } + + // Override the ComponentTypeImpl.equals() + @Override + public boolean equals(Object obj) { + return this == obj; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/PropertyImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/PropertyImpl.java new file mode 100644 index 0000000000..263af296b1 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/PropertyImpl.java @@ -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.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Property; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Represents a property. + * + * @version $Rev$ $Date$ + */ +public class PropertyImpl extends AbstractPropertyImpl implements Property, Cloneable { + private List policySets = new ArrayList(); + private List applicablePolicySets = new ArrayList(); + + /** + * Constructs a new property. + */ + protected PropertyImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + public List getPolicySets() { + return policySets; + } + + public void setPolicySets(List policySets) { + this.policySets = policySets; + } + + public List getApplicablePolicySets() { + return applicablePolicySets; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java new file mode 100644 index 0000000000..69d76f238d --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java @@ -0,0 +1,135 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Callback; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.assembly.Reference; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; + +/** + * Represents a reference. + * + * @version $Rev$ $Date$ + */ +public class ReferenceImpl extends AbstractReferenceImpl implements Reference, Cloneable { + private List bindings = new ArrayList(); + private boolean wiredByImpl; + private List targets = new ArrayList(); + private Callback callback; + private boolean overridingBindings; + private List endpointReferences = new ArrayList(); + + /** + * Constructs a new reference. + */ + protected ReferenceImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + ReferenceImpl clone = (ReferenceImpl)super.clone(); + clone.bindings = new ArrayList(bindings); + clone.targets = new ArrayList(targets); + // clone the endpoint references themselves and set the reference pointer back to + // this new refrence + clone.endpointReferences = new ArrayList(); + + for (EndpointReference epr : endpointReferences) { + EndpointReference eprClone = (EndpointReference)epr.clone(); + eprClone.setReference((ComponentReference)clone); + clone.endpointReferences.add(eprClone); + } + return clone; + } + + public List getBindings() { + return bindings; + } + + public B getBinding(Class bindingClass) { + for (Binding binding : bindings) { + if (bindingClass.isInstance(binding)) { + return bindingClass.cast(binding); + } + } + return null; + } + + public B getCallbackBinding(Class bindingClass) { + if (callback != null) { + for (Binding binding : callback.getBindings()) { + if (bindingClass.isInstance(binding)) { + return bindingClass.cast(binding); + } + } + } + return null; + } + + public boolean isWiredByImpl() { + return wiredByImpl; + } + + public void setWiredByImpl(boolean wiredByImpl) { + this.wiredByImpl = wiredByImpl; + } + + public List getTargets() { + return targets; + } + + public Callback getCallback() { + return callback; + } + + public void setCallback(Callback callback) { + this.callback = callback; + } + + /** + * By default return the interface contract for the reference + */ + public InterfaceContract getInterfaceContract(Binding binding) { + return getInterfaceContract(); + } + + public List getEndpointReferences() { + return endpointReferences; + } + + public String toString() { + return getName(); + } + + public boolean isOverridingBindings() { + return overridingBindings; + } + + public void setOverridingBindings(boolean overridingBindings) { + this.overridingBindings = overridingBindings; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingFactoryImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingFactoryImpl.java new file mode 100644 index 0000000000..84e5825b50 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingFactoryImpl.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import org.apache.tuscany.sca.assembly.SCABinding; +import org.apache.tuscany.sca.assembly.SCABindingFactory; + +/** + * A factory for the SCA binding model. + * + * @version $Rev$ $Date$ + */ +public class SCABindingFactoryImpl implements SCABindingFactory { + + public SCABindingFactoryImpl() { + + } + + public SCABinding createSCABinding() { + return new SCABindingImpl(); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingImpl.java new file mode 100644 index 0000000000..b42f3f929f --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingImpl.java @@ -0,0 +1,148 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Extensible; +import org.apache.tuscany.sca.assembly.Extension; +import org.apache.tuscany.sca.assembly.OperationSelector; +import org.apache.tuscany.sca.assembly.SCABinding; +import org.apache.tuscany.sca.assembly.WireFormat; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * The assembly mode object for an SCA binding. + * + * @version $Rev$ $Date$ + */ +public class SCABindingImpl implements SCABinding, Extensible, PolicySubject { + private String name; + private String uri; + private List extensions = new ArrayList(); + private List attributeExtensions = new ArrayList(); + private List requiredIntents = new ArrayList(); + private List policySets = new ArrayList(); + private ExtensionType extensionType; + + /** + * Constructs a new SCA binding. + */ + protected SCABindingImpl() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * Getters for the binding URI. The computed URI for the + * service that the reference is targeting or which the service represents + * depending on whether the biding is associated with a reference or + * service + * + * @return the binding URI + */ + public String getURI() { + return uri; + } + + public void setURI(String uri) { + this.uri = uri; + } + + public List getExtensions() { + return extensions; + } + + public List getAttributeExtensions() { + return attributeExtensions; + } + + public boolean isUnresolved() { + return false; + } + + public void setUnresolved(boolean unresolved) { + } + + public List getPolicySets() { + return policySets; + } + + public List getRequiredIntents() { + return requiredIntents; + } + + public ExtensionType getExtensionType() { + return extensionType; + } + + public void setExtensionType(ExtensionType intentAttachPointType) { + this.extensionType = intentAttachPointType; + } + + public void setPolicySets(List policySets) { + this.policySets = policySets; + } + + public void setRequiredIntents(List intents) { + this.requiredIntents = intents; + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + public QName getType() { + return TYPE; + } + + public WireFormat getRequestWireFormat() { + return null; + } + + public void setRequestWireFormat(WireFormat wireFormat) { + } + + public WireFormat getResponseWireFormat() { + return null; + } + + public void setResponseWireFormat(WireFormat wireFormat) { + } + + public OperationSelector getOperationSelector() { + return null; + } + + public void setOperationSelector(OperationSelector operationSelector) { + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java new file mode 100644 index 0000000000..62523e5c17 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java @@ -0,0 +1,106 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Callback; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.Service; +import org.apache.tuscany.sca.interfacedef.InterfaceContract; + +/** + * Represents a reference. + * + * @version $Rev$ $Date$ + */ +public class ServiceImpl extends AbstractServiceImpl implements Service, Cloneable { + private List bindings = new ArrayList(); + private boolean overridingBindings; + private Callback callback; + private List endpoints = new ArrayList(); + + /** + * Constructs a new service. + */ + protected ServiceImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + ServiceImpl clone = (ServiceImpl)super.clone(); + clone.bindings = new ArrayList(); + clone.bindings.addAll(getBindings()); + return clone; + } + + public List getBindings() { + return bindings; + } + + public B getBinding(Class bindingClass) { + for (Binding binding : bindings) { + if (bindingClass.isInstance(binding)) { + return bindingClass.cast(binding); + } + } + return null; + } + + public B getCallbackBinding(Class bindingClass) { + if (callback != null) { + for (Binding binding : callback.getBindings()) { + if (bindingClass.isInstance(binding)) { + return bindingClass.cast(binding); + } + } + } + return null; + } + + public Callback getCallback() { + return callback; + } + + public void setCallback(Callback callback) { + this.callback = callback; + } + + /** + * By default return the interface contract for the service + */ + public InterfaceContract getInterfaceContract(Binding binding) { + return getInterfaceContract(); + } + + public List getEndpoints() { + return endpoints; + } + + public boolean isOverridingBindings() { + return overridingBindings; + } + + public void setOverridingBindings(boolean overridingBindings) { + this.overridingBindings = overridingBindings; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/WireImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/WireImpl.java new file mode 100644 index 0000000000..a4990f6a98 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/WireImpl.java @@ -0,0 +1,105 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.assembly.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.Wire; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Represents a wire + * + * @version $Rev$ $Date$ + */ +public class WireImpl extends ExtensibleImpl implements Wire, Cloneable { + private ComponentReference source; + private ComponentService target; + private boolean replace; + private List requiredIntents = new ArrayList(); + private List policySets = new ArrayList(); + private List applicablePolicySets = new ArrayList(); + + public List getApplicablePolicySets() { + return applicablePolicySets; + } + + /** + * Constructs a new wire. + */ + protected WireImpl() { + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + public ComponentReference getSource() { + return source; + } + + public ComponentService getTarget() { + return target; + } + + public void setSource(ComponentReference source) { + this.source = source; + } + + public void setTarget(ComponentService target) { + this.target = target; + } + + public List getRequiredIntents() { + return requiredIntents; + } + + public List getPolicySets() { + return policySets; + } + + public ExtensionType getExtensionType() { + return null; + } + + public void setExtensionType(ExtensionType type) { + } + + public void setPolicySets(List policySets) { + this.policySets = policySets; + } + + public void setRequiredIntents(List intents) { + this.requiredIntents = intents; + } + + public boolean isReplace() { + return replace; + } + + public void setReplace(boolean replace) { + this.replace = replace; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefaultDefinitionsFactory.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefaultDefinitionsFactory.java new file mode 100644 index 0000000000..156fd0af75 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefaultDefinitionsFactory.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.definitions; + +import org.apache.tuscany.sca.definitions.impl.DefinitionsImpl; + +/** + * Default Implementation of DefinitionsFactory + */ +public class DefaultDefinitionsFactory implements DefinitionsFactory { + + public Definitions createDefinitions() { + return new DefinitionsImpl(); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/Definitions.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/Definitions.java new file mode 100644 index 0000000000..7a63bbedc5 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/Definitions.java @@ -0,0 +1,84 @@ + /* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.definitions; + +import java.util.List; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.policy.BindingType; +import org.apache.tuscany.sca.policy.ImplementationType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + + +/** + * Represents SCA Definitions. + * + * @version $Rev$ $Date$ + */ +public interface Definitions { + /** + * Returns the target namespace for this SCA Definition + * @return the target namespace + */ + String getTargetNamespace(); + + /** + * Sets the target names for this SCA Definition. + * + * @param ns the target namespace for this SCA Definition + */ + void setTargetNamespace(String ns); + + /** + * Returns a list of domain wide Policy Intents + * + * @return a list of domain wide Policy Intents + */ + List getIntents(); + + /** + * Returns a list of domain wide PolicySets + * + * @return a list of domain wide PolicySets + */ + List getPolicySets(); + + /** + * Returns a list of domain wide Binding Types + * + * @return a list of domain wide Binding Types + */ + List getBindingTypes(); + + + /** + * Returns a list of domain wide Implementation Types + * + * @return a list of domain wide Implementation Types + */ + List getImplementationTypes(); + + /** + * Returns a list of domain wide binding definition objects + * + * @return a list of domain wide binding definition objects + */ + List getBindings(); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsBuilder.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsBuilder.java new file mode 100644 index 0000000000..5c68c6cbff --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsBuilder.java @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.definitions; + + +/** + * Interface to abstract building of SCA Definitions for a Domain + * + * @version $Rev$ $Date$ + */ +public interface DefinitionsBuilder { + /** + * Builds the SCA definitions + * + * @param scaDefns + */ + void build(Definitions scaDefns) throws DefinitionsBuilderException; +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsBuilderException.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsBuilderException.java new file mode 100644 index 0000000000..f45be80888 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsBuilderException.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.definitions; + +/** + * Builder Exception + * + * @version $Rev$ $Date$ + */ +public class DefinitionsBuilderException extends Exception { + private static final long serialVersionUID = 2513219325230252783L; + + public DefinitionsBuilderException() { + } + + public DefinitionsBuilderException(String message) { + super(message); + } + + public DefinitionsBuilderException(Throwable cause) { + super(cause); + } + + public DefinitionsBuilderException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsFactory.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsFactory.java new file mode 100644 index 0000000000..616616ae7a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/DefinitionsFactory.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.definitions; + +/** + * Factory interface to create SCA definitions model + * + */ +public interface DefinitionsFactory { + /** + * Create an instance of SCA definitions + * @return a new instance of SCA definitions + */ + Definitions createDefinitions(); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/impl/DefinitionsBuilderImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/impl/DefinitionsBuilderImpl.java new file mode 100644 index 0000000000..d87d45b27a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/impl/DefinitionsBuilderImpl.java @@ -0,0 +1,307 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.definitions.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.definitions.Definitions; +import org.apache.tuscany.sca.definitions.DefinitionsBuilder; +import org.apache.tuscany.sca.definitions.DefinitionsBuilderException; +import org.apache.tuscany.sca.policy.BindingType; +import org.apache.tuscany.sca.policy.ExtensionType; +import org.apache.tuscany.sca.policy.ImplementationType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.IntentMap; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.Qualifier; + +/** + * Provides a concrete implementation for a SCADefinitionsBuilder + * + * @version $Rev$ $Date$ + */ +public class DefinitionsBuilderImpl implements DefinitionsBuilder { + + public void build(Definitions scaDefns) throws DefinitionsBuilderException { + Map definedIntents = new HashMap(); + for (Intent intent : scaDefns.getIntents()) { + definedIntents.put(intent.getName(), intent); + } + + Map definedPolicySets = new HashMap(); + for (PolicySet policySet : scaDefns.getPolicySets()) { + definedPolicySets.put(policySet.getName(), policySet); + } + + Map definedBindingTypes = new HashMap(); + for (BindingType bindingType : scaDefns.getBindingTypes()) { + definedBindingTypes.put(bindingType.getType(), bindingType); + } + + Map definedImplTypes = new HashMap(); + for (ImplementationType implType : scaDefns.getImplementationTypes()) { + definedImplTypes.put(implType.getType(), implType); + } + + //filling up the maps removes all duplicate entries... so fill this unique lists + //into the scaDefns. + scaDefns.getIntents().clear(); + scaDefns.getPolicySets().clear(); + scaDefns.getBindingTypes().clear(); + scaDefns.getImplementationTypes().clear(); + + scaDefns.getIntents().addAll(definedIntents.values()); + scaDefns.getPolicySets().addAll(definedPolicySets.values()); + scaDefns.getBindingTypes().addAll(definedBindingTypes.values()); + scaDefns.getImplementationTypes().addAll(definedImplTypes.values()); + + buildPolicyIntents(scaDefns, definedIntents); + buildPolicySets(scaDefns, definedPolicySets, definedIntents); + buildBindingTypes(scaDefns, definedBindingTypes, definedIntents); + buildImplementationTypes(scaDefns, definedImplTypes, definedIntents); + } + + private void buildBindingTypes(Definitions scaDefns, + Map definedBindingTypes, + Map definedIntents) throws DefinitionsBuilderException { + for (BindingType bindingType : scaDefns.getBindingTypes()) { + buildAlwaysProvidedIntents(bindingType, definedIntents); + buildMayProvideIntents(bindingType, definedIntents); + } + + } + + private void buildImplementationTypes(Definitions scaDefns, + Map definedImplTypes, + Map definedIntents) throws DefinitionsBuilderException { + for (ImplementationType implType : scaDefns.getImplementationTypes()) { + buildAlwaysProvidedIntents(implType, definedIntents); + buildMayProvideIntents(implType, definedIntents); + } + } + + private void buildPolicyIntents(Definitions scaDefns, Map definedIntents) + throws DefinitionsBuilderException { + for (Intent policyIntent : scaDefns.getIntents()) { + if (!policyIntent.getRequiredIntents().isEmpty()) { + buildProfileIntent(policyIntent, definedIntents); + } + + if (!policyIntent.getQualifiedIntents().isEmpty()) { + buildQualifiedIntent(policyIntent, definedIntents); + } + } + } + + private void buildPolicySets(Definitions scaDefns, + Map definedPolicySets, + Map definedIntents) throws DefinitionsBuilderException { + + for (PolicySet policySet : scaDefns.getPolicySets()) { + buildProvidedIntents(policySet, definedIntents); + buildIntentsInMappedPolicies(policySet, definedIntents); + buildReferredPolicySets(policySet, definedPolicySets); + } + + for (PolicySet policySet : scaDefns.getPolicySets()) { + for (PolicySet referredPolicySet : policySet.getReferencedPolicySets()) { + includeReferredPolicySets(policySet, referredPolicySet); + } + } + } + + private void buildProfileIntent(Intent policyIntent, Map definedIntents) + throws DefinitionsBuilderException { + //FIXME: Need to check for cyclic references first i.e an A requiring B and then B requiring A... + if (policyIntent != null) { + //resolve all required intents + List requiredIntents = new ArrayList(); + for (Intent requiredIntent : policyIntent.getRequiredIntents()) { + if (requiredIntent.isUnresolved()) { + Intent resolvedRequiredIntent = definedIntents.get(requiredIntent.getName()); + if (resolvedRequiredIntent != null) { + requiredIntents.add(resolvedRequiredIntent); + } else { + throw new DefinitionsBuilderException("Required Intent - " + requiredIntent + + " not found for ProfileIntent " + + policyIntent); + + } + } else { + requiredIntents.add(requiredIntent); + } + } + policyIntent.getRequiredIntents().clear(); + policyIntent.getRequiredIntents().addAll(requiredIntents); + } + } + + private void buildQualifiedIntent(Intent policyIntent, Map definedIntents) + throws DefinitionsBuilderException { + /* + if (policyIntent != null) { + //resolve the qualifiable intent + Intent qualifiableIntent = policyIntent.getQualifiableIntent(); + if (qualifiableIntent.isUnresolved()) { + Intent resolvedQualifiableIntent = definedIntents.get(qualifiableIntent.getName()); + + if (resolvedQualifiableIntent != null) { + policyIntent.setQualifiableIntent(resolvedQualifiableIntent); + } else { + throw new DefinitionsBuilderException("Qualifiable Intent - " + qualifiableIntent + + " not found for QualifiedIntent " + + policyIntent); + } + + } + } + */ + } + + private void buildAlwaysProvidedIntents(ExtensionType extensionType, Map definedIntents) + throws DefinitionsBuilderException { + if (extensionType != null) { + // resolve all provided intents + List alwaysProvided = new ArrayList(); + for (Intent providedIntent : extensionType.getAlwaysProvidedIntents()) { + if (providedIntent.isUnresolved()) { + Intent resolvedProvidedIntent = definedIntents.get(providedIntent.getName()); + if (resolvedProvidedIntent != null) { + alwaysProvided.add(resolvedProvidedIntent); + } else { + throw new DefinitionsBuilderException("Always Provided Intent - " + providedIntent + + " not found for ExtensionType " + + extensionType); + + } + } else { + alwaysProvided.add(providedIntent); + } + } + extensionType.getAlwaysProvidedIntents().clear(); + extensionType.getAlwaysProvidedIntents().addAll(alwaysProvided); + } + } + + private void buildMayProvideIntents(ExtensionType extensionType, Map definedIntents) + throws DefinitionsBuilderException { + if (extensionType != null) { + // resolve all provided intents + List mayProvide = new ArrayList(); + for (Intent providedIntent : extensionType.getMayProvidedIntents()) { + if (providedIntent.isUnresolved()) { + Intent resolvedProvidedIntent = definedIntents.get(providedIntent.getName()); + if (resolvedProvidedIntent != null) { + mayProvide.add(resolvedProvidedIntent); + } else { + throw new DefinitionsBuilderException("May Provide Intent - " + providedIntent + + " not found for ExtensionType " + + extensionType); + + } + } else { + mayProvide.add(providedIntent); + } + } + extensionType.getMayProvidedIntents().clear(); + extensionType.getMayProvidedIntents().addAll(mayProvide); + } + } + + private void buildProvidedIntents(PolicySet policySet, Map definedIntents) + throws DefinitionsBuilderException { + if (policySet != null) { + //resolve all provided intents + List providedIntents = new ArrayList(); + for (Intent providedIntent : policySet.getProvidedIntents()) { + if (providedIntent.isUnresolved()) { + Intent resolvedProvidedIntent = definedIntents.get(providedIntent.getName()); + if (resolvedProvidedIntent != null) { + providedIntents.add(resolvedProvidedIntent); + } else { + throw new DefinitionsBuilderException("Provided Intent - " + providedIntent + + " not found for PolicySet " + + policySet); + + } + } else { + providedIntents.add(providedIntent); + } + } + policySet.getProvidedIntents().clear(); + policySet.getProvidedIntents().addAll(providedIntents); + } + } + + private void buildIntentsInMappedPolicies(PolicySet policySet, Map definedIntents) + throws DefinitionsBuilderException { + for (IntentMap intentMap : policySet.getIntentMaps()) { + for (Qualifier qualifier : intentMap.getQualifiers()) { + Intent mappedIntent = qualifier.getIntent(); + if (mappedIntent.isUnresolved()) { + Intent resolvedMappedIntent = definedIntents.get(mappedIntent.getName()); + + if (resolvedMappedIntent != null) { + qualifier.setIntent(resolvedMappedIntent); + } else { + throw new DefinitionsBuilderException("Mapped Intent - " + mappedIntent + + " not found for PolicySet " + + policySet); + + } + } + } + } + } + + private void buildReferredPolicySets(PolicySet policySet, Map definedPolicySets) + throws DefinitionsBuilderException { + + List referredPolicySets = new ArrayList(); + for (PolicySet referredPolicySet : policySet.getReferencedPolicySets()) { + if (referredPolicySet.isUnresolved()) { + PolicySet resolvedReferredPolicySet = definedPolicySets.get(referredPolicySet.getName()); + if (resolvedReferredPolicySet != null) { + referredPolicySets.add(resolvedReferredPolicySet); + } else { + throw new DefinitionsBuilderException("Referred PolicySet - " + referredPolicySet + + "not found for PolicySet - " + + policySet); + } + } else { + referredPolicySets.add(referredPolicySet); + } + } + policySet.getReferencedPolicySets().clear(); + policySet.getReferencedPolicySets().addAll(referredPolicySets); + } + + private void includeReferredPolicySets(PolicySet policySet, PolicySet referredPolicySet) { + for (PolicySet furtherReferredPolicySet : referredPolicySet.getReferencedPolicySets()) { + includeReferredPolicySets(referredPolicySet, furtherReferredPolicySet); + } + policySet.getPolicies().addAll(referredPolicySet.getPolicies()); + policySet.getIntentMaps().addAll(referredPolicySet.getIntentMaps()); + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/impl/DefinitionsImpl.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/impl/DefinitionsImpl.java new file mode 100644 index 0000000000..224bc0a69a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/impl/DefinitionsImpl.java @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.definitions.impl; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.definitions.Definitions; +import org.apache.tuscany.sca.policy.BindingType; +import org.apache.tuscany.sca.policy.ImplementationType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Provides a concrete implementation for SCADefinitions + * + * @version $Rev$ $Date$ + */ +public class DefinitionsImpl implements Definitions { + private String targetNamespace = null; + private List intents = new CopyOnWriteArrayList(); + private List policySets = new CopyOnWriteArrayList(); + private List bindingTypes = new CopyOnWriteArrayList(); + private List implementationTypes = new CopyOnWriteArrayList(); + private List bindings = new CopyOnWriteArrayList(); + + + public List getBindingTypes() { + return bindingTypes; + } + + public List getImplementationTypes() { + return implementationTypes; + } + + public List getIntents() { + return intents; + } + + public List getPolicySets() { + return policySets; + } + + public String getTargetNamespace() { + return targetNamespace; + } + + public void setTargetNamespace(String ns) { + this.targetNamespace = ns; + } + + public List getBindings() { + return bindings; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/util/DefinitionsUtil.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/util/DefinitionsUtil.java new file mode 100644 index 0000000000..eb74677236 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/definitions/util/DefinitionsUtil.java @@ -0,0 +1,108 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.definitions.util; + +import static org.apache.tuscany.sca.assembly.builder.Messages.DEFINITIONS_VALIDATION; + +import java.util.HashSet; + +import org.apache.tuscany.sca.definitions.Definitions; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.policy.BindingType; +import org.apache.tuscany.sca.policy.ImplementationType; +import org.apache.tuscany.sca.policy.Intent; +import org.apache.tuscany.sca.policy.PolicySet; + +/** + * Some utility functions to deal with SCADefinitions + * + * @version $Rev$ $Date$ + */ +public class DefinitionsUtil { + + /** + * Add the source set of definitions into the target set of definitions checking that + * definitions artifacts are unique in the process + * + * @param source the input definitions collection + * @param target the definition collection into which source will aggregated + */ + public static void aggregate(Definitions source, Definitions target, Monitor monitor) { + + HashSet intents = new HashSet(target.getIntents()); + for(Intent intent : source.getIntents()){ + if (intents.contains(intent)){ + Monitor.error(monitor, + target, + DEFINITIONS_VALIDATION, + "DuplicateIntent", + intent.getName().toString()); + } else { + target.getIntents().add(intent); + intents.add(intent); + } + } + + HashSet policySets = new HashSet(target.getPolicySets()); + for(PolicySet policySet : source.getPolicySets()){ + if (policySets.contains(policySet)){ + Monitor.error(monitor, + target, + DEFINITIONS_VALIDATION, + "DuplicatePolicySet", + policySet.getName().toString()); + } else { + target.getPolicySets().add(policySet); + policySets.add(policySet); + } + } + + HashSet bindingTypes = new HashSet(target.getBindingTypes()); + for(BindingType bindingType : source.getBindingTypes()){ + if (bindingTypes.contains(bindingType)){ + Monitor.error(monitor, + target, + DEFINITIONS_VALIDATION, + "DuplicateBindingType", + bindingType.getType().toString()); + } else { + target.getBindingTypes().add(bindingType); + bindingTypes.add(bindingType); + } + } + + HashSet implementationTypes = new HashSet(target.getImplementationTypes()); + for(ImplementationType implementationType : source.getImplementationTypes()){ + if (implementationTypes.contains(implementationType)){ + Monitor.error(monitor, + target, + DEFINITIONS_VALIDATION, + "DuplicateImplementationType", + implementationType.getType().toString()); + } else { + target.getImplementationTypes().add(implementationType); + implementationTypes.add(implementationType); + } + } + + target.getBindings().addAll(source.getBindings()); + } + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/Compatibility.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/Compatibility.java new file mode 100644 index 0000000000..e05a05476a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/Compatibility.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.interfacedef; + +/** + * Types of compatibility + */ +public enum Compatibility { + SUPERSET, // The source is a superset of the target + SUBSET, // The source is a subset of the target + MUTUAL, // The source is the same set as the target + INCOMPATIBLE // The source is not compatible with the target +} \ No newline at end of file diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java new file mode 100644 index 0000000000..386275b41b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java @@ -0,0 +1,120 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.interfacedef; + +import java.lang.reflect.Type; + +/** + * Representation of the type of data associated with an operation. Data is + * represented in two forms: the physical form used by the runtime and a logical + * form used by the assembly. The physical form is a Java Type because the + * runtime is written in Java. This may be the same form used by the application + * but it may not; for example, an application that is performing stream + * processing may want a physical form such as an + * {@link java.io.InputStream InputStream} to semantically operate on application + * data such as a purchase order. The logical description is that used by the + * assembly model and is an identifier into some well-known type space; examples + * may be a Java type represented by its Class or an XML type represented by its + * QName. Every data type may also contain metadata describing the expected + * data; for example, it could specify a preferred data binding technology or + * the size of a typical instance. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface DataType extends Cloneable { + /** + * Set the java type for the data + * @param cls + */ + void setPhysical(Class cls); + + /** + * Returns the physical type used by the runtime. + * + * @return the physical type used by the runtime + */ + Class getPhysical(); + + /** + * Get the java generic type + * @return The java generic type + */ + Type getGenericType(); + + /** + * Set the java generic type + * @param genericType + */ + void setGenericType(Type genericType); + + /** + * Returns the logical identifier used by the assembly. The type of this + * value identifies the logical type system in use. Known values are: + *
    + *
  • a Class identifies a Java type by name and + * ClassLoader; this includes Java Classes as they are specializations of + * Type
  • + *
  • a XMLType identifies an XML type by local name and + * namespace
  • + *
+ * + * @return the logical type name + */ + L getLogical(); + + /** + * Get the databinding for the given data type + * @return the databinding + */ + String getDataBinding(); + + /** + * Set the databinding for the given data type + * @param dataBinding the dataBinding to set + */ + void setDataBinding(String dataBinding); + + /** + * Clone a data type + * @return The cloned data type + * @throws CloneNotSupportedException + */ + Object clone() throws CloneNotSupportedException; + + /** + * Set the logical type of the data type + * @param logical the logical to set + */ + void setLogical(L logical); + + /** + * Get the databinding-specific metadata + * @param type The java type of the metadata + * @return the databinding-specific metadata + */ + T getMetaData(Class type); + /** + * Set the databinding-specific metadata + * @param type The java type of the metadata + * @param metaData the databinding-specific metadata, such as SDO's commonj.sdo.Type or + * JAXB's javax.xml.bind.JAXBContext + */ + void setMetaData(Class type, T metaData); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java new file mode 100644 index 0000000000..4aa5f2780a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.interfacedef; + +/** + * This interface represents the mapping between WSDL faults and Java exceptions + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +@SuppressWarnings("unchecked") +public interface FaultExceptionMapper { + /** + * Introspect an exception class to find out the fault data type following the WSDL2Java + * mapping rules. The result will be populated into the logical type of the exception data + * type + * + * @param exceptionDataType The data type representing a java exception class + * @param operation TODO + * @param generatingFaultBean If JAXWS Section 3.7 Fault Bean will be generated + * @return true if the introspection can recognize the exception data type + */ + boolean introspectFaultDataType(DataType exceptionDataType, Operation operation, boolean generatingFaultBean); + + /** + * Create a java exception to wrap the fault data + * + * @param exceptionType The DataType for the exception + * @param message message for the exception + * @param faultInfo The fault data + * @param cause of the exception + * @param operation TODO + * @return An instance of java exception to represent the fault + */ + Throwable wrapFaultInfo(DataType exceptionType, String message, Object faultInfo, Throwable cause, Operation operation); + + /** + * Retrieve the fault info from a java exception + * + * @param exception The java exception that represents the fault data + * @param faultBeanClass + * @param operation TODO + * @return The fault data + */ + Object getFaultInfo(Throwable exception, Class faultBeanClass, Operation operation); +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/IncompatibleInterfaceContractException.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/IncompatibleInterfaceContractException.java new file mode 100644 index 0000000000..179dc1755e --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/IncompatibleInterfaceContractException.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.interfacedef; + +/** + * Denotes incompatible service contracts for a wire + * + * @version $Rev$ $Date$ + */ +public class IncompatibleInterfaceContractException extends Exception { + private static final long serialVersionUID = 5127478601823295587L; + private final InterfaceContract source; + private final InterfaceContract target; + private final Operation sourceOperation; + private final Operation targetOperation; + + public IncompatibleInterfaceContractException(String message, InterfaceContract source, InterfaceContract target) { + super(message); + this.source = source; + this.target = target; + this.sourceOperation = null; + this.targetOperation = null; + } + + public IncompatibleInterfaceContractException(String message, + InterfaceContract source, + InterfaceContract target, + Operation sourceOperation, + Operation targetOperation) { + super(message); + this.source = source; + this.target = target; + this.sourceOperation = sourceOperation; + this.targetOperation = targetOperation; + } + + public InterfaceContract getTarget() { + return target; + } + + public InterfaceContract getSource() { + return source; + } + + public Operation getSourceOperation() { + return sourceOperation; + } + + public Operation getTargetOperation() { + return targetOperation; + } +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java new file mode 100644 index 0000000000..e3103b768a --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java @@ -0,0 +1,116 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.interfacedef; + +import java.util.List; +import java.util.Map; + +import org.apache.tuscany.sca.policy.PolicySubject; + +/** + * Represents a service interface. This interface will typically be extended to + * support concrete interface type systems, such as Java interfaces, WSDL 1.1 + * portTypes and WSDL 2.0 interfaces. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public interface Interface extends Cloneable, PolicySubject { + + /** + * Returns true if the interface is a remotable interface.. + * + * @return true if the interface is a remotable interface + */ + boolean isRemotable(); + + /** + * Sets whether the interface is a remotable or local interface. + * + * @param remotable indicates whether the interface is remotable or local + */ + void setRemotable(boolean remotable); + + /** + * Returns true if the interface remotable property is set.. + * + * This is used to verify if a @remotable attribute is used in the + * SCDL element. If true, use isRemotable to verify the + * current value + * + * @return + */ + boolean isRemotableSet(); + + /** + * Returns the operations defined on this interface. + * + * @return the operations defined on this interface + */ + List getOperations(); + + /** + * Set the databinding for the interface + * @param dataBinding + * @deprecated Please use resetDataBinding + */ + @Deprecated + void setDefaultDataBinding(String dataBinding); + + /** + * Reset the databinding for the interface + * @param dataBinding + */ + void resetDataBinding(String dataBinding); + + /** + * Set the interface input types by copying those from the + * interface provided + * + * @param newInterface + */ + public void resetInterfaceInputTypes(Interface newInterface); + + /** + * Set the interface output types by copying those from the + * interface provided + * + * @param newInterface + */ + public void resetInterfaceOutputTypes(Interface newInterface); + + /** + * Returns true if the Interface is dynamic. + * + * @return true if the Interface is dynamic. + */ + boolean isDynamic(); + + /** + * Get a map of attributes associated with the interface + * @return A map of attributes + */ + Map getAttributes(); + + /** + * Implementations must support cloning. + */ + Object clone() throws CloneNotSupportedException; + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContract.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContract.java new file mode 100644 index 0000000000..3eda9f37e5 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContract.java @@ -0,0 +1,100 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.sca.interfacedef; + + +/** + * Interface contracts define one or more business functions. These business + * functions are provided by services and are used by references. + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.inheritfrom + */ +public interface InterfaceContract extends Cloneable { + + /** + * Returns the interface definition representing the interface for + * invocations from the requestor to the provider. + * + * @return the interface definition representing the interface for + * invocations from the requestor to the provider + */ + Interface getInterface(); + + /** + * Sets the interface definition representing the interface for invocations + * from the requestor to the provider. + * + * @param callInterface the interface definition representing the interface + * for invocations from the requestor to the provider + */ + void setInterface(Interface callInterface); + + /** + * Returns the interface definition representing the interface for + * invocations from the provider to the requestor. + * + * @return the interface definition representing the interface for + * invocations from the provider to the requestor. + */ + Interface getCallbackInterface(); + + /** + * Sets the interface definition representing the interface for invocations + * from the provider to the requestor. + * + * @param callbackInterface the interface definition representing the + * interface for invocations from the provider to the requestor. + */ + void setCallbackInterface(Interface callbackInterface); + + // FIXME: We need a better way to do this + /** + * Convert an interface contract to a unidirectional interface contract + * + * @param isCallback true for a callback interface contract, false for + * a forward interface contract + * @return A unidirectional interface contract, cloned if necessary + */ + InterfaceContract makeUnidirectional(boolean isCallback); + + /** + * Implementations must support cloning. + */ + Object clone() throws CloneNotSupportedException; + + /** + * For matching purposes the Java interface contract is + * turned into a WSDL contract in the cases where it needs to be matched + * against another WSDL contract + * + * @return WSDL interface contract + */ + InterfaceContract getNormalizedWSDLContract(); + + /** + * For matching purposes the Java interface contract is + * turned into a WSDL contract in the cases where it needs to be matched + * against another WSDL contract + * + * @param wsdlInterfaceContract + */ + void setNormailizedWSDLContract(InterfaceContract wsdlInterfaceContract); + +} diff --git a/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java new file mode 100644 index 0000000000..930d4e22e5 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java @@ -0,0 +1,230 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.interfacedef; + +/** + * The InterfaceContractMapper is responsible to match interfaces + * + * @version $Rev$ $Date$ + * @tuscany.spi.extension.asclient + */ +public interface InterfaceContractMapper { + /** + * @param source The source interface contract + * @param target The target interface contract + * @param compatibility The compatibility style + * @param ignoreCallback + * @param silent + * @return + * @throws IncompatibleInterfaceContractException + */ + boolean checkCompatibility(InterfaceContract source, + InterfaceContract target, + Compatibility compatibility, + boolean ignoreCallback, + boolean silent) throws IncompatibleInterfaceContractException; + + /** + * @param source The source interface contract + * @param target The target interface contract + * @param compatibility The compatibility style + * @param ignoreCallback + * @param silent + * @return + * @throws IncompatibleInterfaceContractException + * this interface is intended to incrementally replace the variant without the audit trail + * the presence of both interfaces implies a state of partial development + */ + boolean checkCompatibility(InterfaceContract source, + InterfaceContract target, + Compatibility compatibility, + boolean ignoreCallback, + boolean silent, + StringBuffer audit) throws IncompatibleInterfaceContractException; + + /** + * Test if the source data type is compatible with the target data type. The + * compatibility is defined as follows. + *
    + *
  • source's logical type is either the same or subtype of the target's + * logical type + *
+ * For example, if the source type is a SDO Customer and the target type is + * a JAXB Customer and both Customer are generated from the same XSD type. + * + * @param source The source data type + * @param target The target data type + * @param passByValue A flag to indicate how the compatibility is checked + *
    + *
  • true: Check the two types as compatible "by-value" (can be copied) + *
  • false: Check the two types as compatible "by-reference" (can be assigned) + *
+ * @return true if the source data type is the same or subtype of the target data type + */ + boolean isCompatible(DataType source, DataType target, boolean passByValue); + + /** + * Check if source operation is compatible with the target operation. A source operation is + * compatible with the target operation means the following: + * + *
    + *
  1. compatibility for the two operations is defined as compatibility + * of the signature, i.e., the operation name, the input types, and the output types are the same + * + *
  2. the order of the input and output types of the source operation is the same as the order of + * the input and output types for the corresponding target operation + *
  3. the set of Faults and Exceptions expected by the source operation is the same as or is + * a SUPERSET of the set of Faults and Exceptions specified by the corresponding target operation + *
+ * + * Simply speaking, any request from the source operation can be processed by the target operation and + * the normal response or fault/exception from the target operation can be handled by the source operation. + * + * Please note this compatibility check is NOT symmetric. But the following should be guaranteed: + *